From 45145e8c6a0eaa5368e390647c2570903dd747b0 Mon Sep 17 00:00:00 2001 From: gscalamera <graziano.scalamera@elettra.eu> Date: Mon, 27 May 2019 16:34:16 +0200 Subject: [PATCH] Added support for highest, high, medium, low, lowest priority levels --- src/AlarmHandler.cpp | 8 +++++--- src/alarm_grammar.h | 2 +- src/alarm_table.h | 9 ++++++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/AlarmHandler.cpp b/src/AlarmHandler.cpp index 5352f1c..49fd770 100644 --- a/src/AlarmHandler.cpp +++ b/src/AlarmHandler.cpp @@ -2309,7 +2309,8 @@ void AlarmHandler::modify(Tango::DevString argin) if ((alm.name.empty() == false) && \ (alm.formula.empty() == false) && \ ((alm.lev==LEV_LOG)||(alm.lev==LEV_WARNING)|| \ - (alm.lev==LEV_FAULT)||(alm.lev.empty() == true))) { + (alm.lev==LEV_FAULT)||(alm.lev==LEV_LOWEST)||(alm.lev==LEV_LOW)|| \ + (alm.lev==LEV_MEDIUM)||(alm.lev==LEV_HIGH)||(alm.lev==LEV_HIGHEST)||(alm.lev.empty() == true))) { i->second.stat = S_NORMAL; i->second.ack = ACK; i->second.done = false; @@ -3331,7 +3332,8 @@ void AlarmHandler::load_alarm(string alarm_string, alarm_t &alm, vector<string> if ((alm.name.empty() == false) && \ (alm.formula.empty() == false) && \ ((alm.lev==LEV_LOG)||(alm.lev==LEV_WARNING)|| \ - (alm.lev==LEV_FAULT)||(alm.lev.empty() == true))) { + (alm.lev==LEV_FAULT)||(alm.lev==LEV_LOWEST)||(alm.lev==LEV_LOW)|| \ + (alm.lev==LEV_MEDIUM)||(alm.lev==LEV_HIGH)||(alm.lev==LEV_HIGHEST)||(alm.lev.empty() == true))) { alm.stat = S_NORMAL; alm.ack = ACK; alm.done = false; @@ -4233,7 +4235,7 @@ void AlarmHandler::set_internal_alarm(string name, Tango::TimeVal t, string msg, else alm.grp = GR_DEFAULT; //alm.lev = LEV_DEFAULT; - alm.lev = LEV_LOG; + alm.lev = LEV_LOWEST; internal.push_back(alm); } internallock->writerOut(); diff --git a/src/alarm_grammar.h b/src/alarm_grammar.h index 5cdcfe0..b6beaf3 100644 --- a/src/alarm_grammar.h +++ b/src/alarm_grammar.h @@ -246,7 +246,7 @@ struct alarm_parse : public grammar<alarm_parse> = discard_node_d[str_p(KEY(LEVEL_KEY))] >> //lexeme_d[(+alnum_p)] //match only possible levels?? (fault, log, ...) //(+(alnum_p-'\t')) - (str_p("fault") | str_p("warning") | str_p("log")) + (str_p("highest") | str_p("high") | str_p("medium") | str_p("low") | str_p("lowest") | str_p("fault") | str_p("warning") | str_p("log"))//TODO [ assign_a(self.m_alarm.lev) //save level in alarm_t ] diff --git a/src/alarm_table.h b/src/alarm_table.h index 0a33962..4756d9a 100644 --- a/src/alarm_table.h +++ b/src/alarm_table.h @@ -83,7 +83,14 @@ typedef parse_tree_match_t::tree_iterator iter_t; #define LEV_LOG "log" #define LEV_WARNING "warning" #define LEV_FAULT "fault" -#define LEV_DEFAULT LEV_FAULT +//#define LEV_DEFAULT LEV_FAULT + +#define LEV_LOWEST "lowest" +#define LEV_LOW "low" +#define LEV_MEDIUM "medium" +#define LEV_HIGH "high" +#define LEV_HIGHEST "highest" +#define LEV_DEFAULT LEV_HIGH class alarm_t; class alarm_table; -- GitLab