#367 logic for missing device detection and user-friendly messages

This commit is contained in:
Mikayla
2024-08-21 21:23:16 +00:00
parent 01a1c374ab
commit 12f187f596
6 changed files with 206 additions and 35 deletions

View File

@@ -285,7 +285,18 @@ function facility.new(config)
-- link an environment detector RTU session
---@param envd unit_session
function public.add_envd(envd) table.insert(self.envd, envd) end
---@return boolean linked environment detector accepted
function public.add_envd(envd)
local fail_code, fail_str = svsessions.check_rtu_id(envd, self.envd, 99)
if fail_code == 0 then
table.insert(self.envd, envd)
else
log.warning(util.c("FAC: rejected environment detector linking due to failure code ", fail_code, " (", fail_str, ")"))
end
return fail_code == 0
end
-- purge devices associated with the given RTU session ID
---@param session integer RTU session ID
@@ -575,6 +586,22 @@ function facility.new(config)
}
end
-- check which RTUs are connected
---@nodiscard
function public.check_rtu_conns()
local conns = {}
conns.induction = #self.induction > 0
conns.sps = #self.sps > 0
conns.tanks = {}
for i = 1, #self.tanks do
conns.tanks[self.tanks[i].get_device_idx()] = true
end
return conns
end
-- get RTU statuses
---@nodiscard
function public.get_rtu_statuses()