61 lines
1.1 KiB
Lua
61 lines
1.1 KiB
Lua
|
#!/usr/bin/env lua
|
||
|
|
||
|
require "ubus"
|
||
|
require "uloop"
|
||
|
|
||
|
--[[
|
||
|
A demo of ubus publisher binding. Should be run before subscriber.lua
|
||
|
--]]
|
||
|
|
||
|
|
||
|
uloop.init()
|
||
|
|
||
|
local conn = ubus.connect()
|
||
|
if not conn then
|
||
|
error("Failed to connect to ubus")
|
||
|
end
|
||
|
|
||
|
local ubus_objects = {
|
||
|
test = {
|
||
|
hello = {
|
||
|
function(req, msg)
|
||
|
conn:reply(req, {message="foo"});
|
||
|
print("Call to function 'hello'")
|
||
|
for k, v in pairs(msg) do
|
||
|
print("key=" .. k .. " value=" .. tostring(v))
|
||
|
end
|
||
|
end, {id = ubus.INT32, msg = ubus.STRING }
|
||
|
},
|
||
|
hello1 = {
|
||
|
function(req)
|
||
|
conn:reply(req, {message="foo1"});
|
||
|
conn:reply(req, {message="foo2"});
|
||
|
print("Call to function 'hello1'")
|
||
|
end, {id = ubus.INT32, msg = ubus.STRING }
|
||
|
},
|
||
|
__subscriber_cb = function( subs )
|
||
|
print("total subs: ", subs )
|
||
|
end
|
||
|
}
|
||
|
}
|
||
|
|
||
|
conn:add( ubus_objects )
|
||
|
print("Objects added, starting loop")
|
||
|
|
||
|
-- start time
|
||
|
local timer
|
||
|
local counter = 0
|
||
|
function t()
|
||
|
counter = counter + 1
|
||
|
local params = {
|
||
|
count = counter
|
||
|
}
|
||
|
conn:notify( ubus_objects.test.__ubusobj, "test.alarm", params )
|
||
|
timer:set(10000)
|
||
|
end
|
||
|
timer = uloop.timer(t)
|
||
|
timer:set(1000)
|
||
|
|
||
|
|
||
|
uloop.run()
|