diff options
m--------- | afb-helpers | 0 | ||||
m--------- | conf.d/app-templates | 0 | ||||
-rw-r--r-- | conf.d/project/data/signal-composer-daemon-00-utils.lua | 85 | ||||
-rw-r--r-- | conf.d/project/data/signal-composer-daemon-10-event.lua | 74 | ||||
-rw-r--r-- | conf.d/project/data/unit-conversion.lua (renamed from conf.d/project/data/signal-composer-daemon-04-oncall.lua) | 0 | ||||
-rw-r--r-- | conf.d/project/etc/control-basic-conf.json | 6 | ||||
-rw-r--r-- | conf.d/project/etc/control-signal-composer.json | 3 | ||||
-rw-r--r-- | conf.d/project/etc/sig-txc.json | 6 | ||||
-rw-r--r-- | conf.d/project/etc/sources-txc.json | 6 | ||||
m--------- | ctl-utilities | 0 | ||||
-rw-r--r-- | plugins/low-can.cpp | 4 | ||||
-rw-r--r-- | signal-composer-binding/signal-composer-binding.cpp | 2 | ||||
-rw-r--r-- | signal-composer-binding/signal-composer.cpp | 2 | ||||
-rw-r--r-- | signal-composer-binding/source.cpp | 2 |
14 files changed, 14 insertions, 176 deletions
diff --git a/afb-helpers b/afb-helpers -Subproject 6e837e4691ae266f5d23cce844fccdeeacdfe11 +Subproject 43ec9716bf83d8a6e5ff15909705cb1adc3c189 diff --git a/conf.d/app-templates b/conf.d/app-templates -Subproject 6e1a3c37e94f42f5307fd1fa749823b2d160a56 +Subproject aa68dbd12c60f9eb0015a508a22d8650914f8e5 diff --git a/conf.d/project/data/signal-composer-daemon-00-utils.lua b/conf.d/project/data/signal-composer-daemon-00-utils.lua deleted file mode 100644 index 943c6c6..0000000 --- a/conf.d/project/data/signal-composer-daemon-00-utils.lua +++ /dev/null @@ -1,85 +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. - - Note: this file should be called before any other to assert declare function - is loaded before anything else. - - References: - http://lua-users.org/wiki/DetectingUndefinedVariables - ---]] - - ---=================================================== ---= Niklas Frykholm --- basically if user tries to create global variable --- the system will not let them!! --- call GLOBAL_lock(_G) --- ---=================================================== -function GLOBAL_lock(t) - local mt = getmetatable(t) or {} - mt.__newindex = lock_new_index - setmetatable(t, mt) -end - ---=================================================== --- call GLOBAL_unlock(_G) --- to change things back to normal. ---=================================================== -function GLOBAL_unlock(t) - local mt = getmetatable(t) or {} - mt.__newindex = unlock_new_index - setmetatable(t, mt) -end - -function lock_new_index(t, k, v) - if (string.sub(k,1,1) ~= "_") then - GLOBAL_unlock(_G) - error("GLOBALS are locked -- " .. k .. - " must be declared local or prefix with '_' for globals.", 2) - else - rawset(t, k, v) - end -end - -function unlock_new_index(t, k, v) - rawset(t, k, v) -end - --- return serialised version of printable table -function Dump_Table(o) - if type(o) == 'table' then - local s = '{ ' - for k,v in pairs(o) do - if type(k) ~= 'number' then k = '"'..k..'"' end - s = s .. '['..k..'] = ' .. Dump_Table(v) .. ',' - end - return s .. '} ' - else - return tostring(o) - end -end - --- simulate C prinf function -printf = function(s,...) - io.write(s:format(...)) - io.write("\n") - return -end - --- lock global variable -GLOBAL_lock(_G) diff --git a/conf.d/project/data/signal-composer-daemon-10-event.lua b/conf.d/project/data/signal-composer-daemon-10-event.lua deleted file mode 100644 index 7724dec..0000000 --- a/conf.d/project/data/signal-composer-daemon-10-event.lua +++ /dev/null @@ -1,74 +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. - - - Provide Sample Timer Handing to push event from LUA ---]] - --- Create event on Lua script load -_MyContext={} - --- WARNING: call back are global and should start with '_' -function _Timer_Test_CB (timer, context) - - local evtinfo= AFB:timerget(source, timer) - printf ("[-- _Timer_Test_C --] evtInfo=%s", Dump_Table(evtinfo)) - - --send an event an event with count as value - AFB:evtpush (source, _MyContext["event"], {["label"]= evtinfo["label"], ["count"]=evtinfo["count"], ["info"]=context["info"]}) - - -- note when timerCB return!=0 timer is kill - return 0 - -end - --- sendback event depending on count and delay -function _Simple_Timer_Test (request, client) - - local context = { - ["info"]="My 1st private Event", - } - - -- if event does not exit create it now. - if (_MyContext["event"] == nil) then - _MyContext["event"]= AFB:evtmake(source, client["label"]) - end - - -- if delay not defined default is 5s - if (client["delay"]==nil) then client["delay"]=5000 end - - -- if count is not defined default is 10 - if (client["count"]==nil) then client["count"]=10 end - - -- we could use directly client but it is a sample - local myTimer = { - ["label"]=client["label"], - ["delay"]=client["delay"], - ["count"]=client["count"], - } - AFB:notice (source, "Test_Timer myTimer=%s", myTimer) - - -- subscribe to event - AFB:subscribe (source, request, _MyContext["event"]) - - -- settimer take a table with delay+count as input (count==0 means infinite) - AFB:timerset (source, myTimer, "_Timer_Test_CB", context) - - -- nothing special to return send back - AFB:success (source, request, myTimer) - - return 0 -end diff --git a/conf.d/project/data/signal-composer-daemon-04-oncall.lua b/conf.d/project/data/unit-conversion.lua index a66d71f..a66d71f 100644 --- a/conf.d/project/data/signal-composer-daemon-04-oncall.lua +++ b/conf.d/project/data/unit-conversion.lua diff --git a/conf.d/project/etc/control-basic-conf.json b/conf.d/project/etc/control-basic-conf.json index dd7255f..1331544 100644 --- a/conf.d/project/etc/control-basic-conf.json +++ b/conf.d/project/etc/control-basic-conf.json @@ -11,18 +11,18 @@ { "uid": "low-can-callbacks", "info": "Manage interaction with low-can service", - "basename": "low-can" + "libs": "low-can.ctlso" }, { "uid": "gps-callbacks", "info": "Manage interaction with gps service", - "basename": "gps" + "libs": "gps.ctlso" }, { "uid": "convert", "info": "LUA fonctions used to convert standard unit.", "spath": "/tmp", - "file": "unit-conversion.lua" + "libs": "unit-conversion.lua" } ], "signals": { diff --git a/conf.d/project/etc/control-signal-composer.json b/conf.d/project/etc/control-signal-composer.json index 1734422..3e693f6 100644 --- a/conf.d/project/etc/control-signal-composer.json +++ b/conf.d/project/etc/control-signal-composer.json @@ -22,8 +22,7 @@ "uid": "builtin", "info": "Builtin routine for onReceived or getSignals routines", "libs": "builtin.ctlso", - "lua2c": "setSignalValueWrap", - "lua2c_prefix": "bui" + "lua": { "prefix": "composer", "functions": "setSignalValueWrap"} } ], "signals": { diff --git a/conf.d/project/etc/sig-txc.json b/conf.d/project/etc/sig-txc.json index 9599cce..c9c59cd 100644 --- a/conf.d/project/etc/sig-txc.json +++ b/conf.d/project/etc/sig-txc.json @@ -10,8 +10,7 @@ "event": "vehicle_speed" }, "onReceived": { - "uri": "lua://convert", - "function": "_Unit_Converter", + "action": "lua://convert#_Unit_Converter", "args": { "from": "km/h", "to": "mi/h" @@ -104,8 +103,7 @@ "retention": 30, "unit": "degrees", "onReceived": { - "uri": "plugin://gps-callbacks", - "function": "getHeading" + "action": "plugin://gps-callbacks#getHeading" } } ] diff --git a/conf.d/project/etc/sources-txc.json b/conf.d/project/etc/sources-txc.json index 77bc99b..a460fee 100644 --- a/conf.d/project/etc/sources-txc.json +++ b/conf.d/project/etc/sources-txc.json @@ -6,13 +6,11 @@ "api": "txc", "info": "Use TXC demo binding as signals provider", "init": { - "uri": "api://txc", - "function": "start", + "action": "api://txc#start", "args": {"filename": "var/nyc-downtown-crosstown.json"} }, "getSignals": { - "uri": "api://txc", - "function": "subscribe" + "action": "api://txc#subscribe" } } ] diff --git a/ctl-utilities b/ctl-utilities -Subproject 01295105d39eb96fafa20fea9ef131d0fb8dcab +Subproject 1ff524bc55b3ff10b7ab2a5f2cafbb41fce2294 diff --git a/plugins/low-can.cpp b/plugins/low-can.cpp index 5d4ef10..e3b505e 100644 --- a/plugins/low-can.cpp +++ b/plugins/low-can.cpp @@ -65,7 +65,9 @@ CTLP_ONLOAD(plugin, composerHandle) struct signalCBT* handle = (struct signalCBT*)composerHandle; handle->pluginCtx = (void*)pluginCtx; - return (void*)handle; + plugin->context = (void*)handle; + + return 0; } CTLP_CAPI (subscribeToLow, source, argsJ, eventJ) { diff --git a/signal-composer-binding/signal-composer-binding.cpp b/signal-composer-binding/signal-composer-binding.cpp index 0d9c8e3..50eb03b 100644 --- a/signal-composer-binding/signal-composer-binding.cpp +++ b/signal-composer-binding/signal-composer-binding.cpp @@ -265,7 +265,7 @@ void get(struct afb_req request) int loadConf() { int err = 0; - std::string bindingDirPath = GetBindingDirPath(); + std::string bindingDirPath = GetBindingDirPath(nullptr); std::string rootdir = bindingDirPath + "/etc"; err = Composer::instance().loadConfig(rootdir); diff --git a/signal-composer-binding/signal-composer.cpp b/signal-composer-binding/signal-composer.cpp index ce4fe47..4b92f7e 100644 --- a/signal-composer-binding/signal-composer.cpp +++ b/signal-composer-binding/signal-composer.cpp @@ -461,7 +461,7 @@ int Composer::loadConfig(std::string& filepath) if (!dirList) dirList=CONTROL_CONFIG_PATH; filepath.append(":"); filepath.append(dirList); - const char *configPath = CtlConfigSearch(nullptr, filepath.c_str(), "control-"); + const char *configPath = CtlConfigSearch(nullptr, filepath.c_str(), "control"); if (!configPath) { AFB_ApiError(apiHandle, "CtlPreInit: No control-* config found invalid JSON %s ", filepath.c_str()); diff --git a/signal-composer-binding/source.cpp b/signal-composer-binding/source.cpp index 6832320..d7a5915 100644 --- a/signal-composer-binding/source.cpp +++ b/signal-composer-binding/source.cpp @@ -50,7 +50,7 @@ void SourceAPI::init() source.uid = init_->uid; source.api = nullptr; // We use binding v2, no dynamic API. source.request = {nullptr, nullptr}; - ActionExecOne(&source, init_, nullptr); + ActionExecOne(&source, init_, json_object_new_object()); return; } else if(api_ == afbBindingV2.api) |