diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-09-20 16:54:14 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-12-14 11:00:25 +0100 |
commit | 78202d5bd8a8d09a55bb71b9df6d3f54b18184b8 (patch) | |
tree | afbc89a7c104a70e7771939765309e977a5ab96a /conf.d/project | |
parent | b68f95e384aa35b54e453b5e7d09dabf8d82340c (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.json | 4 | ||||
-rw-r--r-- | conf.d/project/etc/sig-demoboard.json | 7 | ||||
-rw-r--r-- | conf.d/project/etc/sources.json | 10 | ||||
-rw-r--r-- | conf.d/project/lua.d/00-viwi-low-can.lua | 27 | ||||
-rw-r--r-- | conf.d/project/lua.d/doscript-helloworld.lua | 36 | ||||
-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 |