require "internal_api" require "sys" require "socket" require "base64" local address, port, user, password, topic = "localhost", 1883, nil, nil, {"ipc/+/d2QvQdtpHU3AexHx/device/+/data/Set_Rglt_Raw"} local udp local function udp_init() udp = socket.udp() udp:setoption('broadcast', true) udp:setsockname("172.16.254.254", 19794) udp:settimeout(2) end local function udp_send(data) -- local str = "" -- for i = 1, #data, 1 do -- str = str..string.char(data[i]) -- end udp:sendto(data, "172.16.254.255", 19274) local ack = udp:receive() if #ack ~= 0 then end end local function mqtt_callback(topic, payload) local obj = cjson.decode(payload) --print(obj.data_b64) --print(topic, payload) local data_table = base64.decode(obj.data_b64) udp_send(data_table) end sys.taskInit(function() udp_init() internal_api.mqtt_session(address, port, user, password, topic, mqtt_callback) while(true) do sys.wait(1000) end end) sys.init(0, 0) sys.run()