aboutsummaryrefslogtreecommitdiffstats
path: root/conf.d/project
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2017-08-17 00:56:43 +0200
committerFulup Ar Foll <fulup@iot.bzh>2017-08-17 00:56:43 +0200
commit5e919fde0a4c66b0203c46b8f06f303fcceaedde (patch)
tree6e4937b46d7370e9c8abe1f9a829759deda75ba2 /conf.d/project
parenta4899ab57f08aeb2741d08f74d7593c85a0ad3f4 (diff)
Implemented Timer and Event from Lua
Diffstat (limited to 'conf.d/project')
-rw-r--r--conf.d/project/lua.d/onload-audio-oncall.lua31
-rw-r--r--conf.d/project/lua.d/onload-audio-timer.lua73
2 files changed, 73 insertions, 31 deletions
diff --git a/conf.d/project/lua.d/onload-audio-oncall.lua b/conf.d/project/lua.d/onload-audio-oncall.lua
index 13cda4b..08b25e5 100644
--- a/conf.d/project/lua.d/onload-audio-oncall.lua
+++ b/conf.d/project/lua.d/onload-audio-oncall.lua
@@ -68,34 +68,3 @@ function Test_Call_Sync (request, args)
end
end
--- create a new event name
-function Test_Event_Make (request, args)
-
- AFB:notice ("Test_Event_Make args=%s", args)
-
- local err evt_handle= AFB:event (args["evtname"])
- if (err) then
- AFB:fail ("AFB:Test_Event_Make fail event=%s", args["evtname"]);
- else
- AFB:success (request, {})
- end
-
- local evtData = {
- ["val1"]="My 1st private Event",
- ["val2"]=5678
- }
-
- AFB:notify (evt_handle, evtData)
-end
-
--- send an event on default binder event
-function Test_Event_Notify (request, args)
-
- AFB:notice ("Test_Event_Notify args=%s", args)
- local err AFB:notify (args)
- if (err) then
- AFB:fail ("AFB:Test_Event_Make fail event=%s", args["evtname"]);
- else
- AFB:success (request, {})
- end
-end
diff --git a/conf.d/project/lua.d/onload-audio-timer.lua b/conf.d/project/lua.d/onload-audio-timer.lua
new file mode 100644
index 0000000..5f25de7
--- /dev/null
+++ b/conf.d/project/lua.d/onload-audio-timer.lua
@@ -0,0 +1,73 @@
+--[[
+ 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
+print ("*** Create MyTestEvent ***")
+MyEventHandle= AFB:evtmake("MyTestEvent")
+
+-- Call count time every delay/ms
+function Timer_Test_CB (timer, context)
+
+ local evtinfo= AFB:timerget(timer)
+ print ("timer=", Dump_Table(evtinfo))
+
+ --send an event an event with count as value
+ AFB:evtpush (MyEventHandle, {["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, args)
+
+ local context = {
+ ["info"]="My 1st private Event",
+ }
+
+ -- if delay not defined default is 5s
+ if (args["delay"]==nil) then args["delay"]=5000 end
+
+ -- if count is not defined default is 10
+ if (args["count"]==nil) then args["count"]=10 end
+
+ -- we could use directly args but it is a sample
+ local myTimer = {
+ ["label"]=args["label"],
+ ["delay"]=args["delay"],
+ ["count"]=args["count"],
+ }
+ AFB:notice ("Test_Timer myTimer=%s", myTimer)
+
+ -- subscribe to event
+ AFB:subscribe (request, MyEventHandle)
+
+ -- settimer take a table with delay+count as input (count==0 means infinite)
+ AFB:timerset (myTimer, "Timer_Test_CB", context)
+
+ -- nothing special to return send back args
+ AFB:success (request, myTimer)
+
+ return 0
+end
+
+
+