Index: leahi_dialin/common/dd_defs.py =================================================================== diff -u -r1a7cd1e4a5f691c12086e123bf9294166877a882 -r6dcbbc4df1069665696caea1cb96cbc163ae69b0 --- leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision 1a7cd1e4a5f691c12086e123bf9294166877a882) +++ leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision 6dcbbc4df1069665696caea1cb96cbc163ae69b0) @@ -19,46 +19,44 @@ @unique class DDOpModes(DialinEnum): - MODE_FAUL = 0 - MODE_SERV = 1 - MODE_INIT = 2 - MODE_STAN = 3 - MODE_PREG = 4 - MODE_GEND = 5 - MODE_POSG = 6 - MODE_HEAT = 7 - MODE_HCOL = 8 - MODE_ROPS = 9 - MODE_NLEG = 10 - NUM_OF_DD_MODES = 11 + MODE_FAUL = 0 # Fault Mode + MODE_SERV = 1 # Service Mode + MODE_INIT = 2 # Initialization Mode + MODE_STAN = 3 # Standby Mode + MODE_PREG = 4 # Pre-generate Dialysate Mode + MODE_GEND = 5 # Generate Dialysate Mode + MODE_POSG = 6 # Post-generate Dialysate Mode + MODE_HEAT = 7 # Heat Mode + MODE_HCOL = 8 # Cooling Mode + MODE_ROPS = 9 # RO Permeate Sample Mode + MODE_NLEG = 10 # Non-legal Mode - an illegitimate mode transition has occurred + NUM_OF_DD_MODES = 11 # Number of Modes for the DD @unique class DDPostStates(DialinEnum): - DD_POST_STATE_START = 0 - DD_POST_STATE_FW_COMPATIBILITY = 1 - DD_POST_STATE_FW_INTEGRITY = 2 - DD_POST_STATE_FPGA = 3 - DD_POST_STATE_NVDATAMGMT = 4 - DD_POST_STATE_TEMPERATURE_SENSORS = 5 - DD_POST_STATE_PRESSURES = 6 - DD_POST_STATE_DIALYSATE_PUMPS = 7 - DD_POST_STATE_CONCENTRATE_PUMPS = 8 - DD_POST_STATE_CONDUCTIVITY_SENSORS = 9 - DD_POST_STATE_WATCHDOG = 10 - DD_POST_STATE_SAFETY_SHUTDOWN = 11 - DD_POST_STATE_COMPLETED = 12 - DD_POST_STATE_FAILED = 13 - NUM_OF_DD_POST_STATES = 14 + DD_POST_STATE_START = 0 # Post Generate Dialysate Start State + DD_POST_STATE_FW_COMPATIBILITY = 1 # Firmware Compatibility State + DD_POST_STATE_FW_INTEGRITY = 2 # Firmware Integrity State + DD_POST_STATE_FPGA = 3 # FPGA State + DD_POST_STATE_NVDATAMGMT = 4 # Non-volatile Data Management State + DD_POST_STATE_TEMPERATURE_SENSORS = 5 # Temperature Sensors State + DD_POST_STATE_PRESSURES = 6 # Pressure Sensors State + DD_POST_STATE_DIALYSATE_PUMPS = 7 # Dialysate Pumps State + DD_POST_STATE_CONCENTRATE_PUMPS = 8 # Concentrate Pumps State + DD_POST_STATE_CONDUCTIVITY_SENSORS = 9 # Conductivity Sensors State + DD_POST_STATE_WATCHDOG = 10 # Watchdog State + DD_POST_STATE_SAFETY_SHUTDOWN = 11 # Safety Shutdown State + DD_POST_STATE_COMPLETED = 12 # Post Generate Dialysate Completed State + DD_POST_STATE_FAILED = 13 # Post Generate Dialysate Fail State + NUM_OF_DD_POST_STATES = 14 # Number of Post Generate Dialysate States - @unique class DDFaultStates(DialinEnum): DD_FAULT_STATE_START = 0 # DD fault start state DD_FAULT_STATE_RUN_NV_POSTS = 1 # DD fault run RTC and NV data management post DD_FAULT_STATE_COMPLETE = 2 # DD fault complete NUM_OF_DD_FAULT_STATES = 3 # Number of fault mode states - @unique class DDStandByModeStates(DialinEnum): DD_STANDBY_MODE_STATE_IDLE = 0 # Idle standby mode state @@ -98,21 +96,19 @@ DD_EVENT_TD_COMMUNICATION_LOSS = 7 # DD TD communication loss NUM_OF_DD_EVENT_IDS = 8 # Total number of DD events - @unique class DDEventDataType(DialinEnum): - EVENT_DATA_TYPE_NONE = 0 - EVENT_DATA_TYPE_U32 = 1 - EVENT_DATA_TYPE_S32 = 2 - EVENT_DATA_TYPE_F32 = 3 - EVENT_DATA_TYPE_BOOL = 4 - NUM_OF_EVENT_DATA_TYPES = 5 + EVENT_DATA_TYPE_NONE = 0 # No Event Data Type + EVENT_DATA_TYPE_U32 = 1 # Unsigned 32bit Event Data Type + EVENT_DATA_TYPE_S32 = 2 # Signed 32bit Event Data Type + EVENT_DATA_TYPE_F32 = 3 # Float 32bit Event Data Type + EVENT_DATA_TYPE_BOOL = 4 # Boolean Event Data Type + NUM_OF_EVENT_DATA_TYPES = 5 # Number of Event Data Types - @unique class DDServiceModesStates(DialinEnum): - DD_SERVICE_STATE_START = 0 # Start service mode state - NUM_OF_DD_SERVICE_STATES = 1 # Number of service mode states + DD_SERVICE_STATE_START = 0 # Start service mode state + NUM_OF_DD_SERVICE_STATES = 1 # Number of service mode states @unique class DDBalancingChamberStates(DialinEnum): @@ -129,4 +125,208 @@ class DDBalancingChamberSwitchStates(DialinEnum): BAL_CHAMBER_SW_STATE1 = 0 # Balancing chamber switching state 1 (V2,V5 and V3, V8 open, rest closed) BAL_CHAMBER_SW_STATE2 = 1 # Balancing chamber switching state 2 ( V1,V6 and V4, V7 open, rest closed) - NUM_OF_BAL_CHAMBER_SW = 2 # Number of balancing chamber states \ No newline at end of file + NUM_OF_BAL_CHAMBER_SW = 2 # Number of balancing chamber states + +@unique +class BloodLeakStates(DialinEnum): + """ + DD blood leak embedded mode state machine states + """ + BLOOD_LEAK_WAIT_FOR_POST_STATE = 0 + BLOOD_LEAK_CHECK_SET_POINT_STATE = 1 + BLOOD_LEAK_INIT_STATE = 2 + BLOOD_LEAK_CHECK_ZERO_AND_SELF_TEST_STATE = 3 + BLOOD_LEAK_VERIFY_INTENSITY_AFTER_ZEROING_STATE = 4 + BLOOD_LEAK_NORMAL_STATE = 5 + BLOOD_LEAK_RECOVER_BLOOD_DETECT_STATE = 6 + NUM_OF_BLOOD_LEAK_STATES = 7 + +@unique +class ConcentratePumpsEnum(DialinEnum): + D11_CP1_ACID = 0 # Acid Concentrate Pump + D10_CP2_BICARB = 1 # Bicarbonate Concentrate Pump + D76_UF = 2 # Ultrafiltration Concentrate Pump + NUM_OF_CONCENTRATE_PUMPS = 3 # Number of Concentrate Pumps + +@unique +class DDConcentratePumpsStates(DialinEnum): + CONCENTRATE_PUMP_OFF_STATE = 0 # Concentrate Pump Off State + CONCENTRATE_PUMP_RAMP_TO_TARGET_SPEED_STATE = 1 # Ramp to Target Speed Concentrate Pump State + CONCENTRATE_PUMP_CONTROL_TARGET_SPEED_STATE = 2 # Control Target Speed Concentrate Pump State + NUM_OF_CONCENTRATE_PUMP_STATES = 3 # Number of Concentrate Pump States + +@unique +class DDConcentratePumpAttributesEnum(DialinEnum): + CURRENT_STATE = 0 # Current State Concentrate Pump Attribute + CURRENT_SET_SPEED = 1 # Current Set Speed Concentrate Pump Attribute + MEASURED_SPEED = 2 # Measured Speed Concentrate Pump Attribute + TARGET_SPEED = 3 # Target Speed Concentrate Pump Attribute + PULSE_US = 4 # Hall Sensor Pulse Width (in micro seconds) Concentrate Pump Attribute + TARGET_REV_COUNT = 5 # Target Revolutions Concentrate Pump Attribute + MEASURED_REV_COUNT = 6 # Measured Revolutions Concentrate Pump Attribute + PARKED = 7 # Parked Concentrate Pump Attribute + PARK_FAULT = 8 # Park Fault Concentrate Pump Attribute + NUM_OF_D10_D11_CONCENTRATE_PUMP_ATTRIBUTES = 9 # Number of Acid (D11) and Bicarbonate (D10) Concentrate Pump Attributes + +@unique +class ConductivitySensorsEnum(DialinEnum): + D17_COND = 0 # Closed Loop Control of Dosing for D74 Conductivity Sensor + D27_COND = 1 # Closed Loop Control of Dosing for D29 Conductivity Sensor + D29_COND = 2 # Water, Bicarbonate, and Acid Collective Conductivity Sensor + D43_COND = 3 # Self Test Conductivity Sensor (not used for dialysate conductivity) + D74_COND = 4 # Water and Bicarbonate Collective Conductivity Sensor + NUM_OF_CONDUCTIVITY_SENSORS = 5 # Number of Conductivity Sensors + +@unique +class DialysatePumpsEnum(DialinEnum): + D12_PUMP = 0 # Fresh Dialysate Pump + D48_PUMP = 1 # Spent Dialysate Pump + NUM_OF_DIALYSATE_PUMPS = 2 # Number of Dialysate Pumps + +@unique +class DialysatePumpAttributesEnum(DialinEnum): + TARGET_RPM = 0 # Target RPM Dialysate Pump Attribute + MEASURED_SPEED = 1 # Measured Speed Dialysate Pump Attribute + CURRENT_SPEED = 2 # Current Speed Dialysate Pump Attribute + STATE = 3 # State to command Dialysate Pump Attribute + TARGET_PRESSURE = 4 # Target Pressure Dialysate Pump Attribute + MEASURED_PRESSURE = 5 # Measured Pressure Dialysate Pump Attribute + MEASURED_CURRENT = 6 # Measured Current Dialysate Pump Attribute + CONTROL = 7 # Pump Run/Stop Control Pump Attribute + DIRECTION_ERROR_COUNT = 8 # Direction Error Count Dialysate Pump Attribute + MEASURED_DIRECTION = 9 # Measured Direction Dialysate Pump Attribute + NUM_OF_DIALYSATE_PUMP_ATTRIBUTES = 10 # Number of Dialysate Pump Attributes + +@unique +class DDDialysatePumpsStates(DialinEnum): + DIALYSATE_PUMP_OFF_STATE = 0 # Dialysate Pump Off State + DIALYSATE_PUMP_RAMP_UP_STATE = 1 # Dialysate Pump Ramp Up State + DIALYSATE_PUMP_CONTROL_TO_TARGET_STATE = 2 # Dialysate Pump Control to Target State + NUM_OF_DIALYSATE_PUMP_STATES = 3 # Number of Dialysate Pump States + +@unique +class HeatersStartStop(DialinEnum): + STOP = 0 + START = 1 + +@unique +class HeatersState(DialinEnum): + HEATER_EXEC_STATE_OFF = 0 # Heater Execution Off State + HEATER_EXEC_STATE_RAMP_TO_TARGET = 1 # Heater Execution Ramp to Target State + HEATER_EXEC_STATE_CONTROL_TO_TARGET = 2 # Heater Execution Control to Target State + HEATER_EXEC_STATE_CONTROL_TO_DISINFECT_TARGET = 3 # Heater Execution Control to Disinfection State + NUM_OF_HEATERS_STATE = 4 + +@unique +class HeatersNames(DialinEnum): + D5_HEAT = 0 # Primary heater + D45_HEAT = 1 # Trimmer heater + NUM_OF_DD_HEATERS = 2 # Number of Heaters + +@unique +class HeatersAttributesEnum(DialinEnum): + HEAT_DUTY_CYCLE = 0 # Heat Duty Cycle Attribute for Heaters + HEAT_TARGET_TEMP = 1 # Target Temperature Attribute for Heaters + HEAT_STATE = 2 # State to command Attribute for Heaters + DUTY_CYCLE_COUNT = 3 # Duty Cycle Count Attribute for Heaters + PWM_PERIOD = 4 # Pulse Width Modulation Attribute for Heaters + ADJUSTED_TARGET_TEMP = 5 # Adjusted Target Temperature Attribute for Heaters + TARGET_TEMP_TD = 6 # Target Temperature Attribute for Heaters + NUM_OF_DD_HEATER_ATTRIBUTES = 7 # Number of Heater Attributes + +@unique +class DDLevelSensorEnum(DialinEnum): + D6_LEVEL = 0 # floater switch low, medium and high status + D63_LEVEL = 1 # bicarb level low or high status + D46_LEVEL = 2 # Spent dialysate air separation chamber level low or high status + NUM_OF_LEVELS = 3 # Number of Level Sensors + +@unique +class DDPistonPumpsEnum(DialinEnum): + ACID = 0 # Acid piston pump + BICARB = 1 # Bicarbonate piston pump + UF = 2 # Ultrafiltration piston pump + NUM_OF_PISTON_PUMPS = 3 # Number of piston pumps + +@unique +class DDPistonPumpAttributesEnum(DialinEnum): + CONTROL_STATE = 0 # Control State for the Piston Pumps + SW_COUNTER = 1 # Software counter attribute for the Piston Pumps + CYCLE_COUNTER = 2 # Cycle Counter for the Piston Pumps + NUM_OF_PISTON_PUMP_ATTRIBUTES = 3 # Number of Piston Pump Attributes + +@unique +class PressureNames(DialinEnum): + # Pressure Sensor IDs + M1_PRES = 0 # Water Inlet pressure before regulator (PRi) + M3_PRES = 1 # Water Inlet pressure after regulator (PRo) + D9_PRES = 2 # Hydraulics outlet pressure (PHo/Pn) + D66_PRES = 3 # Dry Bicarb pressure (PDB/PCb) + D51_PRES = 4 # Spent Dialysate pressure (PDs) + D18_PRES = 5 # Fresh Dialysate pressure (PDf) + D41_PRES = 6 # Transmembrane pressure (Ptm) + BARO_PRES = 7 # Barometric pressure sensor + NUM_OF_PRESSURE_SENSORS = 8 # Number of pressure sensors + +@unique +class PressureAttributesEnum (DialinEnum): + PRES = 0 # Pressure Attribute for Pressure Sensors + TEMP = 1 # Temperature Attribute for Pressure Sensors + NUM_OF_PRES_SENSOR_ATTRIBUTES = 2 # Number of Pressure Sensor Attributes + +COND_SENSOR_INDEX_OFFSET = 5 # Conductivity Sensor Index Offset for the Temperature Sensors + +@unique +class DDTemperaturesNames(DialinEnum): + D1_TEMP = 0 # Heat exchanger Inlet temperature sensor + X6_TEMP = 1 # Heat exchanger Outlet temperature sensor + D4_TEMP = 2 # Hydraulics primary heater temperature sensor + D50_TEMP = 3 # Trimmer heater temperature sensor + BRD_TEMP = 4 # Barometric temperature sensor + BARO_TEMP = 5 # DD board temperature sensor ( thermistor ) + D17_TEMP = 6 # D16 temperature value + D27_TEMP = 7 # D28 temperature value + D29_TEMP = 8 # D30 temperature value + D44_TEMP = 9 # D44 temperature value + D75_TEMP = 10 # D75 temperature value + D4_AVG_TEMP = 11 # D4 Filtered value + D50_AVG_TEMP = 12 # D50 Filtered value + D28_AVG_TEMP = 13 # D28 Filtered value + D30_AVG_TEMP = 14 # D30 Filtered value + +@unique +class DDValveStates(DialinEnum): + VALVE_STATE_CLOSED = 0 # Valve Closed State + VALVE_STATE_OPEN = 1 # Valve Open State + +@unique +class DDValveNames(DialinEnum): + D14_VALV = 0 # Valve Hydraulics Outlet (D14) + D52_VALV = 1 # Valve Thermal Disinfect (D52) + D8_VALV = 2 # Valve Hydraulics Bypass (D8) + D54_VALV = 3 # Valve Rinse Port (D54) + D53_VALV = 4 # Valve Drain (D53) + D34_VALV = 5 # Valve Dialyzer Bypass (D34) + D64_VALV = 6 # Valve Purge 1 (D64) + D31_VALV = 7 # Valve Pressure Test (D31) + D65_VALV = 8 # Valve DryBcarb Inlet (D65) + D35_VALV = 9 # Valve Dialyzer Inlet (D35) + D40_VALV = 10 # Valve Dialyzer Outlet (D40) + D47_VALV = 11 # Valve Dialysate Out Purge 2 (D47) + D3_VALV = 12 # Valve Hydraulics Inlet (D3) + M4_VALV = 13 # Valve Water Inlet (M4) + RSRVD_SPACE1 = 14 # This space has been reserved + RSRVD_SPACE2 = 15 # This space has been reserved + D23_VALV = 16 # Balancing chamber Valve 1 (D23) + D19_VALV = 17 # Balancing chamber Valve 2 (D19) + D25_VALV = 18 # Balancing chamber Valve 3 (D25) + D26_VALV = 19 # Balancing chamber Valve 7 (D26) + D24_VALV = 20 # Balancing chamber Valve 5 (D24) + D20_VALV = 21 # Balancing chamber Valve 6 (D20) + D21_VALV = 22 # Balancing chamber Valve 4 (D21) + D22_VALV = 23 # Balancing chamber Valve 8 (D22) + D69_VALV = 24 # Ultrafiltration Valve 1 Inlet (D69) + D71_VALV = 25 # Ultrafiltration Valve 2 Inlet (D71) + D70_VALV = 26 # Ultrafiltration Valve 1 Outlet (D70) + D72_VALV = 27 # Ultrafiltration Valve 2 Outlet (D72) + NUM_OF_DD_VALVES = 28 # Number of Valves for the DD