added side type alias and added some validation to RSIO

This commit is contained in:
Mikayla Fischler 2023-10-19 23:22:04 -04:00
parent ff4a5a68d9
commit 4869c00c0e
3 changed files with 53 additions and 32 deletions

View File

@ -82,46 +82,59 @@ rsio.IO_LVL = IO_LVL
rsio.IO_DIR = IO_DIR rsio.IO_DIR = IO_DIR
rsio.IO_MODE = IO_MODE rsio.IO_MODE = IO_MODE
rsio.IO = IO_PORT rsio.IO = IO_PORT
rsio.NUM_PORTS = IO_PORT.U_EMER_COOL
-- self checks
local dup_chk = {}
for _, v in pairs(IO_PORT) do
assert(dup_chk[v] ~= true, "duplicate in port list")
dup_chk[v] = true
end
assert(#dup_chk == rsio.NUM_PORTS, "port list malformed")
--#endregion --#endregion
--#region Utility Functions --#region Utility Functions
local PORT_NAMES = {
"F_SCRAM",
"F_ACK",
"R_SCRAM",
"R_RESET",
"R_ENABLE",
"U_ACK",
"F_ALARM",
"F_ALARM_ANY",
"WASTE_PU",
"WASTE_PO",
"WASTE_POPL",
"WASTE_AM",
"R_ACTIVE",
"R_AUTO_CTRL",
"R_SCRAMMED",
"R_AUTO_SCRAM",
"R_HIGH_DMG",
"R_HIGH_TEMP",
"R_LOW_COOLANT",
"R_EXCESS_HC",
"R_EXCESS_WS",
"R_INSUFF_FUEL",
"R_PLC_FAULT",
"R_PLC_TIMEOUT",
"U_ALARM",
"U_EMER_COOL"
}
assert(rsio.NUM_PORTS == #PORT_NAMES, "port names length incorrect")
-- port to string -- port to string
---@nodiscard ---@nodiscard
---@param port IO_PORT ---@param port IO_PORT
function rsio.to_string(port) function rsio.to_string(port)
local names = { if util.is_int(port) and port > 0 and port <= #PORT_NAMES then
"F_SCRAM", return PORT_NAMES[port]
"F_ACK",
"R_SCRAM",
"R_RESET",
"R_ENABLE",
"U_ACK",
"F_ALARM",
"F_ALARM_ANY",
"WASTE_PU",
"WASTE_PO",
"WASTE_POPL",
"WASTE_AM",
"R_ACTIVE",
"R_AUTO_CTRL",
"R_SCRAMMED",
"R_AUTO_SCRAM",
"R_HIGH_DMG",
"R_HIGH_TEMP",
"R_LOW_COOLANT",
"R_EXCESS_HC",
"R_EXCESS_WS",
"R_INSUFF_FUEL",
"R_PLC_FAULT",
"R_PLC_TIMEOUT",
"U_ALARM",
"U_EMER_COOL"
}
if util.is_int(port) and port > 0 and port <= #names then
return names[port]
else else
return "UNKNOWN" return "UNKNOWN"
end end

View File

@ -252,6 +252,14 @@ types.ALARM_STATE_NAMES = {
-- STRING TYPES -- -- STRING TYPES --
--#region --#region
---@alias side
---|"top"
---|"bottom"
---|"left"
---|"right"
---|"front"
---|"back"
---@alias os_event ---@alias os_event
---| "alarm" ---| "alarm"
---| "char" ---| "char"

View File

@ -18,7 +18,7 @@ local type = type
local util = {} local util = {}
-- scada-common version -- scada-common version
util.version = "1.1.5" util.version = "1.1.6"
util.TICK_TIME_S = 0.05 util.TICK_TIME_S = 0.05
util.TICK_TIME_MS = 50 util.TICK_TIME_MS = 50