initial commit with all the stuff
This commit is contained in:
130
2B+Software/app/run_mqtt.lua
Normal file
130
2B+Software/app/run_mqtt.lua
Normal file
@@ -0,0 +1,130 @@
|
||||
-- LUA default run file
|
||||
|
||||
-- LUA default run file
|
||||
|
||||
require "env"
|
||||
MQTT = require("mqtt")
|
||||
Scheduler = require('scheduler')
|
||||
|
||||
LOGING = 1
|
||||
|
||||
local function errLog(msg)
|
||||
io.stderr:write(msg)
|
||||
end
|
||||
|
||||
function logPrint(msg,aux)
|
||||
if ( LOGING ) then
|
||||
if aux then
|
||||
print(msg.." , "..aux)
|
||||
else
|
||||
print(msg);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function dbgPrint(msg,aux)
|
||||
if ( DEBUG ) then
|
||||
if aux then
|
||||
print(msg.." , "..aux)
|
||||
else
|
||||
print(msg);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
MQTT.onConnect (
|
||||
function()
|
||||
errLog("MQTT:\t Connect\n");
|
||||
MQTT.subscribe("+/#")
|
||||
end
|
||||
)
|
||||
|
||||
MQTT.onMessage (
|
||||
function(mid, topic, payload)
|
||||
logPrint("MQTT:\t Message <"..topic..">", payload)
|
||||
--posY,posX,strData,attrData = string.match(payload,"(%d+)|(%d+)|([^|])|([^|])")
|
||||
posY,posX,rawData = string.match(payload,"(%d+)|(%d+)|(.+)")
|
||||
strData=string.sub(rawData,1,string.len(rawData)/2)
|
||||
attrData=string.sub(rawData,string.len(rawData)/2+2)
|
||||
print(posY.."|"..posX.."|"..strData.."|"..attrData.."\n")
|
||||
if posY and posX and strData and attrData then
|
||||
local len = string.len(strData)
|
||||
for j=1, len, 1 do
|
||||
local label = line[posY+1][posX+j]
|
||||
if attrData:sub(j,j) == 'b' then
|
||||
label:setTextColor(HMI.Color.black);
|
||||
label:setBackground(HMI.Color.green);
|
||||
else
|
||||
label:setTextColor(HMI.Color.green);
|
||||
label:setBackground(HMI.Color.black);
|
||||
end
|
||||
label:setText(strData:sub(j,j))
|
||||
label:draw()
|
||||
end
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
function setup()
|
||||
|
||||
if app.mqttBroker then
|
||||
MQTT.begin(app.mqttBroker[1])
|
||||
end
|
||||
MQTT.loop()
|
||||
|
||||
instance = HMI.App.instance;
|
||||
layout = HMI.Layout(instance,200,48);
|
||||
|
||||
mono = HMI.Font("/root/font/mono.ttf",34)
|
||||
|
||||
line = {}
|
||||
for i=1, 6, 1 do
|
||||
line[i] = {}
|
||||
for j=1, 40, 1 do
|
||||
line[i][j] = HMI.Label(layout,5*(j-1),8+4*(i-1),5,4,j%10);
|
||||
-- line[i] = HMI.Label(layout,0,8+4*(i-1),200,4,"1234567890123456789012345678901234567890");
|
||||
line[i][j]:setTextColor(HMI.Color.green);
|
||||
line[i][j]:setBackground(HMI.Color.black);
|
||||
line[i][j]:setFont(mono)
|
||||
line[1][j]:draw()
|
||||
end
|
||||
end
|
||||
|
||||
number = {}
|
||||
for i=1, 10, 1 do
|
||||
number[i] = HMI.Cell(layout,1+20*(i-1),0,20,7,i-1);
|
||||
number[i]:setTextColor(HMI.Color.black);
|
||||
number[i]:setBackground(HMI.Color.grey);
|
||||
number[i]:setFont(mono)
|
||||
end
|
||||
|
||||
control = {}
|
||||
for j=0, 1, 1 do
|
||||
for i=1, 10, 1 do
|
||||
control[i+j] = HMI.Cell(layout,1+20*(i-1),34+j*7,20,7,i-1);
|
||||
control[i+j]:setTextColor(HMI.Color.black);
|
||||
control[i+j]:setBackground(HMI.Color.grey);
|
||||
control[i+j]:setFont(mono)
|
||||
end
|
||||
end
|
||||
|
||||
updateTimer = Scheduler.Timer(500)
|
||||
cnt = 0;
|
||||
end
|
||||
|
||||
function loop()
|
||||
--[[
|
||||
if updateTimer.elapsed() then
|
||||
line[1]:setText(string.format("%5.2f",cnt))
|
||||
line[1]:draw()
|
||||
cnt = cnt + 1
|
||||
updateTimer.restart()
|
||||
end
|
||||
--]]
|
||||
MQTT.loop()
|
||||
end
|
||||
|
||||
io.stderr:write("Run LUA\n");
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user