45 lines
1.1 KiB
Lua

--
-- Reactor Unit SCADA Coordinator GUI
--
local tcallbackdsp = require("scada-common.tcallbackdsp")
local iocontrol = require("coordinator.iocontrol")
local style = require("coordinator.ui.style")
local unit_wait = require("coordinator.ui.components.unit_waiting")
local unit_detail = require("coordinator.ui.components.unit_detail")
local core = require("graphics.core")
local DisplayBox = require("graphics.elements.displaybox")
local cpair = core.graphics.cpair
local border = core.graphics.border
-- create a unit view
---@param monitor table
---@param id integer
local function init(monitor, id)
local main = DisplayBox{window=monitor,fg_bg=style.root}
unit_wait(main, 20)
-- block waiting for initial status
local function show_view()
local unit = iocontrol.get_db().units[id] ---@type ioctl_entry
if unit.reactor_data.last_status_update ~= nil then
unit_detail(main, id)
else
tcallbackdsp.dispatch(1, show_view)
end
end
tcallbackdsp.dispatch(1, show_view)
return main
end
return init