57 lines
1.1 KiB
Lua
57 lines
1.1 KiB
Lua
package.path = package.path .. ';./controller-host/?/init.lua;./controller-host/?.lua'
|
|
local mqtt = require("mqtt")
|
|
local client
|
|
|
|
function printTable(table, indentation)
|
|
indentation = indentation or ""
|
|
for name, value in pairs(table) do
|
|
print(indentation .. tostring(name) .. ": " .. tostring(value))
|
|
end
|
|
end
|
|
|
|
local count = 0
|
|
local function onMessage(data)
|
|
--print("Got payload on topic " .. data.topic)
|
|
local fh = io.open("spider-image.bin", "wb")
|
|
fh:write(data.payload)
|
|
fh:close()
|
|
count = count + 1
|
|
print("Wrote image " .. count .. " of length " .. #data.payload)
|
|
end
|
|
|
|
local function onConnect(connack)
|
|
print("Connected")
|
|
if connack.rc ~= 0 then
|
|
print("Connection to broker failed:", connack:reason_string())
|
|
os.exit(1)
|
|
end
|
|
|
|
assert(client:subscribe{
|
|
topic = "spider/telemetry/#"
|
|
})
|
|
|
|
print("Subscribed")
|
|
end
|
|
|
|
client = mqtt.client {
|
|
uri = "mqtt.seeseepuff.be",
|
|
id = "tool-get-image",
|
|
reconnect = 5,
|
|
version = mqtt.v311,
|
|
clean = "first"
|
|
}
|
|
|
|
client:on {
|
|
connect = onConnect,
|
|
message = onMessage,
|
|
error = function(err)
|
|
print("MQTT client error:", err)
|
|
end,
|
|
}
|
|
|
|
client:subscribe {
|
|
topic = 'spider/controller/#'
|
|
}
|
|
|
|
mqtt.run_ioloop(client)
|