From 9777a02c7540fdec145feb948b4bbf1cd44c3352 Mon Sep 17 00:00:00 2001 From: fulup Date: Sun, 13 Aug 2017 16:50:34 +0200 Subject: Fix AFB_MESSAGE with null arguments --- conf.d/project/lua.d/CMakeLists.txt | 40 +++++++++++ conf.d/project/lua.d/helloworld-lua-script.lua | 41 ++++++++++++ conf.d/project/lua.d/onload-audio-policy.lua | 49 ++++++++++++++ conf.d/project/lua.d/onload-audio-samples.lua | 93 ++++++++++++++++++++++++++ 4 files changed, 223 insertions(+) create mode 100644 conf.d/project/lua.d/CMakeLists.txt create mode 100644 conf.d/project/lua.d/helloworld-lua-script.lua create mode 100644 conf.d/project/lua.d/onload-audio-policy.lua create mode 100644 conf.d/project/lua.d/onload-audio-samples.lua (limited to 'conf.d/project/lua.d') diff --git a/conf.d/project/lua.d/CMakeLists.txt b/conf.d/project/lua.d/CMakeLists.txt new file mode 100644 index 0000000..db54742 --- /dev/null +++ b/conf.d/project/lua.d/CMakeLists.txt @@ -0,0 +1,40 @@ +########################################################################### +# Copyright 2017 IoT.bzh +# +# author: Fulup Ar Foll +# +# 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. +########################################################################### + + +################################################## +# Control Policy Config file +################################################## +PROJECT_TARGET_ADD(ctl-lua.d) + + file(GLOB XML_FILES "*.lua") + + add_custom_target(${TARGET_NAME} + DEPENDS ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + ) + + # check XML schema before pushing config + add_custom_command( + DEPENDS ${XML_FILES} + OUTPUT ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + # COMMAND xmllint -schema ${XML_SCHEMA} ${XML_FILES} --noout (Fulup we miss this for JSON) + COMMAND mkdir -p ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + COMMAND touch ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + COMMAND cp -r ${XML_FILES} ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + ) + diff --git a/conf.d/project/lua.d/helloworld-lua-script.lua b/conf.d/project/lua.d/helloworld-lua-script.lua new file mode 100644 index 0000000..7dd0459 --- /dev/null +++ b/conf.d/project/lua.d/helloworld-lua-script.lua @@ -0,0 +1,41 @@ +--[[ + Copyright (C) 2016 "IoT.bzh" + Author Fulup Ar Foll + + 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 +--]] + + -- retrieve calling arguments + args= ... + + print ("Helloworld script arguments:") + + + for key,value in pairs(args) + do + print("args: ", key,value) + end + + -- loop on script arguments + --for i=1,#args + --do + -- print(" -- ", i, args[i]) + --end + + + -- return two arguments on top of status + return true, 1234, "ABCD", 5678 + diff --git a/conf.d/project/lua.d/onload-audio-policy.lua b/conf.d/project/lua.d/onload-audio-policy.lua new file mode 100644 index 0000000..0b7c358 --- /dev/null +++ b/conf.d/project/lua.d/onload-audio-policy.lua @@ -0,0 +1,49 @@ +--[[ + Copyright (C) 2016 "IoT.bzh" + Author Fulup Ar Foll + + 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 policy function for AGL Advance Audio Agent +--]] + +function Audio_Init_CB (status, result, context) + print ("***** result=", Dump_Table(result)) + print ("***** context=", Dump_Table(context)) + + -- AFB:notice ("--LUA:Audio_Init_Hal result=%s context=%s", result, context) + +end + +-- Function call at binding load time +function Audio_Init_Hal(args, query) + AFB:notice ("--LUA:Audio_Init_Hal args=%s query=%s", args, query); + + -- query asynchronously loaded HAL + AFB:service ('alsacore', 'hallist', {}, "Audio_Init_CB", {arg1=1234, arg2="toto"}) + +end + +function Audio_Set_Navigation(args, query) + + AFB:notice ("--LUA:Audio_Set_Use_Case args=%s query=%s", args, query, {myint=1234, mystring="abcd"}); + -- Print_Table("args", args) + + + + -- return OK + return 0 +end + + diff --git a/conf.d/project/lua.d/onload-audio-samples.lua b/conf.d/project/lua.d/onload-audio-samples.lua new file mode 100644 index 0000000..055a15d --- /dev/null +++ b/conf.d/project/lua.d/onload-audio-samples.lua @@ -0,0 +1,93 @@ +--[[ + Copyright (C) 2016 "IoT.bzh" + Author Fulup Ar Foll + + 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 policy function for AGL Advance Audio Agent +--]] + +count=0 + +-- Adjust Volume function of vehicle speed +function Adjust_Volume_Speed (request, speed_meters_second) + + AFB:notice("In Adjust_Volume_Speed speed=%d", speed_meters_second); + + print (string.format("*****(From Lua) Adjust_Volume_Speed speed=%d count=%d", speed_meters_second, count)); + + -- compute volume + volume = speed_meters_second * 2 + count=count+1 + + AFB:success (request, 1234, volume, count, 5678) +end + + +function Test_Binder_CB (result, context) + + local myTable= { ["arg1"] = "myString", ["arg2"] = 1234, ["arg4"] = true, ["arg5"] = 3.1416 } + + AFB:notice ("In Test_Binder_CB", result, context) + + AFB:success (1234, "ABCD", myTable, 5678) + +end + +function Test_Binder_Call_Async () + + local query= { + ["arg1"] = "myString", + ["arg2"] = 1234, + ["arg4"] = true, + ["arg5"] = 3.1416, + } + + AFB:service("alsacore","ping", query, Test_Binder_CB, "myContext") + +end + +function Test_Binder_Call_Sync () + + local query= { + ["arg1"] = "myString", + ["arg2"] = 1234, + ["arg4"] = true, + ["arg5"] = 3.1416, + } + + err= AFB:service_sync ("alsacore","ping", query) + + if (err) then + AFB:fail ("AFB:service_call_sync fail"); + else + AFB:success (1234, "ABCD", myTable) + end + + +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 -- cgit 1.2.3-korg