Index: leahi_dialin/common/td_defs.py =================================================================== diff -u -r17b02f26012e7378daf831057c6f62c4ecdcfff0 -r134ce79ed68aed5a981c07fef3bca314a9fb9b8e --- leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 17b02f26012e7378daf831057c6f62c4ecdcfff0) +++ leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 134ce79ed68aed5a981c07fef3bca314a9fb9b8e) @@ -14,6 +14,7 @@ # ############################################################################ +from enum import unique from aenum import extend_enum from typing import TYPE_CHECKING @@ -144,7 +145,7 @@ 'MODE_NLEG': 8, # Not legal - an illegal mode transition occurred 'NUM_OF_MODES': 9, # Number of TD operation modes } - return DialinEnum('TDOpModes', members) + return unique(DialinEnum('TDOpModes', members)) def _create_td_fault_states(self): @@ -153,15 +154,15 @@ 'TD_FAULT_DEENERGIZED_STATE': 1, # TD fault mode deenergized state 'NUM_OF_TD_FAULT_STATES': 2, # Number of fault mode states } - return DialinEnum('TDFaultStates', members) + return unique(DialinEnum('TDFaultStates', members)) def _create_td_service_states(self): members = { 'TD_SERVICE_STATE_START': 0, # Start service mode state 'NUM_OF_TD_SERVICE_STATES': 1, # Number of service mode states } - return DialinEnum('TDServiceStates', members) + return unique(DialinEnum('TDServiceStates', members)) def _create_td_init_states(self): @@ -187,7 +188,7 @@ 'POST_STATE_FAILED': 18, # POST self-tests failed state 'NUM_OF_POST_STATES': 19, # Number of initialize & POST mode states } - return DialinEnum('TDInitStates', members) + return unique(DialinEnum('TDInitStates', members)) def _create_td_standby_states(self): @@ -200,7 +201,7 @@ 'STANDBY_CLEANING_MODE_IN_PROGRESS_STATE': 5, # Cleaning mode in progress state. 'NUM_OF_STANDBY_STATES': 6, # Number of standby states (sub-modes). } - return DialinEnum('TDStandbyStates', members) + return unique(DialinEnum('TDStandbyStates', members)) def _create_td_treatment_param_states(self): @@ -209,7 +210,7 @@ 'TD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_CONFIRM': 1, # Wait for UI to confirm treatment params mode state 'NUM_OF_TD_TREATMENT_PARAMS_MODE_STATES': 2, # Number of treatment params mode states } - return DialinEnum('TDTreatmentParamStates', members) + return unique(DialinEnum('TDTreatmentParamStates', members)) def _create_td_pre_treatment_modes_states(self): @@ -224,7 +225,7 @@ 'TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE': 7, # Patient connection state 'NUM_OF_TD_PRE_TREATMENT_STATES': 8, # Number of pre-treatment mode states } - return DialinEnum('TDPreTreatmentModesStates', members) + return unique(DialinEnum('TDPreTreatmentModesStates', members)) def _create_td_treatment_states(self): @@ -241,7 +242,7 @@ 'TREATMENT_DIALYSATE_PAUSED_STATE': 9, # No dialysate flow. Dialyzer bypassed. 'NUM_OF_TREATMENT_STATES': 10, # Number of treatment states (sub-modes) } - return DialinEnum('TDTreatmentStates', members) + return unique(DialinEnum('TDTreatmentStates', members)) def _create_td_post_treatment_states(self): @@ -252,14 +253,14 @@ 'TD_POST_TREATMENT_VERIFY_STATE': 3, # Verify cartridge removed, syringe removed, and reservoirs drained state 'NUM_OF_TD_POST_TREATMENT_STATES': 4, # Number of post-treatment mode states } - return DialinEnum('TDPostTreatmentStates', members) + return unique(DialinEnum('TDPostTreatmentStates', members)) def _create_td_not_legal_states(self): members = { 'NUM_OF_NOT_LEGAL_STATES': 0, # Number of Not Legal states } - return DialinEnum('TDNotLegalStates', members) + return unique(DialinEnum('TDNotLegalStates', members)) def _create_td_event_list(self): @@ -290,7 +291,7 @@ 'TD_EVENT_VALVE_HOMED_POS_SETTING': 23, # TD pinch valve homed encoder positions for A/B/C 'NUM_OF_EVENT_IDS': 24, # Total number of TD events } - return DialinEnum('TDEventList', members) + return unique(DialinEnum('TDEventList', members)) def _create_td_event_data_types(self): @@ -302,7 +303,7 @@ 'EVENT_DATA_TYPE_BOOL': 4, # Boolean Event Data Type 'NUM_OF_EVENT_DATA_TYPES': 5, # Number of Event Data Types } - return DialinEnum('TDEventDataTypes', members) + return unique(DialinEnum('TDEventDataTypes', members)) @@ -324,7 +325,7 @@ 'TD_PRIME_COMPLETE': 12, # Prime complete state 'NUM_OF_TD_PRIME_STATES': 13, # Number of prime sub-mode states } - return DialinEnum('TDPreTreatmentPrimeStates', members) + return unique(DialinEnum('TDPreTreatmentPrimeStates', members)) def _create_td_dialysis_states(self): @@ -333,7 +334,7 @@ 'DIALYSIS_UF_PAUSED_STATE': 1, # Ultrafiltration Paused state of the dialysis sub-mode state machine 'NUM_OF_DIALYSIS_STATES': 2, # Number of dialysis sub-mode states } - return DialinEnum('TDDialysisStates', members) + return unique(DialinEnum('TDDialysisStates', members)) def _create_td_treatment_parameters(self): @@ -360,7 +361,7 @@ 'TREATMENT_PARAM_UF_VOLUME': 19, # Ultrafiltration volume (in liters) - provided separately by UI 'NUM_OF_TREATMENT_PARAMS': 20, # Total number of treatment parameters } - return DialinEnum('TDTreatmentParameters', members) + return unique(DialinEnum('TDTreatmentParameters', members)) @@ -370,7 +371,7 @@ 'H12_AIR_PUMP': 0, # TD Air Pump 'NUM_OF_AIR_PUMPS': 1, # Number of TD Air pumps } - return DialinEnum('TDAirPumpNames', members) + return unique(DialinEnum('TDAirPumpNames', members)) def _create_td_air_trap_valve_names(self): @@ -379,7 +380,7 @@ 'H20_VALV': 1, # Air trap outlet valve 'NUM_OF_AIR_TRAP_VALVES': 2, # Number of Air Trap Valves } - return DialinEnum('TDAirTrapValveNames', members) + return unique(DialinEnum('TDAirTrapValveNames', members)) def _create_td_air_trap_level_sensor_names(self): @@ -388,23 +389,23 @@ 'H16_LEVEL': 1, # Upper Level Sensor 'NUM_OF_AIR_TRAP_LEVEL_SENSORS': 2, # Number of TD Air Trap Level Sensors } - return DialinEnum('TDAirTrapLevelSensorNames', members) + return unique(DialinEnum('TDAirTrapLevelSensorNames', members)) def _create_td_air_bubble_detector_names(self): members = { 'H18_ADV': 0, # H18 Air Bubble Detector Venous 'NUM_OF_AIR_BUBBLE_DETECTORS': 1, # Number of Air Bubble Detectors } - return DialinEnum('TDAirBubbleDetectorNames', members) + return unique(DialinEnum('TDAirBubbleDetectorNames', members)) def _create_td_ejector_names(self): members = { 'H5_MOTOR': 0, # TD Ejector Motor 'NUM_OF_EJECTOR_MOTORS': 1, # Number of Ejector Motors } - return DialinEnum('TDEjectorNames', members) + return unique(DialinEnum('TDEjectorNames', members)) def _create_td_pressure_sensor_names(self): @@ -414,31 +415,31 @@ 'H23_PRES': 2, # Barometric Pressure Sensor 'NUM_OF_PRESSURE_SENSORS': 3, # Number of Pressure Sensors } - return DialinEnum('TDPressureSensorNames', members) + return unique(DialinEnum('TDPressureSensorNames', members)) def _create_td_temperature_sensor_names(self): members = { 'H23_TEMP': 0, # Barometric temperature Sensor 'NUM_OF_TEMPERATURE_SENSORS': 1, # Number of temperature Sensors } - return DialinEnum('TDTemperatureSensorNames', members) + return unique(DialinEnum('TDTemperatureSensorNames', members)) def _create_td_switch_names(self): members = { 'H9_FRONT_DOOR': 0, # Front Door Switch for TD 'NUM_OF_DOORS_AND_SWITCHES': 1, # Number of Doors and Switches } - return DialinEnum('TDSwitchNames', members) + return unique(DialinEnum('TDSwitchNames', members)) def _create_td_valve_names(self): members = { 'H1_VALV': 0, # H1 Valve for TD 'H19_VALV': 1, # H19 Valve for TD 'NUM_OF_TD_VALVES': 2, # Number of Valves for the TD } - return DialinEnum('TDValveNames', members) + return unique(DialinEnum('TDValveNames', members)) def _create_td_monitored_voltages(self): @@ -456,7 +457,7 @@ 'MONITORED_LINE_FPGA_PVN_V': 10, # FPGA Vpvn (1V) 'NUM_OF_MONITORED_VOLTAGE_LINES': 11, # Number of TD operation modes } - return DialinEnum('TDMonitoredVoltages', members) + return unique(DialinEnum('TDMonitoredVoltages', members)) @@ -467,7 +468,7 @@ 'POWER': 1, # TD Air Pump Power attribute 'NUM_OF_AIR_PUMP_ATTRIBUTES': 2, # Number of Air Pump attributes } - return DialinEnum('TDAirPumpAttributes', members) + return unique(DialinEnum('TDAirPumpAttributes', members)) def _create_td_air_trap_level_sensor_attributes(self): @@ -476,15 +477,15 @@ 'RAW': 1, # Raw reading attribute for Air Trap Level Sensor 'NUM_OF_AIR_TRAP_LEVEL_SENSOR_ATTRIBUTES': 2, # Number of Air Trap Level Sensor attributes } - return DialinEnum('TDAirTrapLevelSensorAttributes', members) + return unique(DialinEnum('TDAirTrapLevelSensorAttributes', members)) def _create_td_air_trap_state(self): members = { 'STATE_CLOSED': 0, # Closed state for Air Trap 'STATE_OPEN': 1, # Open state for Air Trap } - return DialinEnum('TDAirTrapState', members) + return unique(DialinEnum('TDAirTrapState', members)) def _create_td_blood_flow_motor_attributes(self): @@ -500,7 +501,7 @@ 'ROTOR_HALL_STATE': 8, # Rotor Hall State for Blood Flow Motor 'NUM_OF_BLOOD_FLOW_MOTOR_ATTRIBUTES': 9, # Number of Blood Flow Motor Attributes } - return DialinEnum('TDBloodFlowMotorAttributes', members) + return unique(DialinEnum('TDBloodFlowMotorAttributes', members)) def _create_td_air_bubble_detector_attributes(self): @@ -509,7 +510,7 @@ 'STATE': 1, # State of the Air Bubble Detector 'NUM_OF_AIR_BUBBLE_DETECTOR_ATTRIBUTES': 2, # Number of Air Bubble Detector Attributes } - return DialinEnum('TDAirBubbleDetectorAttributes', members) + return unique(DialinEnum('TDAirBubbleDetectorAttributes', members)) def _create_td_ejector_attributes(self): @@ -520,7 +521,7 @@ 'OPT_SNSR_ENGAGE': 3, # Ejector optical sensor engage 'NUM_OF_EJECTOR_ATTRIBUTES': 4, # Number of Ejector Attributes } - return DialinEnum('TDEjectorAttributes', members) + return unique(DialinEnum('TDEjectorAttributes', members)) def _create_td_pressure_sensor_attributes(self): @@ -531,15 +532,15 @@ 'PRES_LIMIT_MAX': 3, # Pressure Maximum Limit attribute of pressure sensor 'NUM_OF_PRESSURE_ATTRIBUTES': 4, # Number of Pressure Sensor Attributes } - return DialinEnum('TDPressureSensorAttributes', members) + return unique(DialinEnum('TDPressureSensorAttributes', members)) def _create_td_switch_status(self): members = { 'CLOSED': 0, # Closed State of the TD Switch 'OPEN': 1, # Open State of the TD Switch } - return DialinEnum('TDSwitchStatus', members) + return unique(DialinEnum('TDSwitchStatus', members)) def _create_td_valve_positions(self): @@ -550,7 +551,7 @@ 'VALVE_POSITION_C_CLOSE': 3, # Closed Valve Position 'VALVE_POSITION_C_PARTIAL_CLOSE': 4, # Partial Close Valve Position } - return DialinEnum('TDValvePositions', members) + return unique(DialinEnum('TDValvePositions', members)) def _create_td_valve_states(self): @@ -565,7 +566,7 @@ 'VALVE_STATE_IDLE': 7, # Idle Valve State. 'VALVE_STATE_IN_TRANSITION': 8, # Valve state in transition. } - return DialinEnum('TDValveStates', members) + return unique(DialinEnum('TDValveStates', members)) # ================================================== Creates a singleton ==================================================