mirror of
https://github.com/MikaylaFischler/cc-mek-scada.git
synced 2024-08-30 18:22:34 +00:00
added side type alias and added some validation to RSIO
This commit is contained in:
parent
ff4a5a68d9
commit
4869c00c0e
@ -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
|
||||||
|
@ -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"
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user