#580 supervisor front panel updates for wired modem support

This commit is contained in:
Mikayla 2025-06-28 17:26:49 +00:00
parent 391b68d357
commit 250db00794
3 changed files with 19 additions and 19 deletions

View File

@ -34,8 +34,8 @@ local ind_grn = style.ind_grn
-- create new front panel view -- create new front panel view
---@param panel DisplayBox main displaybox ---@param panel DisplayBox main displaybox
---@param wl_modem boolean if there is a separate wireless modem ---@param config svr_config configuraiton
local function init(panel, wl_modem) local function init(panel, config)
local s_hi_box = style.theme.highlight_box local s_hi_box = style.theme.highlight_box
local s_hi_bright = style.theme.highlight_box_bright local s_hi_bright = style.theme.highlight_box_bright
@ -63,21 +63,23 @@ local function init(panel, wl_modem)
heartbeat.register(databus.ps, "heartbeat", heartbeat.update) heartbeat.register(databus.ps, "heartbeat", heartbeat.update)
local c_modem = LED{parent=system,label="MODEM"..util.trinary(wl_modem," A",""),colors=ind_grn} if config.WirelessModem then
system.line_break() local wl_modem = LED{parent=system,label="WL MODEM",colors=ind_grn}
c_modem.register(databus.ps, "has_modem_a", c_modem.update)
if wl_modem then
local p_modem = LED{parent=system,label="MODEM B",colors=ind_grn}
system.line_break() system.line_break()
p_modem.register(databus.ps, "has_modem_b", p_modem.update) wl_modem.register(databus.ps, "has_wl_modem", wl_modem.update)
end
if config.WiredModem then
local wd_modem = LED{parent=system,label="WD MODEM",colors=ind_grn}
system.line_break()
wd_modem.register(databus.ps, "has_wd_modem", wd_modem.update)
end end
---@diagnostic disable-next-line: undefined-field ---@diagnostic disable-next-line: undefined-field
local comp_id = util.sprintf("(%d)", os.getComputerID()) local comp_id = util.sprintf("(%d)", os.getComputerID())
TextBox{parent=system,x=11,y=4,width=6,text=comp_id,fg_bg=style.fp.disabled_fg} TextBox{parent=system,x=12,y=4,width=6,text=comp_id,fg_bg=style.fp.disabled_fg}
-- --
-- about footer -- about footer

View File

@ -19,16 +19,14 @@ local ui = {
} }
-- try to start the UI -- try to start the UI
---@param wl_modem boolean if there is a separate wireless modem to display the status of ---@param config svr_config configuration
---@param theme FP_THEME front panel theme
---@param color_mode COLOR_MODE color mode
---@return boolean success, any error_msg ---@return boolean success, any error_msg
function renderer.try_start_ui(wl_modem, theme, color_mode) function renderer.try_start_ui(config)
local status, msg = true, nil local status, msg = true, nil
if ui.display == nil then if ui.display == nil then
-- set theme -- set theme
style.set_theme(theme, color_mode) style.set_theme(config.FrontPanelTheme, config.ColorMode)
-- reset terminal -- reset terminal
term.setTextColor(colors.white) term.setTextColor(colors.white)
@ -42,7 +40,7 @@ function renderer.try_start_ui(wl_modem, theme, color_mode)
end end
-- apply color mode -- apply color mode
local c_mode_overrides = style.theme.color_modes[color_mode] local c_mode_overrides = style.theme.color_modes[config.ColorMode]
for i = 1, #c_mode_overrides do for i = 1, #c_mode_overrides do
term.setPaletteColor(c_mode_overrides[i].c, c_mode_overrides[i].hex) term.setPaletteColor(c_mode_overrides[i].c, c_mode_overrides[i].hex)
end end
@ -50,7 +48,7 @@ function renderer.try_start_ui(wl_modem, theme, color_mode)
-- init front panel view -- init front panel view
status, msg = pcall(function () status, msg = pcall(function ()
ui.display = DisplayBox{window=term.current(),fg_bg=style.fp.root} ui.display = DisplayBox{window=term.current(),fg_bg=style.fp.root}
panel_view(ui.display, wl_modem) panel_view(ui.display, config)
end) end)
if status then if status then

View File

@ -130,7 +130,7 @@ local function main()
if not pcie.init(config, println) then return end if not pcie.init(config, println) then return end
-- start UI -- start UI
local fp_ok, message = renderer.try_start_ui(pcie.has_pocket_nic(), config.FrontPanelTheme, config.ColorMode) local fp_ok, message = renderer.try_start_ui(config)
if not fp_ok then if not fp_ok then
println_ts(util.c("UI error: ", message)) println_ts(util.c("UI error: ", message))