From 8429cbfd6e39ae43c5ac855ffd223092f8fe59c5 Mon Sep 17 00:00:00 2001 From: Mikayla Fischler Date: Tue, 25 Jan 2022 13:51:43 -0500 Subject: [PATCH] scada alarms --- scada-common/alarm.lua | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 scada-common/alarm.lua diff --git a/scada-common/alarm.lua b/scada-common/alarm.lua new file mode 100644 index 0000000..b93df73 --- /dev/null +++ b/scada-common/alarm.lua @@ -0,0 +1,54 @@ +SEVERITY = { + INFO = 0, -- basic info message + WARNING = 1, -- warning about some abnormal state + ALERT = 2, -- important device state changes + FACILITY = 3, -- facility-wide alert + SAFETY = 4, -- safety alerts + EMERGENCY = 5 -- critical safety alarm +} + +function scada_alarm(severity, device, message) + local self = { + time = os.time(), + ts_string = os.date("[%H:%M:%S]"), + severity = severity, + device = device, + message = message + } + + local format = function () + return self.ts_string .. " [" .. severity_to_string(self.severity) .. "] (" .. self.device ") >> " .. self.message + end + + local properties = function () + return { + time = self.time, + severity = self.severity, + device = self.device, + message = self.message + } + end + + return { + format = format, + properties = properties + } +end + +function severity_to_string(severity) + if severity == SEVERITY.INFO then + return "INFO" + elseif severity == SEVERITY.WARNING then + return "WARNING" + elseif severity == SEVERITY.ALERT then + return "ALERT" + elseif severity == SEVERITY.FACILITY then + return "FACILITY" + elseif severity == SEVERITY.SAFETY then + return "SAFETY" + elseif severity == SEVERITY.EMERGENCY then + return "EMERGENCY" + else + return "UNKNOWN" + end +end