infobeamer-testcard/node.lua

87 lines
2 KiB
Lua
Raw Normal View History

2023-04-17 18:49:53 +00:00
node.alias "testcard"
2023-03-14 08:55:54 +00:00
util.init_hosted()
local json = require "json"
local serial = sys.get_env "SERIAL"
2023-03-14 12:40:56 +00:00
local location = ""
2023-03-14 08:55:54 +00:00
local description = "<please wait>"
util.data_mapper{
["device_info"] = function(info)
info = json.decode(info)
location = info.location
description = info.description
end
}
gl.setup(NATIVE_WIDTH, NATIVE_HEIGHT)
card = resource.load_image("testcard.png")
font = resource.load_font("vera.ttf")
2023-04-17 18:49:53 +00:00
local v = {}
util.data_mapper{
["update/(.*)"] = function(key, val)
v[key] = val
end
}
2023-03-14 08:55:54 +00:00
function node.render()
gl.clear(0,0,0,1)
card:draw(0, 0, 1920, 1080)
-- upper: 623
-- lower: 707
2023-04-17 18:49:53 +00:00
upper_text = "CCC: " .. description
2023-03-14 12:40:56 +00:00
if location == nil or location == '' then
lower_text = "Serial " .. serial
else
lower_text = location .. " - Serial " .. serial
end
2023-03-14 08:55:54 +00:00
upper_width = font:width(upper_text, 40)
2023-03-14 11:58:52 +00:00
font:write(960-(upper_width/2), 631, upper_text, 40, 1,1,1,1)
2023-03-14 08:55:54 +00:00
lower_width = font:width(lower_text, 20)
2023-03-14 11:58:52 +00:00
font:write(960-(lower_width/2), 679, lower_text, 20, 1,1,1,1)
2023-04-17 18:49:53 +00:00
2023-04-17 19:30:21 +00:00
-- available space y: 450 to 700
local fontsize = 40
local x_left = 90
local x_right = 1400
local y_start = 500
2023-04-17 18:49:53 +00:00
2023-04-17 19:30:21 +00:00
-- left side: network config, online status
if v.network then
font:write(x_left, y_start, "Mode: " .. v.network, fontsize, 1,1,1,1)
2023-04-17 18:49:53 +00:00
end
2023-04-17 19:30:21 +00:00
font:write(x_left, y_start+50, "online", fontsize, col)
if v.online then
local col = {1,0,0,1}
if v.online == "online" then
col = {0,1,0,1}
end
font:write(x_left, y_start+50, v.online, fontsize, col)
2023-04-17 18:49:53 +00:00
end
2023-04-17 19:30:21 +00:00
-- right side: IP address
2023-04-17 18:49:53 +00:00
if v.ethip then
2023-04-17 19:30:21 +00:00
font:write(x_right, y_start, "Eth: " .. v.ethip, fontsize, 1,1,1,1)
2023-04-17 18:49:53 +00:00
end
if v.wlanip then
2023-04-17 19:30:21 +00:00
font:write(x_right, y_start+50, "WiFi: " .. v.wlanip, fontsize, 1,1,1,1)
2023-04-17 18:49:53 +00:00
end
if v.gw then
2023-04-17 19:30:21 +00:00
font:write(x_right, y_start+100, "GW: " .. v.gw, fontsize, 1,1,1,1)
2023-04-17 18:49:53 +00:00
end
2023-03-14 08:55:54 +00:00
end