Index: leahi_dialin/td/modules/alarms.py =================================================================== diff -u -r3f4937e339925dde0b95f08e49969f8983c5cba4 -rba415df9f8e76d6b0f21e8f69ba99346e42f7b09 --- leahi_dialin/td/modules/alarms.py (.../alarms.py) (revision 3f4937e339925dde0b95f08e49969f8983c5cba4) +++ leahi_dialin/td/modules/alarms.py (.../alarms.py) (revision ba415df9f8e76d6b0f21e8f69ba99346e42f7b09) @@ -17,12 +17,13 @@ # Module imports from functools import partial from logging import Logger -from typing import List +from typing import List, Union # Project imports from leahi_dialin.common import td_enum_repository, AlarmList from leahi_dialin.common.constants import NO_RESET from leahi_dialin.common.generic_defs import DataTypes +from leahi_dialin.common.msg_defs import RequestRejectReasons from leahi_dialin.common.msg_ids import MsgIds from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override from leahi_dialin.protocols.CAN import CanMessenger, CanChannels @@ -109,25 +110,15 @@ # Alarms list self.ui_alarm_list_accepted = True - self.ui_alarm_list_reject_reason = 0 + self.ui_alarm_list_reject_reason = RequestRejectReasons.REQUEST_REJECT_REASON_NONE self.ui_alarm_list = [] self.ui_alarm_list_timestamp = 0.0 #: The timestamp of the last Alarm List # Alarm Table Properties self.alarm_table = {} - def clear_dialin_alarms(self): - """ - Clears the alarms states in Dialin. - @return: none - """ - for x in range(500): - self.alarm_states[x] = False - - - # ============================================================ Properties ============================================================ @property def alarms_priority_state(self) -> int: @@ -286,14 +277,16 @@ @property - def ui_alarm_list_reject_reason(self) -> int: + def ui_alarm_list_reject_reason(self) -> RequestRejectReasons: """ The UI Alarm List request reject reason """ return self._ui_alarm_list_reject_reason @ui_alarm_list_reject_reason.setter - def ui_alarm_list_reject_reason(self, value): + def ui_alarm_list_reject_reason(self, value: Union[int, RequestRejectReasons]): + if isinstance(value, int): + self._ui_alarm_list_reject_reason = RequestRejectReasons(value) self._ui_alarm_list_reject_reason = value @@ -364,7 +357,6 @@ rank = LocalVars('rank') clr_top_only = LocalVars('clr_top_only') - result = {} msg_list = [] msg_list.append((alarm_id, DataTypes.U32)) msg_list.append((data_typ_1, DataTypes.U32)) @@ -548,6 +540,30 @@ +# ============================================================ Support ============================================================ + def clear_dialin_alarms(self): + """ + Clears the alarms states in Dialin. + + @return: none + """ + for x in range(self.alarm_states): + self.alarm_states[x] = False + + + def get_dialin_alarms(self): + """ + Get the active alarms in Dialin. + + @return: none + """ + active_alarms = [] + for x in range(self.alarm_states): + if self.alarm_states[x]: + active_alarms.append(AlarmList(x)) + return active_alarms + + # ============================================================ Overrides and Requests ============================================================ def cmd_alarm_status_broadcast_interval_override(self, ms: int = 250, reset: int = NO_RESET): """