infobeamer-testcard/node.lua

98 lines
1.9 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
-- TODO
local size, k_x, v_x, y
size = math.floor(HEIGHT/20)
y = 30+size*6
k_x, v_x = 30, 30+font:width("XXXXXXXXXXXXXXXX", size)
local function key(str)
font:write(k_x, y, str, size, 1,1,1,.5)
end
local function val(str, col)
col = col or {1,1,1,.5}
font:write(v_x, y, str, size, unpack(col))
y = y + size*1.1
end
if v.network then
key "Network config"
val(v.network)
end
if v.ethip then
key "Ethernet IPv4"
val(v.ethip)
end
if v.wlanip then
key "WiFi IPv4"
val(v.wlanip)
end
if v.gw then
key "Gateway"
val(v.gw)
end
if v.online then
key "Online status"
local col = {1,0,0,1}
if v.online == "online" then
col = {0,1,0,1}
end
val(v.online, col)
end
2023-03-14 08:55:54 +00:00
end