Index: dialin/common/alarm_defs.py =================================================================== diff -u -rdd35c2e4427612ca17937e04f9f0043e294b827c -r5dd7c5ed8c083ac0bcfb6b224f9ca9569c96a40c --- dialin/common/alarm_defs.py (.../alarm_defs.py) (revision dd35c2e4427612ca17937e04f9f0043e294b827c) +++ dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 5dd7c5ed8c083ac0bcfb6b224f9ca9569c96a40c) @@ -13,10 +13,11 @@ # @date (original) 07-Aug-2020 # ############################################################################ -from enum import Enum, unique +from enum import unique +from ..utils.base import DialinEnum @unique -class AlarmList(Enum): +class AlarmList(DialinEnum): ALARM_ID_NO_ALARM = 0 # Indication for when no alarms is a possible situation ALARM_ID_HD_SOFTWARE_FAULT = 1 # HD Software fault. Software found itself in an unexpected state ALARM_ID_STUCK_BUTTON_TEST_FAILED = 2 # Stuck button POST failure. Stop or Off button detected to be pressed for at least 1 second during test shortly after power up @@ -108,7 +109,7 @@ NUM_OF_ALARM_IDS = 88 # Total number of alarms @unique -class AlarmPriorities(Enum): +class AlarmPriorities(DialinEnum): ALARM_PRIORITY_NONE = 0 # Indicates not an alarm or no alarms active at this time ALARM_PRIORITY_LOW = 1 # Low priority alarm ALARM_PRIORITY_MEDIUM = 2 # Medium priority alarm Index: dialin/common/msg_defs.py =================================================================== diff -u -rdd35c2e4427612ca17937e04f9f0043e294b827c -r5dd7c5ed8c083ac0bcfb6b224f9ca9569c96a40c --- dialin/common/msg_defs.py (.../msg_defs.py) (revision dd35c2e4427612ca17937e04f9f0043e294b827c) +++ dialin/common/msg_defs.py (.../msg_defs.py) (revision 5dd7c5ed8c083ac0bcfb6b224f9ca9569c96a40c) @@ -13,12 +13,12 @@ # @date (original) 07-Aug-2020 # ############################################################################ - +from enum import unique from ..protocols.CAN import DenaliMessage -from enum import Enum, unique +from ..utils.base import DialinEnum @unique -class MsgIds(Enum): +class MsgIds(DialinEnum): MSG_ID_UNUSED = 0 # Zero is an undefined (un-used) message ID) MSG_ID_OFF_BUTTON_PRESS = 1 # HD/UI off button interactions MSG_ID_ALARM_STATUS = 2 # HD broadcast of system alarm state information @@ -183,21 +183,16 @@ MSG_ID_HEAT_DISINFECT_RSRVR2_TO_RSRVR1_DURATION_MINS = 0xA01F # Heat disinfection reservoir 2 to reservoir 1 duration in minutes MSG_ID_HEAT_DISINFECT_NO_OF_CYCLES_TO_RUN = 0xA020 # Heat disinfection number of cycles to run MSG_ID_HEAT_DISINFECT_PUBLISH_INTERVAL_OVERRIDE = 0xA021 # Heat disinfection data publish interval override request - MSG_ID_PRIMING_STATUS = 0x0037 # The priming status + MSG_ID_PRIMING_STATUS = 0x43 # The priming status MSG_ID_DG_SOFTWARE_RESET_REQUEST = 0xA022 # DG reset request MSG_ID_HD_VALVES_SET_BLOOD_TRAP_VALVE = 0x8030 # HD valves set blood trap valve state MSG_ID_HD_DEBUG_EVENT = 0xFFF1 # HD debug event text to be logged in event log MSG_ID_DG_DEBUG_EVENT = 0xFFF2 # DG debug event text to be logged in event log END_OF_MSG_IDS = 0xFFF3 # End of system message IDs - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ - - @unique -class RequestRejectReasons(Enum): +class RequestRejectReasons(DialinEnum): REQUEST_REJECT_REASON_NONE = 0 REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE = 1 REQUEST_REJECT_REASON_TIMEOUT_WAITING_FOR_USER_CONFIRM = 2 @@ -223,11 +218,8 @@ REQUEST_REJECT_REASON_SALINE_BOLUS_NOT_IN_PROGRESS = 22 NUM_OF_REQUEST_REJECT_REASONS = 23 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ -class MsgFldPositions(): +class MsgFldPositions: # Generic response msg field byte positions (where 32-bit data fields are used) START_POS_FIELD_1 = DenaliMessage.PAYLOAD_START_INDEX END_POS_FIELD_1 = START_POS_FIELD_1 + 4 Index: dialin/hd/valves.py =================================================================== diff -u -r3f640809b83e8f5bc080ba3736d6c0719d1503df -r5dd7c5ed8c083ac0bcfb6b224f9ca9569c96a40c --- dialin/hd/valves.py (.../valves.py) (revision 3f640809b83e8f5bc080ba3736d6c0719d1503df) +++ dialin/hd/valves.py (.../valves.py) (revision 5dd7c5ed8c083ac0bcfb6b224f9ca9569c96a40c) @@ -7,29 +7,24 @@ from ..utils.base import _AbstractSubSystem, _publish from ..common import MsgIds from logging import Logger -import enum +from ..utils.base import DialinEnum -class ValvesEnum(enum.Enum): + +class ValvesEnum(DialinEnum): VDI = 0 VDO = 1 VBA = 2 VBV = 3 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ -class ValvesPositions(enum.Enum): +class ValvesPositions(DialinEnum): VALVE_POSITION_NOT_IN_POSITION = 0 VALVE_POSITION_A_INSERT_EJECT = 1 VALVE_POSITION_B_OPEN = 2 VALVE_POSITION_C_CLOSE = 3 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ -class ValvesStates(enum.Enum): +class ValvesStates(DialinEnum): VALVE_STATE_WAIT_FOR_POST = 0 VALVE_STATE_HOMING_NOT_STARTED = 1 VALVE_STATE_HOMING_FIND_ENERGIZED_EDGE = 2 @@ -38,17 +33,11 @@ VALVE_STATE_IN_TRANSITION = 5 VALVE_STATE_IN_BYPASS_MODE = 6 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ -class AirTrapState(enum.Enum): +class AirTrapState(DialinEnum): STATE_CLOSED = 0 STATE_OPEN = 1 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ class HDValves(_AbstractSubSystem): """ Index: dialin/utils/base.py =================================================================== diff -u -r8ea13ae6dd10732bfcc456798f4785c4d88c95d3 -r5dd7c5ed8c083ac0bcfb6b224f9ca9569c96a40c --- dialin/utils/base.py (.../base.py) (revision 8ea13ae6dd10732bfcc456798f4785c4d88c95d3) +++ dialin/utils/base.py (.../base.py) (revision 5dd7c5ed8c083ac0bcfb6b224f9ca9569c96a40c) @@ -18,6 +18,7 @@ import os import logging import subprocess +from enum import Enum, unique def setup_virtual_can_interface(): """ @@ -468,3 +469,8 @@ return _decorator +class DialinEnum(Enum): + + @classmethod + def has_value(cls, value): + return value in cls._value2member_map_