Index: leahi_dialin/common/td_defs.py =================================================================== diff -u -re0f60f0aa3f2c8b10d19f8fd03f96a6db7007995 -r79d11a95ac4fd3d0e379e0bf0e740d7ea7e9c88f --- leahi_dialin/common/td_defs.py (.../td_defs.py) (revision e0f60f0aa3f2c8b10d19f8fd03f96a6db7007995) +++ leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 79d11a95ac4fd3d0e379e0bf0e740d7ea7e9c88f) @@ -245,7 +245,7 @@ # ================================================== Enum Creators: Events ================================================== @unique -class DDHeaterCoolingStates(DialinEnum): +class TDEventList(DialinEnum): TD_EVENT_STARTUP = 0 # TD startup event TD_EVENT_OP_MODE_CHANGE = 1 # TD Op mode change event TD_EVENT_SUB_MODE_CHANGE = 2 # TD Op sub-mode change event @@ -272,7 +272,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 -DDHeaterCoolingStates._str_list = { +TDEventList._str_list = { # Official Name : Accepted strings 'TD_EVENT_STARTUP': ['startup'], 'TD_EVENT_OP_MODE_CHANGE': ['op mode change', 'operation mode change'], @@ -362,43 +362,65 @@ @unique class TDDialysisStates(DialinEnum): - NUM_OF_DD_HEAT_COOL_STATES = 0 # Number of Heater Cooling states + DIALYSIS_UF_STATE = 0 # Ultrafiltration state of the dialysis sub-mode state machine + 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 TDDialysisStates._str_list = { # Official Name : Accepted strings - 'DIALYSIS_UF_STATE': ['ultrafiltration state'], # Ultrafiltration state of the dialysis sub-mode state machine - 'DIALYSIS_UF_PAUSED_STATE': ['paused', 'ultrafiltration paused'], # Ultrafiltration Paused state of the dialysis sub-mode state machine - 'NUM_OF_DIALYSIS_STATES': [], # Number of dialysis sub-mode states + 'DIALYSIS_UF_STATE': ['ultrafiltration state'], + 'DIALYSIS_UF_PAUSED_STATE': ['paused', 'ultrafiltration paused'], + 'NUM_OF_DIALYSIS_STATES': [], } @unique class TDTreatmentParameters(DialinEnum): - NUM_OF_DD_HEAT_COOL_STATES = 0 # Number of Heater Cooling states + TREATMENT_PARAM_BLOOD_FLOW = 0 # Blood flow rate (in mL/min) + TREATMENT_PARAM_DIALYSATE_FLOW = 1 # Dialysate flow rate (in mL/min) + TREATMENT_PARAM_TREATMENT_DURATION = 2 # Treatment duration (in minutes) + TREATMENT_PARAM_SALINE_BOLUS_VOLUME = 3 # Saline bolus volume (in mL) + TREATMENT_PARAM_HEPARIN_STOP_TIME = 4 # Heparin stop time (in minutes) + TREATMENT_PARAM_HEPARIN_TYPE = 5 # Heparin type (enum) + TREATMENT_PARAM_ACID_CONCENTRATE = 6 # Acid concentrate type (enum) + TREATMENT_PARAM_BICARB_CONCENTRATE = 7 # Bicarbonate concentrate type (enum) + TREATMENT_PARAM_DIALYZER_TYPE = 8 # Dialysate type (enum) + TREATMENT_PARAM_BP_MEAS_INTERVAL = 9 # Blood pressure measurement interval (in minutes) + TREATMENT_PARAM_RINSEBACK_FLOW_RATE = 10 # Rinseback flow rate (in mL/min) + TREATMENT_PARAM_RINSEBACK_VOLUME = 11 # Rinseback volume (in mL) + TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW = 12 # Arterial pressure alarm limit window (in mmHg) + TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW = 13 # Venous pressure alarm limit window (in mmHg) + TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC = 14 # Venous pressure alarm limit asymmetric (in mmHg) + TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW = 15 # TMP alarm limit window (in mmHg) + TREATMENT_PARAM_DIALYSATE_TEMPERATURE = 16 # Dialysate temperature (in degC) + TREATMENT_PARAM_HEPARIN_DISPENSE_RATE = 17 # Heparin dispense rate (in mL/hr) + TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME = 18 # Heparin bolus volume (in mL) + TREATMENT_PARAM_UF_VOLUME = 19 # Ultrafiltration volume (in liters) - provided separately by UI + NUM_OF_TREATMENT_PARAMS = 20 # Total number of treatment parameters TDTreatmentParameters._str_list = { # Official Name : Accepted strings - 'TREATMENT_PARAM_BLOOD_FLOW': ['blood flow', 'blood flow rate'], # Blood flow rate (in mL/min) - 'TREATMENT_PARAM_DIALYSATE_FLOW': ['sialysate flow', 'dialysate flow rate'], # Dialysate flow rate (in mL/min) - 'TREATMENT_PARAM_TREATMENT_DURATION': ['treatment duration'], # Treatment duration (in minutes) - 'TREATMENT_PARAM_SALINE_BOLUS_VOLUME': ['saline bolus volume'], # Saline bolus volume (in mL) - 'TREATMENT_PARAM_HEPARIN_STOP_TIME': ['heparin stop time'], # Heparin stop time (in minutes) - 'TREATMENT_PARAM_HEPARIN_TYPE': ['heparin', 'heparin type'], # Heparin type (enum) - 'TREATMENT_PARAM_ACID_CONCENTRATE': ['acid', 'acid concentrate'], # Acid concentrate type (enum) - 'TREATMENT_PARAM_BICARB_CONCENTRATE': ['bicarb', 'bicarb concentrate'], # Bicarbonate concentrate type (enum) - 'TREATMENT_PARAM_DIALYZER_TYPE': ['dialyzer', 'dialyzer type'], # Dialysate type (enum) - 'TREATMENT_PARAM_BP_MEAS_INTERVAL': ['blood pressure measure interval', 'bp measure interval'], # Blood pressure measurement interval (in minutes) - 'TREATMENT_PARAM_RINSEBACK_FLOW_RATE': ['rinseback flow rate'], # Rinseback flow rate (in mL/min) - 'TREATMENT_PARAM_RINSEBACK_VOLUME': ['rinseback volume'], # Rinseback volume (in mL) - 'TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW': ['arterial pressure limit window'], # Arterial pressure alarm limit window (in mmHg) - 'TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW': ['venous pressure limit window'], # Venous pressure alarm limit window (in mmHg) - 'TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC': ['venous asymmetric pressure limit'], # Venous pressure alarm limit asymmetric (in mmHg) - 'TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW': ['tmp pres limit window'], # TMP alarm limit window (in mmHg) - 'TREATMENT_PARAM_DIALYSATE_TEMPERATURE': ['dialysate temperature'], # Dialysate temperature (in degC) - 'TREATMENT_PARAM_HEPARIN_DISPENSE_RATE': ['heparin dispense rate'], # Heparin dispense rate (in mL/hr) - 'TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME': ['heparin volume'], # Heparin bolus volume (in mL) - 'TREATMENT_PARAM_UF_VOLUME': ['uf volume', 'ultrafiltration volume'], # Ultrafiltration volume (in liters) - provided separately by UI - 'NUM_OF_TREATMENT_PARAMS': [], # Total number of treatment parameters + 'TREATMENT_PARAM_BLOOD_FLOW': ['blood flow', 'blood flow rate'], + 'TREATMENT_PARAM_DIALYSATE_FLOW': ['sialysate flow', 'dialysate flow rate'], + 'TREATMENT_PARAM_TREATMENT_DURATION': ['treatment duration'], + 'TREATMENT_PARAM_SALINE_BOLUS_VOLUME': ['saline bolus volume'], + 'TREATMENT_PARAM_HEPARIN_STOP_TIME': ['heparin stop time'], + 'TREATMENT_PARAM_HEPARIN_TYPE': ['heparin', 'heparin type'], + 'TREATMENT_PARAM_ACID_CONCENTRATE': ['acid', 'acid concentrate'], + 'TREATMENT_PARAM_BICARB_CONCENTRATE': ['bicarb', 'bicarb concentrate'], + 'TREATMENT_PARAM_DIALYZER_TYPE': ['dialyzer', 'dialyzer type'], + 'TREATMENT_PARAM_BP_MEAS_INTERVAL': ['blood pressure measure interval', 'bp measure interval'], + 'TREATMENT_PARAM_RINSEBACK_FLOW_RATE': ['rinseback flow rate'], + 'TREATMENT_PARAM_RINSEBACK_VOLUME': ['rinseback volume'], + 'TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW': ['arterial pressure limit window'], + 'TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW': ['venous pressure limit window'], + 'TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC': ['venous asymmetric pressure limit'], + 'TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW': ['tmp pres limit window'], + 'TREATMENT_PARAM_DIALYSATE_TEMPERATURE': ['dialysate temperature'], + 'TREATMENT_PARAM_HEPARIN_DISPENSE_RATE': ['heparin dispense rate'], + 'TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME': ['heparin volume'], + 'TREATMENT_PARAM_UF_VOLUME': ['uf volume', 'ultrafiltration volume'], + 'NUM_OF_TREATMENT_PARAMS': [], } @@ -412,275 +434,330 @@ TDAirPumpNames._str_list = { # Official Name : Accepted strings 'H12_AIR_PUMP': ['h12', 'air pump'], - 'NUM_OF_AIR_PUMPS': [], + 'NUM_OF_AIR_PUMPS': [], } @unique -class DDHeaterCoolingStates(DialinEnum): - NUM_OF_DD_HEAT_COOL_STATES = 0 # Number of Heater Cooling states +class TDAirTrapValveNames(DialinEnum): + H13_VALV = 0 # Air trap intake valve + H20_VALV = 1 # Air trap outlet valve + NUM_OF_AIR_TRAP_VALVES = 2 # Number of Air Trap Valves -DDHeaterCoolingStates._str_list = { +TDAirTrapValveNames._str_list = { # Official Name : Accepted strings - 'NUM_OF_DD_HEAT_COOL_STATES': [], + 'H13_VALV': ['h13', 'intake', 'in'], + 'H20_VALV': ['h20', 'outlet', 'out'], + 'NUM_OF_AIR_TRAP_VALVES': [], } -class Vmi: - # ================================================== Enum Creators: Operations ================================================== +@unique +class TDAirTrapLevelSensorNames(DialinEnum): + H17_LEVEL = 0 # Lower Level Sensor + H16_LEVEL = 1 # Upper Level Sensor + NUM_OF_AIR_TRAP_LEVEL_SENSORS = 2 # Number of TD Air Trap Level Sensors - # ================================================== Enum Creators: Operations Sub-Modes ================================================== +TDAirTrapLevelSensorNames._str_list = { + # Official Name : Accepted strings + 'H17_LEVEL': ['h17', 'lower sensor', 'lower'], + 'H16_LEVEL': ['h16', 'upper sensor', 'upper'], + 'NUM_OF_AIR_TRAP_LEVEL_SENSORS': [], +} - # ================================================== Enum Creators: Names ================================================== - def _create_td_air_pump_names(self): - members = { - # Official Name : Accepted strings - 'H12_AIR_PUMP': ['h12', 'air pump'], # TD Air Pump - 'NUM_OF_AIR_PUMPS': [], # Number of TD Air pumps - } - created_enum = unique(DialinEnum('TDAirPumpNames', self.create_members(members))) +@unique +class TDAirBubbleDetectorNames(DialinEnum): + H18_ADV = 0 # H18 Air Bubble Detector Venous + NUM_OF_AIR_BUBBLE_DETECTORS = 1 # Number of Air Bubble Detectors +TDAirBubbleDetectorNames._str_list = { + # Official Name : Accepted strings + 'H18_ADV': ['h18', 'bubble detector'], + 'NUM_OF_AIR_BUBBLE_DETECTORS': [], +} - def _create_td_air_trap_valve_names(self): - members = { - # Official Name : Accepted strings - 'H13_VALV': ['h13', 'intake', 'in'], # Air trap intake valve - 'H20_VALV': ['h20', 'outlet', 'out'], # Air trap outlet valve - 'NUM_OF_AIR_TRAP_VALVES': [], # Number of Air Trap Valves - } - created_enum = unique(DialinEnum('TDAirTrapValveNames', self.create_members(members))) +@unique +class TDEjectorNames(DialinEnum): + H5_MOTOR = 0 # TD Ejector Motor + NUM_OF_EJECTOR_MOTORS = 1 # Number of Ejector Motors +TDEjectorNames._str_list = { + # Official Name : Accepted strings + 'H5_MOTOR': ['h5', 'ejector'], + 'NUM_OF_EJECTOR_MOTORS': [], +} - def _create_td_air_trap_level_sensor_names(self): - members = { - # Official Name : Accepted strings - 'H17_LEVEL': ['h17', 'lower sensor', 'lower'], # Lower Level Sensor - 'H16_LEVEL': ['h16', 'upper sensor', 'upper'], # Upper Level Sensor - 'NUM_OF_AIR_TRAP_LEVEL_SENSORS': [], # Number of TD Air Trap Level Sensors - } - created_enum = unique(DialinEnum('TDAirTrapLevelSensorNames', self.create_members(members))) +@unique +class TDPressureSensorNames(DialinEnum): + H2_PRES = 0 # Arterial Pressure Sensor + H14_PRES = 1 # Venous Pressure Sensor + H23_PRES = 2 # Barometric Pressure Sensor + NUM_OF_PRESSURE_SENSORS = 3 # Number of Pressure Sensors +TDPressureSensorNames._str_list = { + # Official Name : Accepted strings + 'H2_PRES': ['h2'], + 'H14_PRES': ['h14'], + 'H23_PRES': ['h23'], + 'NUM_OF_PRESSURE_SENSORS': [], +} - def _create_td_air_bubble_detector_names(self): - members = { - # Official Name : Accepted strings - 'H18_ADV': ['h18', 'bubble detector'], # H18 Air Bubble Detector Venous - 'NUM_OF_AIR_BUBBLE_DETECTORS': [], # Number of Air Bubble Detectors - } - created_enum = unique(DialinEnum('TDAirBubbleDetectorNames', self.create_members(members))) +@unique +class TDTemperatureSensorNames(DialinEnum): + H23_TEMP = 0 # Barometric temperature Sensor + NUM_OF_TEMPERATURE_SENSORS = 1 # Number of temperature Sensors +TDTemperatureSensorNames._str_list = { + # Official Name : Accepted strings + 'H23_TEMP': ['h23'], + 'NUM_OF_TEMPERATURE_SENSORS': [], +} - def _create_td_ejector_names(self): - members = { - # Official Name : Accepted strings - 'H5_MOTOR': ['h5', 'ejector'], # TD Ejector Motor - 'NUM_OF_EJECTOR_MOTORS': [], # Number of Ejector Motors - } - created_enum = unique(DialinEnum('TDEjectorNames', self.create_members(members))) +@unique +class TDSwitchNames(DialinEnum): + H9_FRONT_DOOR = 0 # Front Door Switch for TD + NUM_OF_DOORS_AND_SWITCHES = 1 # Number of Doors and Switches +TDSwitchNames._str_list = { + # Official Name : Accepted strings + 'H9_FRONT_DOOR': ['h9', 'front door', 'door'], + 'NUM_OF_DOORS_AND_SWITCHES': [], +} - def _create_td_pressure_sensor_names(self): - members = { - # Official Name : Accepted strings - 'H2_PRES': ['h2'], # Arterial Pressure Sensor - 'H14_PRES': ['h14'], # Venous Pressure Sensor - 'H23_PRES': ['h23'], # Barometric Pressure Sensor - 'NUM_OF_PRESSURE_SENSORS': [], # Number of Pressure Sensors - } - created_enum = unique(DialinEnum('TDPressureSensorNames', self.create_members(members))) +@unique +class TDValveNames(DialinEnum): + 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 +TDValveNames._str_list = { + # Official Name : Accepted strings + 'H1_VALV': ['h1'], + 'H19_VALV': ['h19'], + 'NUM_OF_TD_VALVES': [], +} - def _create_td_temperature_sensor_names(self): - members = { - # Official Name : Accepted strings - 'H23_TEMP': ['h23'], # Barometric temperature Sensor - 'NUM_OF_TEMPERATURE_SENSORS': [], # Number of temperature Sensors - } - created_enum = unique(DialinEnum('TDTemperatureSensorNames', self.create_members(members))) +@unique +class TDMonitoredVoltages(DialinEnum): + MONITORED_LINE_1_2V = 0 # Processor voltage (1.2V) + MONITORED_LINE_3_3V = 1 # Logic voltage (3.3V) + MONITORED_LINE_5V_LOGIC = 2 # Logic voltage (5V) + MONITORED_LINE_5V_SENSORS = 3 # Sensors voltage (5V) + MONITORED_LINE_24V = 4 # Actuators voltage (24V) + MONITORED_LINE_24V_REGEN = 5 # Actuators regen voltage (24V) + MONITORED_LINE_FPGA_REF_V = 6 # FPGA ADC reference voltage (1V) + MONITORED_LINE_PBA_REF_V = 7 # PBA ADC reference voltage (3V) + MONITORED_LINE_FPGA_VCC_V = 8 # FPGA Vcc (3V) + MONITORED_LINE_FPGA_AUX_V = 9 # FPGA Vaux (3V) + MONITORED_LINE_FPGA_PVN_V = 10 # FPGA Vpvn (1V) + NUM_OF_MONITORED_VOLTAGE_LINES = 11 # Number of TD operation modes +TDMonitoredVoltages._str_list = { + # Official Name : Accepted strings + 'MONITORED_LINE_1_2V': ['1.2v'], + 'MONITORED_LINE_3_3V': ['3.3v'], + 'MONITORED_LINE_5V_LOGIC': ['5v logic'], + 'MONITORED_LINE_5V_SENSORS': ['5v sensor'], + 'MONITORED_LINE_24V': ['24v'], + 'MONITORED_LINE_24V_REGEN': ['24v regen'], + 'MONITORED_LINE_FPGA_REF_V': ['fpga ref'], + 'MONITORED_LINE_PBA_REF_V': ['pba ref'], + 'MONITORED_LINE_FPGA_VCC_V': ['fpga vcc'], + 'MONITORED_LINE_FPGA_AUX_V': ['fpga aux'], + 'MONITORED_LINE_FPGA_PVN_V': ['fpga pvn'], + 'NUM_OF_MONITORED_VOLTAGE_LINES': [], +} - def _create_td_switch_names(self): - members = { - # Official Name : Accepted strings - 'H9_FRONT_DOOR': ['h9', 'front door', 'door'], # Front Door Switch for TD - 'NUM_OF_DOORS_AND_SWITCHES': [], # Number of Doors and Switches - } - created_enum = unique(DialinEnum('TDSwitchNames', self.create_members(members))) +# ================================================== Enum Creators: Support ================================================== +@unique +class TDAirPumpAttributes(DialinEnum): + STATE = 0 # TD Air Pump State to command attribute + POWER = 1 # TD Air Pump Power attribute + NUM_OF_AIR_PUMP_ATTRIBUTES = 2 # Number of Air Pump attributes - def _create_td_valve_names(self): - members = { - # Official Name : Accepted strings - 'H1_VALV': ['h1'], # H1 Valve for TD - 'H19_VALV': ['h19'], # H19 Valve for TD - 'NUM_OF_TD_VALVES': [], # Number of Valves for the TD - } - created_enum = unique(DialinEnum('TDValveNames', self.create_members(members))) +TDAirPumpAttributes._str_list = { + # Official Name : Accepted strings + 'STATE': [], + 'POWER': [], + 'NUM_OF_AIR_PUMP_ATTRIBUTES': [], +} +@unique +class TDAirTrapLevelSensorAttributes(DialinEnum): + LEVEL = 0 # Level attribute for Air Trap Level Sensor + 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 - def _create_td_monitored_voltages(self): - members = { - # Official Name : Accepted strings - 'MONITORED_LINE_1_2V': ['1.2v'], # Processor voltage (1.2V) - 'MONITORED_LINE_3_3V': ['3.3v'], # Logic voltage (3.3V) - 'MONITORED_LINE_5V_LOGIC': ['5v logic'], # Logic voltage (5V) - 'MONITORED_LINE_5V_SENSORS': ['5v sensor'], # Sensors voltage (5V) - 'MONITORED_LINE_24V': ['24v'], # Actuators voltage (24V) - 'MONITORED_LINE_24V_REGEN': ['24v regen'], # Actuators regen voltage (24V) - 'MONITORED_LINE_FPGA_REF_V': ['fpga ref'], # FPGA ADC reference voltage (1V) - 'MONITORED_LINE_PBA_REF_V': ['pba ref'], # PBA ADC reference voltage (3V) - 'MONITORED_LINE_FPGA_VCC_V': ['fpga vcc'], # FPGA Vcc (3V) - 'MONITORED_LINE_FPGA_AUX_V': ['fpga aux'], # FPGA Vaux (3V) - 'MONITORED_LINE_FPGA_PVN_V': ['fpga pvn'], # FPGA Vpvn (1V) - 'NUM_OF_MONITORED_VOLTAGE_LINES': [], # Number of TD operation modes - } - created_enum = unique(DialinEnum('TDMonitoredVoltages', self.create_members(members))) +TDAirTrapLevelSensorAttributes._str_list = { + # Official Name : Accepted strings + 'LEVEL': [], + 'RAW': [], + 'NUM_OF_AIR_TRAP_LEVEL_SENSOR_ATTRIBUTES': [], +} +@unique +class TDAirTrapState(DialinEnum): + STATE_CLOSED = 0 # Closed state for Air Trap + STATE_OPEN = 1 # Open state for Air Trap + NUM_OF_AIR_TRAP_STATES = 2 # Number of Air Trap States +TDAirTrapState._str_list = { + # Official Name : Accepted strings + 'STATE_CLOSED': ['closed', 'close'], + 'STATE_OPEN': ['opened', 'open'], + 'NUM_OF_AIR_TRAP_STATES': [], +} - # ================================================== Enum Creators: Support ================================================== - def _create_td_air_pump_attributes(self): - members = { - # Official Name : Accepted strings - 'STATE': [], # TD Air Pump State to command attribute - 'POWER': [], # TD Air Pump Power attribute - 'NUM_OF_AIR_PUMP_ATTRIBUTES': [], # Number of Air Pump attributes - } - created_enum = unique(DialinEnum('TDAirPumpAttributes', self.create_members(members))) +@unique +class TDBloodFlowMotorAttributes(DialinEnum): + SET_BLOOD_FLOW_RATE = 0 # Set Blood Flow Rate for Blood Flow Motor + MEASURED_BLOOD_FLOW_RATE = 1 # Measured Blood Flow Rate for Blood Flow Motor + MEASURED_BLOOD_PUMP_ROTOR_SPEED = 2 # Measured Bloop Pump Rotor Speed for Blood Flow Motor + MEASURED_BLOOD_PUMP_SPEED = 3 # Measured Blood Pump Speed for Blood Flow Motor + MEASURED_BLOOD_PUMP_TORQUE = 4 # Measured Blood Pump torque + SET_RPM = 5 # Set Revolutions per minute for Blood Flow Motor + ROTOR_COUNT = 6 # Rotor Count for Blood Flow Motor + PRES_BLOOD_FLOW_RATE = 7 # Pressure Blood Flow Rate for Blood Flow Motor + ROTOR_HALL_STATE = 8 # Rotor Hall State for Blood Flow Motor + NUM_OF_BLOOD_FLOW_MOTOR_ATTRIBUTES = 9 # Number of Blood Flow Motor Attributes +TDBloodFlowMotorAttributes._str_list = { + # Official Name : Accepted strings + 'SET_BLOOD_FLOW_RATE': ['set flow rate'], + 'MEASURED_BLOOD_FLOW_RATE': ['measured flow rate'], + 'MEASURED_BLOOD_PUMP_ROTOR_SPEED': ['measured rpm', 'measured rotor speed'], + 'MEASURED_BLOOD_PUMP_SPEED': ['measured speed'], + 'MEASURED_BLOOD_PUMP_TORQUE': ['measured torque'], + 'SET_RPM': ['set rotor speed'], + 'ROTOR_COUNT': [], + 'PRES_BLOOD_FLOW_RATE': ['pressure blood flow rate'], + 'ROTOR_HALL_STATE': [], + 'NUM_OF_BLOOD_FLOW_MOTOR_ATTRIBUTES': [], +} - def _create_td_air_trap_level_sensor_attributes(self): - members = { - # Official Name : Accepted strings - 'LEVEL': [], # Level attribute for Air Trap Level Sensor - 'RAW': [], # Raw reading attribute for Air Trap Level Sensor - 'NUM_OF_AIR_TRAP_LEVEL_SENSOR_ATTRIBUTES': [], # Number of Air Trap Level Sensor attributes - } - created_enum = unique(DialinEnum('TDAirTrapLevelSensorAttributes', self.create_members(members))) +@unique +class TDAirBubbleDetectorAttributes(DialinEnum): + STATUS = 0 # Status of the Air Bubble Detector + STATE = 1 # State of the Air Bubble Detector + NUM_OF_AIR_BUBBLE_DETECTOR_ATTRIBUTES = 2 # Number of Air Bubble Detector Attributes +TDAirBubbleDetectorAttributes._str_list = { + # Official Name : Accepted strings + 'STATUS': [], + 'STATE': [], + 'NUM_OF_AIR_BUBBLE_DETECTOR_ATTRIBUTES': [], +} - def _create_td_air_trap_state(self): - members = { - # Official Name : Accepted strings - 'STATE_CLOSED': ['closed', 'close'], # Closed state for Air Trap - 'STATE_OPEN': ['opened', 'open'], # Open state for Air Trap - 'NUM_OF_AIR_TRAP_STATES': [], # Number of Air Trap States - } - created_enum = unique(DialinEnum('TDAirTrapState', self.create_members(members))) +@unique +class TDEjectorAttributes(DialinEnum): + STATE = 0 # Ejector State to command + SET_SPEED = 1 # Ejector Set Speed + OPT_SNSR_RETRACT = 2 # Ejector optical sensor retract + OPT_SNSR_ENGAGE = 3 # Ejector optical sensor engage + NUM_OF_EJECTOR_ATTRIBUTES = 4 # Number of Ejector Attributes +TDEjectorAttributes._str_list = { + # Official Name : Accepted strings + 'STATE': [], + 'SET_SPEED': ['speed'], + 'OPT_SNSR_RETRACT': ['retract', 'optical sensor retract'], + 'OPT_SNSR_ENGAGE': ['engage', 'optical sensor engage'], + 'NUM_OF_EJECTOR_ATTRIBUTES': [], +} - def _create_td_blood_flow_motor_attributes(self): - members = { - # Official Name : Accepted strings - 'SET_BLOOD_FLOW_RATE': ['set flow rate'], # Set Blood Flow Rate for Blood Flow Motor - 'MEASURED_BLOOD_FLOW_RATE': ['measured flow rate'], # Measured Blood Flow Rate for Blood Flow Motor - 'MEASURED_BLOOD_PUMP_ROTOR_SPEED': ['measured rpm', 'measured rotor speed'], # Measured Bloop Pump Rotor Speed for Blood Flow Motor - 'MEASURED_BLOOD_PUMP_SPEED': ['measured speed'], # Measured Blood Pump Speed for Blood Flow Motor - 'MEASURED_BLOOD_PUMP_TORQUE': ['measured torque'], # Measured Blood Pump torque - 'SET_RPM': ['set rotor speed'], # Set Revolutions per minute for Blood Flow Motor - 'ROTOR_COUNT': [], # Rotor Count for Blood Flow Motor - 'PRES_BLOOD_FLOW_RATE': ['pressure blood flow rate'], # Pressure Blood Flow Rate for Blood Flow Motor - 'ROTOR_HALL_STATE': [], # Rotor Hall State for Blood Flow Motor - 'NUM_OF_BLOOD_FLOW_MOTOR_ATTRIBUTES': [], # Number of Blood Flow Motor Attributes - } - created_enum = unique(DialinEnum('TDBloodFlowMotorAttributes', self.create_members(members))) +@unique +class TDPressureSensorAttributes(DialinEnum): + PRES = 0 # Pressure attribute of pressure sensor + LONG_FILTERED_PRESSURE = 1 # Long Filtered Pressure attribute of pressure sensor + PRES_LIMIT_MIN = 2 # Pressure Minimum Limit attribute of pressure sensor + PRES_LIMIT_MAX = 3 # Pressure Maximum Limit attribute of pressure sensor + NUM_OF_PRESSURE_ATTRIBUTES = 4 # Number of Pressure Sensor Attributes +TDPressureSensorAttributes._str_list = { + # Official Name : Accepted strings + 'PRES': ['pressure'], + 'LONG_FILTERED_PRESSURE': ['filtered pressure'], + 'PRES_LIMIT_MIN': ['min', 'min pressure limit', 'min limit'], + 'PRES_LIMIT_MAX': ['max', 'max pressure limit', 'max limit'], + 'NUM_OF_PRESSURE_ATTRIBUTES': [], +} - def _create_td_air_bubble_detector_attributes(self): - members = { - # Official Name : Accepted strings - 'STATUS': [], # Status of the Air Bubble Detector - 'STATE': [], # State of the Air Bubble Detector - 'NUM_OF_AIR_BUBBLE_DETECTOR_ATTRIBUTES': [], # Number of Air Bubble Detector Attributes - } - created_enum = unique(DialinEnum('TDAirBubbleDetectorAttributes', self.create_members(members))) +@unique +class TDSwitchStatus(DialinEnum): + CLOSED = 0 # Closed State of the TD Switch + OPEN = 1 # Open State of the TD Switch + NUM_OF_SWITCH_STATES = 2 # Number of Switch States +TDSwitchStatus._str_list = { + # Official Name : Accepted strings + 'CLOSED': [], + 'OPEN': [], + 'NUM_OF_SWITCH_STATES': [], +} - def _create_td_ejector_attributes(self): - members = { - # Official Name : Accepted strings - 'STATE': [], # Ejector State to command - 'SET_SPEED': ['speed'], # Ejector Set Speed - 'OPT_SNSR_RETRACT': ['retract', 'optical sensor retract'], # Ejector optical sensor retract - 'OPT_SNSR_ENGAGE': ['engage', 'optical sensor engage'], # Ejector optical sensor engage - 'NUM_OF_EJECTOR_ATTRIBUTES': [], # Number of Ejector Attributes - } - created_enum = unique(DialinEnum('TDEjectorAttributes', self.create_members(members))) +@unique +class TDValvePositions(DialinEnum): + VALVE_POSITION_NOT_IN_POSITION = 0 # Valve not in Position + VALVE_POSITION_A_INSERT_EJECT = 1 # Insert/Eject Valve Position + VALVE_POSITION_B_OPEN = 2 # Open Valve Position + VALVE_POSITION_C_CLOSE = 3 # Closed Valve Position + VALVE_POSITION_C_PARTIAL_CLOSE = 4 # Partial Close Valve Position +TDValvePositions._str_list = { + # Official Name : Accepted strings + 'VALVE_POSITION_NOT_IN_POSITION': ['not in position'], + 'VALVE_POSITION_A_INSERT_EJECT': ['a', 'insert/eject', 'insert', 'eject'], + 'VALVE_POSITION_B_OPEN': ['b', 'open'], + 'VALVE_POSITION_C_CLOSE': ['c', 'close', 'closed'], + 'VALVE_POSITION_C_PARTIAL_CLOSE': [], +} - def _create_td_pressure_sensor_attributes(self): - members = { - # Official Name : Accepted strings - 'PRES': ['pressure'], # Pressure attribute of pressure sensor - 'LONG_FILTERED_PRESSURE': ['filtered pressure'], # Long Filtered Pressure attribute of pressure sensor - 'PRES_LIMIT_MIN': ['min', 'min pressure limit', 'min limit'], # Pressure Minimum Limit attribute of pressure sensor - 'PRES_LIMIT_MAX': ['max', 'max pressure limit', 'max limit'], # Pressure Maximum Limit attribute of pressure sensor - 'NUM_OF_PRESSURE_ATTRIBUTES': [], # Number of Pressure Sensor Attributes - } - created_enum = unique(DialinEnum('TDPressureSensorAttributes', self.create_members(members))) +@unique +class TDValveStates(DialinEnum): + VALVE_STATE_WAIT_FOR_POST = 0 # Waiting for POST Valve State + VALVE_STATE_RESET_VALVE = 1 # Valve state reset valve. + VALVE_STATE_RESET_ENCODER = 2 # Valve state reset encoder. + VALVE_STATE_ENABLE_VALVE = 3 # Valve state enable valve. + VALVE_STATE_HOMING_NOT_STARTED = 4 # Valve state homing not started. + VALVE_STATE_HOMING_FIND_ENERGIZED_EDGE = 5 # Valve state homing find energized edge. + VALVE_STATE_HOMING_FIND_DEENERGIZED_EDGE = 6 # Valve state homing find. + VALVE_STATE_IDLE = 7 # Idle Valve State. + VALVE_STATE_IN_TRANSITION = 8 # Valve state in transition. +TDValveStates._str_list = { + # Official Name : Accepted strings + 'VALVE_STATE_WAIT_FOR_POST': ['wait', 'wait for post'], + 'VALVE_STATE_RESET_VALVE': ['reset valve'], + 'VALVE_STATE_RESET_ENCODER': ['reset encoder'], + 'VALVE_STATE_ENABLE_VALVE': ['enable', 'enable valve'], + 'VALVE_STATE_HOMING_NOT_STARTED': ['homing not started', 'not started'], + 'VALVE_STATE_HOMING_FIND_ENERGIZED_EDGE': ['homing find energized edge'], + 'VALVE_STATE_HOMING_FIND_DEENERGIZED_EDGE': ['homing find deenergized edge'], + 'VALVE_STATE_IDLE': ['idle'], + 'VALVE_STATE_IN_TRANSITION': [], +} - def _create_td_switch_status(self): - members = { - # Official Name : Accepted strings - 'CLOSED': [], # Closed State of the TD Switch - 'OPEN': [], # Open State of the TD Switch - 'NUM_OF_SWITCH_STATES': [], # Number of Switch States - } - created_enum = unique(DialinEnum('TDSwitchStatus', self.create_members(members))) - - def _create_td_valve_positions(self): - members = { - # Official Name : Accepted strings - 'VALVE_POSITION_NOT_IN_POSITION': ['not in position'], # Valve not in Position - 'VALVE_POSITION_A_INSERT_EJECT': ['a', 'insert/eject', 'insert', 'eject'], # Insert/Eject Valve Position - 'VALVE_POSITION_B_OPEN': ['b', 'open'], # Open Valve Position - 'VALVE_POSITION_C_CLOSE': ['c', 'close', 'closed'], # Closed Valve Position - 'VALVE_POSITION_C_PARTIAL_CLOSE': [], # Partial Close Valve Position - } - created_enum = unique(DialinEnum('TDValvePositions', self.create_members(members))) - - - - def _create_td_valve_states(self): - members = { - # Official Name : Accepted strings - 'VALVE_STATE_WAIT_FOR_POST': ['wait', 'wait for post'], # Waiting for POST Valve State - 'VALVE_STATE_RESET_VALVE': ['reset valve'], # Valve state reset valve. - 'VALVE_STATE_RESET_ENCODER': ['reset encoder'], # Valve state reset encoder. - 'VALVE_STATE_ENABLE_VALVE': ['enable', 'enable valve'], # Valve state enable valve. - 'VALVE_STATE_HOMING_NOT_STARTED': ['homing not started', 'not started'], # Valve state homing not started. - 'VALVE_STATE_HOMING_FIND_ENERGIZED_EDGE': ['homing find energized edge'], # Valve state homing find energized edge. - 'VALVE_STATE_HOMING_FIND_DEENERGIZED_EDGE': ['homing find deenergized edge'], # Valve state homing find. - 'VALVE_STATE_IDLE': ['idle'], # Idle Valve State. - 'VALVE_STATE_IN_TRANSITION': [], # Valve state in transition. - } - created_enum = unique(DialinEnum('TDValveStates', self.create_members(members))) - - - - # ================================================== Creates a singleton ================================================== - class TD_Defs(): TDOpModes = TDOpModes