ubus/lua/publisher.lua

60 lines
1.1 KiB
Lua
Executable file

#!/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()