From 7d0bbafd6cd6592249b7d9c1927d0dad5a7aaee5 Mon Sep 17 00:00:00 2001 From: Mikayla Fischler Date: Mon, 1 Sep 2025 19:09:49 -0400 Subject: [PATCH] #403 manual control guide --- pocket/ui/apps/guide.lua | 17 ++++++++++------ pocket/ui/docs.lua | 43 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 6 deletions(-) diff --git a/pocket/ui/apps/guide.lua b/pocket/ui/apps/guide.lua index fb536bf..0ba5bb4 100644 --- a/pocket/ui/apps/guide.lua +++ b/pocket/ui/apps/guide.lua @@ -112,6 +112,8 @@ local function new_view(root) PushButton{parent=home,text="Glossary >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,callback=gls_page.nav_to} PushButton{parent=home,y=10,text="Wiki and Discord >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,callback=lnk_page.nav_to} + load_text("Search") + TextBox{parent=search,y=1,text="Search",alignment=ALIGN.CENTER} local query_field = TextField{parent=search,x=1,y=3,width=18,fg_bg=cpair(colors.white,colors.gray)} @@ -184,9 +186,12 @@ local function new_view(root) TextBox{parent=use,y=1,text="System Usage",alignment=ALIGN.CENTER} PushButton{parent=use,x=2,y=1,text="<",fg_bg=btn_fg_bg,active_fg_bg=btn_active,callback=main_page.nav_to} + load_text(false, "Manual Control") + local man_ctrl_page = guide_section(sect_construct_data, use_page, "Manual Control", docs.usage.manual, 100) + PushButton{parent=use,y=3,text="Configuring Devices >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,dis_fg_bg=btn_disable,callback=function()end}.disable() PushButton{parent=use,text="Connecting Devices >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,dis_fg_bg=btn_disable,callback=function()end}.disable() - PushButton{parent=use,text="Manual Control >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,dis_fg_bg=btn_disable,callback=function()end}.disable() + PushButton{parent=use,text="Manual Control >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,callback=man_ctrl_page.nav_to} PushButton{parent=use,text="Automatic Control >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,dis_fg_bg=btn_disable,callback=function()end}.disable() PushButton{parent=use,text="Waste Control >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,dis_fg_bg=btn_disable,callback=function()end}.disable() @@ -235,19 +240,19 @@ local function new_view(root) local main_disp_page = guide_section(sect_construct_data, coord_page, "Main Display", docs.c_ui.main, 300) load_text(false, "Flow Display") local flow_disp_page = guide_section(sect_construct_data, coord_page, "Flow Display", docs.c_ui.flow, 210) - load_text(false, "Unit Display") - local unit_disp_page = guide_section(sect_construct_data, coord_page, "Unit Display", docs.c_ui.unit, 150) + load_text(false, "Unit Displays") + local unit_disp_page = guide_section(sect_construct_data, coord_page, "Unit Displays", docs.c_ui.unit, 150) PushButton{parent=coord_div,y=3,text="Main Display >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,callback=main_disp_page.nav_to} PushButton{parent=coord_div,text="Flow Display >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,callback=flow_disp_page.nav_to} - PushButton{parent=coord_div,text="Unit Display >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,callback=unit_disp_page.nav_to} + PushButton{parent=coord_div,text="Unit Displays >",fg_bg=btn_fg_bg,active_fg_bg=btn_active,callback=unit_disp_page.nav_to} - load_text(false, "Front Panels") + load_text("Front Panels") TextBox{parent=fps,y=1,text="Front Panels",alignment=ALIGN.CENTER} PushButton{parent=fps,x=2,y=1,text="<",fg_bg=btn_fg_bg,active_fg_bg=btn_active,callback=main_page.nav_to} - load_text("Front Panels", "Common Items") + load_text(false, "Common Items") local fp_common_page = guide_section(sect_construct_data, fps_page, "Common Items", docs.fp.common, 100) load_text(false, "Reactor PLC") local fp_rplc_page = guide_section(sect_construct_data, fps_page, "Reactor PLC", docs.fp.r_plc, 190) diff --git a/pocket/ui/docs.lua b/pocket/ui/docs.lua index 11d778b..6c40fc7 100644 --- a/pocket/ui/docs.lua +++ b/pocket/ui/docs.lua @@ -76,6 +76,29 @@ end --- @todo important to note in the future: The PLC should always be in a chunk with the reactor to ensure it can protect it on chunk load if you do not keep it all chunk loaded +--#region System Usage + +docs.usage = { + manual = {} +} + +target = docs.usage.manual +sect("Overview") +text("Manual reactor control still includes safety checks and monitoring, but the burn rate is not automatically controlled.") +text("A unit is under manual control when the AUTO CTRL option Manual is selected on the unit display.") +note("Specific UIs will not be discussed here. If you need help with the UI, refer to Operator UIs > Coordinator UI > Unit Displays.") +sect("Manual Control") +text("The unit display on the Coordinator is used to run manual control. You may also start/stop and set the burn rate via the Mekanism UI on the Fission Reactor.") +tip("If some controls are grayed out on the unit display, that operation isn't currently available, such as due to the reactor being already started or being under auto control.") +text("Manual control is started by the START button and runs at the commanded burn rate next to it, which can be modified before starting or after having started by selecting a value then pressing SET.") +text("The reactor can be stopped via SCRAM, then the RPS needs to be reset via RESET.") + +--#endregion + +--#region Operator UIs + +--#region Alarms + docs.alarms = {} target = docs.alarms @@ -92,6 +115,10 @@ doc("RPSTransient", "RPS Transient", "Reactor protection system was activated.") doc("RCSTransient", "RCS Transient", "Something is wrong with the reactor coolant system, check RCS indicators for details.") doc("TurbineTripAlarm", "Turbine Trip", "A turbine stopped rotating, likely due to having full energy storage. This will prevent cooling, so it needs to be resolved before using that unit.") +--#endregion + +--#region Annunciators + docs.annunc = { unit = { main_section = {}, rps_section = {}, rcs_section = {} @@ -168,6 +195,10 @@ doc("as_crit_alarm", "Unit Critical Alarm", "Automatic SCRAM occurred due to cri doc("as_radiation", "Facility Radiation High", "Automatic SCRAM occurred due to high facility radiation levels.") doc("as_gen_fault", "Gen. Control Fault", "Automatic SCRAM occurred due to assigned units being degraded/no longer ready during generation mode. The system will automatically resume (starting with initial ramp) once the problem is resolved.") +--#endregion + +--#region Coordinator UI + docs.c_ui = { main = {}, flow = {}, unit = {} } @@ -274,6 +305,12 @@ doc("ui_unit_standby", "STANDBY", "This indicates if the unit is set to auto con sect("Waste Processing") text("The unit's waste output configuration can be set via these buttons. Auto will put this unit under control of the facility waste control, otherwise the system will always command the requested option for this unit.") +--#endregion + +--#endregion + +--#region Front Panels + docs.fp = { common = {}, r_plc = {}, rtu_gw = {}, supervisor = {}, coordinator = {} } @@ -382,6 +419,10 @@ doc("fp_crd_mon_unit", "UNIT X MONITOR", "The connection status of the monitor a sect("API Tab") text("This tab lists connected pocket computers. Refer to the Supervisor PKT tab documentation for details on fields.") +--#endregion + +--#region Glossary + docs.glossary = { abbvs = {}, terms = {} } @@ -421,4 +462,6 @@ doc("G_Tripped", "Tripped", "An alarm condition has been met, and is still met." doc("G_Tripping", "Tripping", "Alarm condition(s) is/are met, but has/have not reached the minimum time before the condition(s) is/are deemed a problem.") doc("G_TurbineTrip", "Turbine Trip", "The turbine stopped, which prevents heated coolant from being cooled. In Mekanism, this would occur when a turbine cannot generate any more energy due to filling its buffer and having no output with any remaining energy capacity.") +--#endregion + return docs