node.alias "testcard" util.init_hosted() local json = require "json" local serial = sys.get_env "SERIAL" local location = "" local description = "" 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") local v = { network = "", ethip = "", wlanip = "", gw = "" } util.data_mapper{ ["update/(.*)"] = function(key, val) v[key] = val end } function node.render() gl.clear(0,0,0,1) card:draw(0, 0, 1920, 1080) -- upper: 623 -- lower: 707 upper_text = "CCC: " .. description if location == nil or location == '' then lower_text = "Serial " .. serial else lower_text = location .. " - Serial " .. serial end upper_width = font:width(upper_text, 40) font:write(960-(upper_width/2), 631, upper_text, 40, 1,1,1,1) lower_width = font:width(lower_text, 20) font:write(960-(lower_width/2), 679, lower_text, 20, 1,1,1,1) -- draw text on left and right dark grey area local fontsize = 30 local offset = fontsize+10 local x_left = 100 local x_right = 1430 local y_start = 500 -- left side: network config, online status local y = y_start font:write(x_left, y, "Mode: " .. v.network, fontsize, 1,1,1,1) y = y + offset font:write(x_left, y, "GW: " .. v.gw, fontsize, 1,1,1,1) y = y + offset 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, v.online, fontsize, unpack(col)) end -- right side: IP addresses y = y_start font:write(x_right, y, "Eth: " .. v.ethip, fontsize, 1,1,1,1) y = y + offset font:write(x_right, y, "WiFi: " .. v.wlanip, fontsize, 1,1,1,1) end