#401 supervisor and coordinator computer display
This commit is contained in:
@@ -19,7 +19,7 @@ local TextBox = require("graphics.elements.TextBox")
|
||||
|
||||
local WaitingAnim = require("graphics.elements.animations.Waiting")
|
||||
|
||||
local RadIndicator = require("graphics.elements.indicators.RadIndicator")
|
||||
local DataIndicator = require("graphics.elements.indicators.DataIndicator")
|
||||
|
||||
local ALIGN = core.ALIGN
|
||||
local cpair = core.cpair
|
||||
@@ -30,6 +30,11 @@ local APP_ID = pocket.APP_ID
|
||||
local label_fg_bg = style.label
|
||||
local lu_col = style.label_unit_pair
|
||||
|
||||
-- nominal RTT is ping (0ms to 10ms usually) + 150ms for SV main loop tick
|
||||
-- ensure in sync with supervisor databus file
|
||||
local WARN_RTT = 300 -- 2x as long as expected w/ 0 ping
|
||||
local HIGH_RTT = 500 -- 3.33x as long as expected w/ 0 ping
|
||||
|
||||
-- new computer list page view
|
||||
---@param root Container parent
|
||||
local function new_view(root)
|
||||
@@ -107,7 +112,7 @@ local function new_view(root)
|
||||
end)
|
||||
end
|
||||
|
||||
--#region overview page
|
||||
--#region main computer page
|
||||
|
||||
local m_pane = panes[1]
|
||||
local m_div = Div{parent=m_pane,x=2,width=main.get_width()-2}
|
||||
@@ -117,9 +122,62 @@ local function new_view(root)
|
||||
|
||||
TextBox{parent=m_div,y=1,text="Connected Computers",alignment=ALIGN.CENTER}
|
||||
|
||||
TextBox{parent=m_div,y=3,text="Networked Computers",fg_bg=label_fg_bg}
|
||||
local s_f_rad = RadIndicator{parent=m_div,label="",format="%17.3f",lu_colors=lu_col,width=21}
|
||||
s_f_rad.register(f_ps, "radiation", s_f_rad.update)
|
||||
local conns = DataIndicator{parent=m_div,x=10,y=3,lu_colors=lu_col,label="Online",unit="",format="%3d",value=0,commas=true,width=21}
|
||||
conns.register(f_ps, "comp_online", conns.update)
|
||||
|
||||
local svr_div = Div{parent=m_div,y=5,height=5}
|
||||
local svr_rect = Rectangle{parent=svr_div,height=5,x=2,width=21,border=border(1,colors.gray,true),thin=true,fg_bg=cpair(colors.black,colors.lightGray)}
|
||||
|
||||
TextBox{parent=svr_rect,text="Supervisor"}
|
||||
TextBox{parent=svr_rect,x=12,y=1,width=6,text="Online",fg_bg=cpair(colors.green,colors._INHERIT)}
|
||||
TextBox{parent=svr_rect,text="Computer ID",fg_bg=label_fg_bg}
|
||||
TextBox{parent=svr_rect,text="Firmware",fg_bg=label_fg_bg}
|
||||
local svr_addr = TextBox{parent=svr_rect,x=13,y=2,text="---"}
|
||||
local svr_fw = TextBox{parent=svr_rect,x=13,y=3,text="---"}
|
||||
|
||||
svr_addr.register(f_ps, "comp_svr_addr", svr_addr.set_value)
|
||||
svr_fw.register(f_ps, "comp_svr_fw", svr_fw.set_value)
|
||||
|
||||
local crd_div = Div{parent=m_div,y=5,height=5}
|
||||
local crd_rect = Rectangle{parent=crd_div,height=6,x=2,width=21,border=border(1,colors.gray,true),thin=true,fg_bg=cpair(colors.black,colors.lightGray)}
|
||||
|
||||
TextBox{parent=crd_rect,text="Coordinator"}
|
||||
local crd_online = TextBox{parent=svr_rect,x=12,y=1,width=7,text="Online",fg_bg=cpair(colors.green,colors._INHERIT)}
|
||||
TextBox{parent=crd_rect,text="Computer ID",fg_bg=label_fg_bg}
|
||||
TextBox{parent=crd_rect,text="Firmware",fg_bg=label_fg_bg}
|
||||
TextBox{parent=crd_rect,text="Round-Trip Time",fg_bg=label_fg_bg}
|
||||
local crd_addr = TextBox{parent=svr_rect,x=13,y=2,text="---"}
|
||||
local crd_fw = TextBox{parent=svr_rect,x=13,y=3,text="---"}
|
||||
local crd_rtt = TextBox{parent=svr_rect,x=13,y=3,text="---"}
|
||||
|
||||
crd_addr.register(f_ps, "comp_crd_addr", crd_addr.set_value)
|
||||
crd_fw.register(f_ps, "comp_crd_fw", crd_fw.set_value)
|
||||
|
||||
crd_online.register(f_ps, "comp_crd_online", function (online)
|
||||
if online then
|
||||
crd_online.set_value("Online")
|
||||
crd_online.recolor(colors.green)
|
||||
else
|
||||
crd_online.set_value("Off-line")
|
||||
crd_online.recolor(colors.red)
|
||||
end
|
||||
end)
|
||||
|
||||
crd_rtt.register(f_ps, "comp_crd_rtt", function (rtt)
|
||||
crd_rtt.set_value(rtt)
|
||||
|
||||
if type(rtt) ~= "number" then
|
||||
crd_rtt.recolor(label_fg_bg.fgd)
|
||||
else
|
||||
if rtt > HIGH_RTT then
|
||||
crd_rtt.recolor(colors.red)
|
||||
elseif rtt > WARN_RTT then
|
||||
crd_rtt.recolor(colors.yellow)
|
||||
else
|
||||
crd_rtt.recolor(colors.green)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
--#endregion
|
||||
|
||||
|
||||
Reference in New Issue
Block a user