summaryrefslogtreecommitdiffstats
path: root/conf.d/project/data/unit-conversion.lua
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2018-07-04 18:18:43 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2018-07-05 16:22:47 +0200
commit64fcae698a48acf6bd7f05d168b5cd4badcf0bd3 (patch)
tree360d22bf5fe8584cafd22acaa93bcf76a3a09440 /conf.d/project/data/unit-conversion.lua
parentbf964e8ad085cd051d9a28bcd74aafeeb08c9593 (diff)
Update submodules
Submodule conf.d/app-templates 6e1a3c3..aa68dbd: > Don't overwrite the autobuild script if it exists > Disable the in-tree build method. > Detect Yocto as OS distribution > Fix: wrong compile options added > Fallback using zip format if no wgtpkg-pack found > 02-variables.cmake: Avoid checking CXX version if not required > config.cmake.sample: Remove dependency to libsystemd > config.cmake.sample: Remove dependency to libmicrohttpd > Added -D_FORTIFY_SOURCE=2 to CFLAGS > start-on-target: uses RSYNC_PREFIX path for config > Fixed spelling. > Improve OS detection > Fix: OS detection > Launch from workdir > Change closing that could fix native debugging Submodule ctl-utilities 0129510...1ff524b: > Change LUA package path at LUA interpreter load > Don't load two times a plugin even for LUA > Fixed hidden bound variable (apiHandle) > Fixed null value when push Lua arguments > Adjust to compile with incoming bindings v3 > Remove declaration to not existing functions > Add 2 lua utilities function > Update README.md for new metadata keys. > Fix a compilation issue due to modif of AFB_ReqSuccess > README:md: update README accordingly to new json scheme. > Fixed crash due to call to json_object_put > Fix segfault when printing long message from lua > Fixed spelling of AFB_ReqSuccess > Remove an unnecessary variable > Make parsing of action loading non blocking > Use an external file for app fw functions link > Use macro to test request validity > Fixed build warnings with gcc >= 7.3 > Increase lua script max message size > Prevent lost of config file path when searching > Correct way that api actions are handled in controller > Handle more metadata in the controller. > Add possibility to set prefix to NULL in CtlConfigScan > Fixed compilation warnings with gcc-7.2.0 > Add an external field to CtlConfigT > Make action item from a LUA action mandatory > Handle no prefix given > Good usage of strncat and strncpy > Update to the new JSON syntax > Detect failure at OnLoad action calls > Improve reliability and function calls > Correctly release request JSON object > Add AFB macros > Don't use assert in controller. > Change lua2c JSON syntax. > Search for Event section > Fix: changes key name. > Fix: arguments pointer NULL check > Fix wrong error message. > Simplify action definition > Fix: Dyn API Action loading procedure > Use new version of function GetBindingDirPath > Format > Merge changes from topic 'sandbox/claneys/wip' > Upgrade config schema > Fix: callback execution condition < Format < Fix: callback execution condition < New action loading function. < Upgrade config schema Adapt json config file to new syntax Fix: prefix now add the "-" so it'isn't needed to add it in the prefix at search (signal-composer.cpp) Fix: calling a api verb without json_object fails because of config arguments not retrieved. (sources.cpp) Change-Id: I48c1bca9fbac485e6a34b4645e683d9bdb1cbf2b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'conf.d/project/data/unit-conversion.lua')
-rw-r--r--conf.d/project/data/unit-conversion.lua110
1 files changed, 110 insertions, 0 deletions
diff --git a/conf.d/project/data/unit-conversion.lua b/conf.d/project/data/unit-conversion.lua
new file mode 100644
index 0000000..a66d71f
--- /dev/null
+++ b/conf.d/project/data/unit-conversion.lua
@@ -0,0 +1,110 @@
+--[[
+ 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 LUA routines to be used with AGL control "lua_docall" API
+--]]
+
+--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},
+}
+
+_result = {}
+_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)
+
+ if sourcei<targeti then
+
+ local base=1
+ for i=sourcei+1,targeti do
+ base=base*_interval[i][2]
+ end
+
+ event["value"] = value/base
+ elseif sourcei>targeti then
+
+ local base=1
+ for i=targeti+1,sourcei do
+ base=base*interval[i][2]
+ end
+
+ event["value"] = value/base
+ else
+ print("No conversion")
+ end
+
+ print('Converted value is: '.. event['value'] .. args["to"])
+
+ composer:setSignalValueWrap(source, event)
+end
+
+-- Display receive arguments and echo them to caller
+function _Simple_Echo_Args (source, args, event)
+ _count=_count+1
+ AFB:notice(source, "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))
+end
+
+local function Test_Async_CB (request, result, context)
+ response={
+ ["result"]=result,
+ ["context"]=context,
+ }
+
+ AFB:notice (source, "Test_Async_CB result=%s context=%s", result, context)
+ AFB:success (request, response)
+end
+
+function _Test_Call_Async (request, args)
+ local context={
+ ["value1"]="abcd",
+ ["value2"]=1234
+ }
+
+ AFB:notice (source, "Test_Call_Async args=%s cb=Test_Async_CB", args)
+ AFB:service(source, "monitor","ping", "Test_Async_CB", context)
+end
+
+function _Simple_Monitor_Call (request, args)
+
+ AFB:notice (source, "_Simple_Server_Call args=%s", args)
+ local err, result= AFB:servsync (source, "monitor","get", args)
+ if (err) then
+ AFB:fail (source, "AFB:service_call_sync fail");
+ else
+ AFB:success(source, request, result["response"])
+ end
+end
+