summaryrefslogtreecommitdiffstats
path: root/conf.d/project
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-09-20 16:54:14 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-12-14 11:00:25 +0100
commit78202d5bd8a8d09a55bb71b9df6d3f54b18184b8 (patch)
treeafbc89a7c104a70e7771939765309e977a5ab96a /conf.d/project
parentb68f95e384aa35b54e453b5e7d09dabf8d82340c (diff)
Make LUA works
- Added LUA library at link - Make app-template crash build if a checked file fails - Fix old defined variable CONTROL_LUA_PATH to a default one in the binding data directory - Add an example with unit conversion made in LUA Change-Id: I1b4712bde32a38044ad6b14ebd38b6782fd01fe9 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'conf.d/project')
-rw-r--r--conf.d/project/etc/init-daemon.json4
-rw-r--r--conf.d/project/etc/sig-demoboard.json7
-rw-r--r--conf.d/project/etc/sources.json10
-rw-r--r--conf.d/project/lua.d/00-viwi-low-can.lua27
-rw-r--r--conf.d/project/lua.d/doscript-helloworld.lua36
-rw-r--r--conf.d/project/lua.d/init-daemon-00-utils.lua (renamed from conf.d/project/lua.d/onload-daemon-00-utils.lua)0
-rw-r--r--conf.d/project/lua.d/init-daemon-01-init.lua (renamed from conf.d/project/lua.d/onload-daemon-01-init.lua)3
-rw-r--r--conf.d/project/lua.d/init-daemon-03-controls.lua (renamed from conf.d/project/lua.d/onload-daemon-03-controls.lua)0
-rw-r--r--conf.d/project/lua.d/init-daemon-04-oncall.lua (renamed from conf.d/project/lua.d/onload-daemon-04-oncall.lua)53
-rw-r--r--conf.d/project/lua.d/init-daemon-10-event.lua (renamed from conf.d/project/lua.d/onload-daemon-10-event.lua)0
10 files changed, 60 insertions, 80 deletions
diff --git a/conf.d/project/etc/init-daemon.json b/conf.d/project/etc/init-daemon.json
index a1f75f5..045f3fe 100644
--- a/conf.d/project/etc/init-daemon.json
+++ b/conf.d/project/etc/init-daemon.json
@@ -3,10 +3,10 @@
"metadata": {
"label": "Signal Composer",
"version": "1.0",
- "api": "signal-composer",
+ "api": "test",
"info": "Signal composer Configuration",
"require": ["low-can"],
- "files": ["sources", "sig-doors"]
+ "files": ["sources", "sig-doors", "sig-demoboard"]
},
"plugins": [
{
diff --git a/conf.d/project/etc/sig-demoboard.json b/conf.d/project/etc/sig-demoboard.json
index 3d03f3e..5eb662c 100644
--- a/conf.d/project/etc/sig-demoboard.json
+++ b/conf.d/project/etc/sig-demoboard.json
@@ -6,9 +6,12 @@
"class": "temporal",
"unit": "km/h",
"frequency": 1,
+ "getSignalsArgs": {
+ "frequency": 5,
+ "min": 10
+ },
"onReceived": {
- "label": "Unit converter",
- "lua": "_Unit_Converter",
+ "function": "lua://_Unit_Converter",
"args": {
"from": "km/h",
"to": "mi/h"
diff --git a/conf.d/project/etc/sources.json b/conf.d/project/etc/sources.json
index be99a41..dcb55a3 100644
--- a/conf.d/project/etc/sources.json
+++ b/conf.d/project/etc/sources.json
@@ -3,12 +3,6 @@
{
"api": "low-can",
"info": "Low level binding to handle CAN bus communications",
- "init": {
- "function": "api://low-can/subscribe",
- "args": {
- "event": "message*"
- }
- },
"getSignals": {
"function": "plugin://low-can-callbacks/subscribeToLow",
"args": {
@@ -19,9 +13,9 @@
"api": "gps",
"info": "Low level binding which retrieve Satellite positionning values",
"init": {
- "function": "api://gps/location",
+ "function": "api://gps/subscribe",
"args": {
- "arg1": "first argument"
+ "value": "location"
}
},
"getSignals": {
diff --git a/conf.d/project/lua.d/00-viwi-low-can.lua b/conf.d/project/lua.d/00-viwi-low-can.lua
deleted file mode 100644
index b13863a..0000000
--- a/conf.d/project/lua.d/00-viwi-low-can.lua
+++ /dev/null
@@ -1,27 +0,0 @@
---[[
- Copyright (C) 2017 "IoT.bzh"
- Author Romain Forlot <romain.forlot@iot.bzh>
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
---]]
-
-function _SubscribeLowCan (request, args)
-
- AFB:notice ("_We gonna subscribe to %s", args)
- local err, result= AFB:servsync ("low-can","subscribe", args)
- if (err) then
- AFB:fail ("AFB:service_call_sync fail");
- else
- AFB:success (request, result["response"])
- end
-end
diff --git a/conf.d/project/lua.d/doscript-helloworld.lua b/conf.d/project/lua.d/doscript-helloworld.lua
deleted file mode 100644
index e722db7..0000000
--- a/conf.d/project/lua.d/doscript-helloworld.lua
+++ /dev/null
@@ -1,36 +0,0 @@
---[[
- Copyright (C) 2016 "IoT.bzh"
- Author Fulup Ar Foll <fulup@iot.bzh>
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- Simple API script to be use with AGL control LuaDoCall API
- - After the script is loaded by lua_docall
- - Controller start function=xxxx where xxxx is taken from script filename doscript-xxxx-anything
-
---]]
-
-function _helloworld (request, query)
-
- AFB:notice ("LUA HelloWorld: Simple test query=%s", query);
-
- if (query == nil) then
- AFB:notice ("LUA HelloWorld:FX query should not be empty");
- AFB:fail (request, "LUA HelloWorld: query should not be empty");
- else
- AFB:notice ("LUA HelloWorld:OK query=%s", query);
- AFB:success (request, {arg0="Demat", arg1="Bonjours", arg2="Gootentag", arg3="Morning"});
- end
-
-end
diff --git a/conf.d/project/lua.d/onload-daemon-00-utils.lua b/conf.d/project/lua.d/init-daemon-00-utils.lua
index 29d2c70..29d2c70 100644
--- a/conf.d/project/lua.d/onload-daemon-00-utils.lua
+++ b/conf.d/project/lua.d/init-daemon-00-utils.lua
diff --git a/conf.d/project/lua.d/onload-daemon-01-init.lua b/conf.d/project/lua.d/init-daemon-01-init.lua
index 26ff08a..0b8a923 100644
--- a/conf.d/project/lua.d/onload-daemon-01-init.lua
+++ b/conf.d/project/lua.d/init-daemon-01-init.lua
@@ -27,8 +27,8 @@ _Global_Context={}
is save into _Global_Context for further use.
Note: init functions are not call from a client and thus do not receive query
-
--]]
+
function _Sample_Controller_Init(source, control)
printf ("[-- Sample_Controller_Init --] source=%d control=%s", source, Dump_Table(control))
@@ -44,5 +44,4 @@ function _Sample_Controller_Init(source, control)
-- just for fun create an event
_Global_Context["event"]=AFB:evtmake(control["zzzz"])
-
end
diff --git a/conf.d/project/lua.d/onload-daemon-03-controls.lua b/conf.d/project/lua.d/init-daemon-03-controls.lua
index cc13e0f..cc13e0f 100644
--- a/conf.d/project/lua.d/onload-daemon-03-controls.lua
+++ b/conf.d/project/lua.d/init-daemon-03-controls.lua
diff --git a/conf.d/project/lua.d/onload-daemon-04-oncall.lua b/conf.d/project/lua.d/init-daemon-04-oncall.lua
index 7c0e9bc..ae16aa7 100644
--- a/conf.d/project/lua.d/onload-daemon-04-oncall.lua
+++ b/conf.d/project/lua.d/init-daemon-04-oncall.lua
@@ -21,12 +21,59 @@
--global counter to keep track of calls
_count=0
+
+_interval={
+ {"km/h",1}, --the "1" should never really get used but
+ {"mi/h",0.62137119223733},
+ {"m/s",0.27777777777778},
+}
+
+_positions={}
+for i=1,3 do
+ _positions[_interval[i][1]]=i
+end
+
+--function _Unit_Converter(value, sourceunits, targetunits)
+function _Unit_Converter(source, args, event)
+ local value = event["value"]
+ local sourceunits = args["from"]
+ local targetunits = args["to"]
+ local sourcei, targeti = _positions[sourceunits], _positions[targetunits]
+ assert(sourcei and targeti)
+
+ AFB:notice("LUA OnCall Echo Args source=%s args=%s event=%s", source, args, event)
+
+ if sourcei<targeti then
+
+ local base=1
+ for i=sourcei+1,targeti do
+ base=base*_interval[i][2]
+ end
+
+ print("Value in", targetunits, "is", value/base)
+
+ elseif sourcei>targeti then
+
+ local base=1
+ for i=targeti+1,sourcei do
+ base=base*interval[i][2]
+ end
+
+ print("Value in ", targetunits, "is", value*base)
+
+ else
+ print("No conversion")
+ end
+end
+
-- Display receive arguments and echo them to caller
-function _LUA_Simple_Echo_Args (request, args)
+function _Simple_Echo_Args (source, args, event)
_count=_count+1
- AFB:notice("LUA OnCall Echo Args count=%d args=%s", count, args)
+ AFB:notice("LUA OnCall Echo Args count=%d args=%s event=%s", count, args, event)
+ print ("--inlua-- source=", Dump_Table(source))
print ("--inlua-- args=", Dump_Table(args))
+ print ("--inlua-- event=", Dump_Table(event))
local response={
["count"]=_count,
@@ -34,7 +81,7 @@ function _LUA_Simple_Echo_Args (request, args)
}
-- fulup Embdeded table ToeDone AFB:success (request, response)
- AFB:success (request, {["func"]="Simple_Echo_Args", ["ret1"]=5678, ["ret2"]="abcd"})
+ -- AFB:success (request, response)
end
local function Test_Async_CB (request, result, context)
diff --git a/conf.d/project/lua.d/onload-daemon-10-event.lua b/conf.d/project/lua.d/init-daemon-10-event.lua
index 474ebe0..474ebe0 100644
--- a/conf.d/project/lua.d/onload-daemon-10-event.lua
+++ b/conf.d/project/lua.d/init-daemon-10-event.lua