diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2018-07-04 18:18:43 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2018-07-05 16:22:47 +0200 |
commit | 64fcae698a48acf6bd7f05d168b5cd4badcf0bd3 (patch) | |
tree | 360d22bf5fe8584cafd22acaa93bcf76a3a09440 /conf.d/project/data/unit-conversion.lua | |
parent | bf964e8ad085cd051d9a28bcd74aafeeb08c9593 (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.lua | 110 |
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 + |