Index: leahi_dialin/common/alarm_defs.py =================================================================== diff -u -rd0d72ba74208cb43073ec38c7bbfebb2d32dcc66 -r3284125031072078a4b61a83d36bff419a770918 --- leahi_dialin/common/alarm_defs.py (.../alarm_defs.py) (revision d0d72ba74208cb43073ec38c7bbfebb2d32dcc66) +++ leahi_dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 3284125031072078a4b61a83d36bff419a770918) @@ -111,8 +111,12 @@ ALARM_ID_DD_BC_STATE1_FILL_END_PRESSURE_OUT_OF_RANGE = 88 ALARM_ID_DD_BC_STATE2_FILL_START_PRESSURE_OUT_OF_RANGE = 89 ALARM_ID_DD_BC_STATE2_FILL_END_PRESSURE_OUT_OF_RANGE = 90 - ALARM_ID_DD_GEND_HYD_CHAMBER_PRESS_OUT_OF_RANGE = 91 - ALARM_ID_DD_GEND_FRESH_DIAL_PRESS_OUT_OF_RANGE = 92 - ALARM_ID_DD_GEND_SPENT_DIAL_PRESS_OUT_OF_RANGE = 93 + ALARM_ID_AVAILABLE_91 = 91 + ALARM_ID_AVAILABLE_92 = 92 + ALARM_ID_AVAILABLE_93 = 93 + ALARM_ID_DD_BC_STATE1_FILL_PRESSURE_DROP_OUT_OF_RANGE = 94 + ALARM_ID_DD_BC_STATE2_FILL_PRESSURE_DROP_OUT_OF_RANGE = 95 + ALARM_ID_TD_TREATMENT_STOPPED_BY_USER = 96 + ALARM_ID_DD_D74_COND_SENSOR_FPGA_FAULT = 97 Index: leahi_dialin/common/dd_defs.py =================================================================== diff -u -rd1377c677d8a9fc576f941f413ae3b6af6f50776 -r3284125031072078a4b61a83d36bff419a770918 --- leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision d1377c677d8a9fc576f941f413ae3b6af6f50776) +++ leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision 3284125031072078a4b61a83d36bff419a770918) @@ -63,19 +63,26 @@ DD_STANDBY_MODE_STATE_PAUSE = 1 # Pause state NUM_OF_DD_STANDBY_MODE_STATES = 2 # Number of standby mode states +@unique +class DDPreGenDialysateStates(DialinEnum): + DD_PRE_GEN_DIALYSATE_HYD_CHAMBER_FILL_CHECK = 0, # DD Pre-Gen Dialysate hyrochamber fill check + DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND = 1 # DD Pre-Gen Dialysate Wait for Gen Dialysate state transition + NUM_OF_DD_PRE_GEN_DIALYSATE_STATES = 2 # Number of Pre-Gen Dialysate mode states @unique class DDGenDialysateModeStates(DialinEnum): DD_GEND_STATE_START = 0 # Gen dialysate start state - DD_GEND_HYD_CHAMBER_WATER_INLET_CHECK_STATE = 1 # Gen dialysate Hydraulic chamber water inlet check state - DD_GEND_HYD_CHAMBER_PRESSURE_CHECK_STATE = 2 # Gen dialysate Hydraulic chamber pressure check state - DD_GEND_FRESH_DIALYSATE_PRESSURE_CHECK_STATE = 3 # Gen dialysate fresh dialysate pressure check state - DD_GEND_SPENT_DIALYSATE_PRESSURE_CHECK_STATE = 4 # Gen dialysate spent dialysate pressure check state - DD_GEND_PRODUCE_DIALYSATE_STATE = 5 # Gen dialysate - produce dialysate state - DD_GEND_DIALYSATE_DELIVERY_STATE = 6 # Gen dialysate - deliver dialysate state - DD_GEND_DIALYSATE_DELIVERY_PAUSE = 7 # Gen dialysate - dialysate delivery pause state - NUM_OF_DD_GEND_MODE_STATES = 8 # Number of gen dialysate states + DD_GEND_DIALYSATE_BYPASS_STATE = 1 # Gen dialysate - Bypass dialysate state + DD_GEND_DIALYSATE_DELIVERY_STATE = 2 # Gen dialysate - deliver dialysate state + DD_GEND_DIALYSATE_DELIVERY_PAUSE = 3 # Gen dialysate - dialysate delivery pause state + DD_GEND_ISOLATED_UF_STATE = 4 # Gen dialysate - Isolated ultrafiltration state + NUM_OF_DD_GEND_MODE_STATES = 5 # Number of gen dialysate states +@unique +class DDPostGenDialysateState(DialinEnum): + DD_POST_GEN_DIALYSATE_STATE_START = 0 # DD Post-Gen Dialysate state start + DD_POST_GEN_DIALYSATE_STATE_COMPLETE = 1 # DD Post-Gen Dialysate complete state + NUM_OF_DD_POST_GEN_DIALYSATE_STATES = 2 # Number of Post-Gen Dialysate mode states @unique class DDEventList(DialinEnum): Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r71216b08590dd4b556c10b3384dddc26c8d29a99 -r3284125031072078a4b61a83d36bff419a770918 --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 71216b08590dd4b556c10b3384dddc26c8d29a99) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 3284125031072078a4b61a83d36bff419a770918) @@ -56,7 +56,7 @@ MSG_ID_TD_SWITCHES_DATA = 0x21 MSG_ID_POWER_OFF_WARNING = 0x22 MSG_ID_OFF_BUTTON_PRESS_REQUEST = 0x23 - MSG_ID_PRESSURE_DATA = 0x24 + MSG_ID_TD_PRESSURE_DATA = 0x24 MSG_ID_DD_CONCENTRATE_PUMP_DATA = 0x25 MSG_ID_DD_TEMPERATURE_DATA = 0x26 MSG_ID_DIALYSATE_PUMPS_DATA = 0x27 @@ -79,7 +79,24 @@ MSG_ID_DD_RO_START_STOP_CMD_REQUEST = 0x38 MSG_ID_RO_TEMPERATURE_DATA = 0x39 MSG_ID_RO_HEATER_DATA = 0x3A - MSG_ID_DD_PISTON_PUMP_CONTROL_DATA = 0x3B + MSG_ID_TD_TREATMENT_TIME_DATA = 0x3B + MSG_ID_TD_TREATMENT_STATE_DATA = 0x3C + MSG_ID_TD_SALINE_BOLUS_DATA = 0x3D + MSG_ID_TD_ULTRAFILTRATION_DATA = 0x3E + MSG_ID_UI_TREATMENT_PARAMS_TO_VALIDATE = 0x3F + MSG_ID_TD_RESP_TREATMENT_PARAMS_TO_VALIDATE = 0x40 + MSG_ID_UI_ULTRAFILTRATION_VOLUME_TO_VALIDATE = 0x41 + MSG_ID_TD_RESP_ULTRAFILTRATION_VOLUME_TO_VALIDATE = 0x42 + MSG_ID_TD_TREATMENT_PARAM_RANGES = 0x43 + MSG_ID_UI_TREATMENT_PARAMS_CONFIRMED = 0x44 + MSG_ID_UI_INITIATE_TREATMENT_WORKFLOW = 0x45 + MSG_ID_TD_RESP_INITIATE_TREATMENT_WORKFLOW = 0x46 + MSG_ID_UI_UF_PAUSE_RESUME_REQUEST = 0x47 + MSG_ID_TD_UF_PAUSE_RESUME_RESPONSE = 0x48 + MSG_ID_RO_GEN_PERMEATE_MODE_DATA = 0x49 + MSG_ID_DD_PRE_GEN_DIALYSATE_STATE_DATA = 0x4A + MSG_ID_DD_POST_GEN_DIALYSATE_STATE_DATA = 0x4B + MSG_ID_DD_PRE_GEN_DIALYSATE_REQUEST_DATA = 0x4C MSG_ID_TESTER_LOGIN_REQUEST = 0x8000 MSG_ID_TD_SOFTWARE_RESET_REQUEST = 0x8001 @@ -126,6 +143,10 @@ MSG_ID_TD_BLOOD_PUMP_MEASURED_ROTOR_SPEED_OVERRIDE_REQUEST = 0x802A MSG_ID_TD_BLOOD_PUMP_ROTOR_COUNT_OVERRIDE_REQUEST = 0x802B MSG_ID_TD_TMP_PRESSURE_OVERRIDE_REQUEST = 0x802C + MSG_ID_TD_REQ_CURRENT_TREATMENT_PARAMETERS = 0x802D + MSG_ID_TD_RSP_CURRENT_TREATMENT_PARAMETERS = 0x802E + MSG_ID_TD_OP_MODE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x802F + MSG_ID_TD_OP_MODE_OVERRIDE_REQUEST = 0x8030 MSG_ID_DD_TESTER_LOGIN_REQUEST = 0xA000 MSG_ID_DD_SOFTWARE_RESET_REQUEST = 0xA001 @@ -188,6 +209,11 @@ MSG_ID_DD_BICARB_DOSING_VOLUME_OVERRIDE_REQUEST = 0xA03A MSG_ID_DD_GEND_EXEC_STATE_OVERRIDE_REQUEST = 0xA03B MSG_ID_DD_HEATERS_PWM_PERIOD_OVERRIDE_REQUEST = 0xA03C + MSG_ID_DD_PRE_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA03D + MSG_ID_DD_POST_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA03E + MSG_ID_DD_START_PRE_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST = 0xA03F + MSG_ID_DD_STOP_PRE_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST = 0xA040 + MSG_ID_DD_STOP_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST = 0xA041 MSG_ID_DD_PISTON_PUMP_DATA_PUBLISH_OVERRIDE_REQUEST = 0xAF00 MSG_ID_DD_PISTON_PUMP_START_STOP_OVERRIDE_REQUEST = 0xAF01 Index: leahi_dialin/common/td_defs.py =================================================================== diff -u -rd1377c677d8a9fc576f941f413ae3b6af6f50776 -r3284125031072078a4b61a83d36bff419a770918 --- leahi_dialin/common/td_defs.py (.../td_defs.py) (revision d1377c677d8a9fc576f941f413ae3b6af6f50776) +++ leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 3284125031072078a4b61a83d36bff419a770918) @@ -45,32 +45,33 @@ class TDInitStates(DialinEnum): POST_STATE_START = 0 # Start initialize & POST mode state POST_STATE_FW_INTEGRITY = 1 # Run firmware integrity test state - POST_STATE_RTC = 2 # Run RTC test state - POST_STATE_NVDATAMGMT = 3 # Run NV Data Mgmt. test state - POST_STATE_WATCHDOG = 4 # Run watchdog test state - POST_STATE_SAFETY_SHUTDOWN = 5 # Run safety shutdown test state - POST_STATE_BLOOD_FLOW = 6 # Run blood flow test state - POST_STATE_DIALYSATE_INLET_FLOW = 7 # Run dialysate inlet flow test state - POST_STATE_DIALYSATE_OUTLET_FLOW = 8 # Run dialysate outlet flow test state - POST_STATE_BLOOD_LEAK = 9 # Run blood leak sensor test state - POST_STATE_VALVES = 10 # Run valves test state - POST_STATE_SYRINGE_PUMP = 11 # Run syringe pump test state - POST_STATE_PRES_OCCL = 12 # Run pressure occlusion state - POST_STATE_ALARM_AUDIO = 13 # Run alarm audio test state - POST_STATE_ALARM_LAMP = 14 # Run alarm lamp test state - POST_STATE_ACCELEROMETER = 15 # Run Accelerometer test state - POST_STATE_TEMPERATURES = 16 # Run temperatures POST state - POST_STATE_FANS = 17 # Run fans POST state - POST_STATE_STUCK_BUTTON = 18 # Run stuck button test state - POST_STATE_UI_POST = 19 # Check whether UI passed its POST tests - POST_STATE_FW_COMPATIBILITY = 20 # Run firmware compatibility test state - POST_STATE_FPGA = 21 # Run FPGA test state - POST_STATE_COMPLETED = 22 # POST self-tests completed state - POST_STATE_FAILED = 23 # POST self-tests failed state - NUM_OF_POST_STATES = 24 # Number of initialize & POST mode states + POST_STATE_NVDATAMGMT = 2 # Run NV Data Mgmt. test state + POST_STATE_WATCHDOG = 3 # Run watchdog test state + POST_STATE_SAFETY_SHUTDOWN = 4 # Run safety shutdown test state + POST_STATE_BLOOD_FLOW = 5 # Run blood flow test state + POST_STATE_VALVES = 6 # Run valves test state + POST_STATE_SYRINGE_PUMP = 7 # Run syringe pump test state + POST_STATE_PRES_OCCL = 8 # Run pressure occlusion state + POST_STATE_ALARM_AUDIO = 9 # Run alarm audio test state + POST_STATE_ALARM_LAMP = 10 # Run alarm lamp test state + POST_STATE_TEMPERATURES = 11 # Run temperatures POST state + POST_STATE_FANS = 12 # Run fans POST state + POST_STATE_STUCK_BUTTON = 13 # Run stuck button test state + POST_STATE_UI_POST = 14 # Check whether UI passed its POST tests + POST_STATE_FW_COMPATIBILITY = 15 # Run firmware compatibility test state + POST_STATE_FPGA = 16 # Run FPGA test state + POST_STATE_COMPLETED = 17 # POST self-tests completed state + POST_STATE_FAILED = 18 # POST self-tests failed state + NUM_OF_POST_STATES = 19 # Number of initialize & POST mode states @unique -class PreTreatmentSubModes(DialinEnum): +class TDTreatmentParamStates(DialinEnum): + TD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_SEND = 0 # Wait for UI to send treatment params mode state + 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 + +@unique +class TDPreTreatmentSubModes(DialinEnum): TD_PRE_TREATMENT_WATER_SAMPLE_STATE = 0 # Water sample state TD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE = 1 # Consumable self-tests state TD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE = 2 # No cartridge self-tests state @@ -83,15 +84,15 @@ @unique -class PostTreatmentStates(DialinEnum): +class TDPostTreatmentStates(DialinEnum): TD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE = 0 # Drain reservoirs state TD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE = 1 # Patient disconnection state TD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE = 2 # Disposable removal state 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 @unique -class PreTreatmentPrimeStates(DialinEnum): +class TDPreTreatmentPrimeStates(DialinEnum): TD_PRIME_WAIT_FOR_USER_START_STATE = 0 # Wait for user to start prime state TD_PRIME_SALINE_SETUP_STATE = 1 # Saline setup state TD_PRIME_SALINE_PURGE_AIR_STATE = 2 # Saline purge air state @@ -115,6 +116,26 @@ NUM_OF_TD_FAULT_STATES = 3 # Number of fault mode states @unique +class TDTreatmentStates(DialinEnum): + TREATMENT_START_STATE = 0 # Start treatment - initialize treatment and go to blood prime state + TREATMENT_BLOOD_PRIME_STATE = 1 # Prime blood-side of dialyzer with gradual ramp for 1 min. while dialyzer is bypassed. No dialysis or UF taking place. No treatment time. + TREATMENT_DIALYSIS_STATE = 2 # Perform dialysis. Deliver UF as prescribed. + TREATMENT_PAUSED_STATE = 3 # Treatment paused. All pumps off. Dializer bypassed + TREATMENT_RINSEBACK_STATE = 4 # Perform rinseback with saline. Dialyzer bypassed. Dialysate recirculating + TREATMENT_RECIRC_STATE = 5 # Recirculate saline and dialysate while patient disconnected. Blood lines open and shunted. Dialyzer is bypassed + TREATMENT_END_STATE = 6 # Dialysis has ended. Blood pump slowed. Dialyzer is bypassed. Dialysate is recirculated. User can rinseback + TREATMENT_ISO_UF_STATE = 7 # Isolated ultrafiltration. No dialysate flow. Ultrafiltration only. + TREATMENT_SALINE_BOLUS_STATE = 8 # Deliver a saline bolus. Blood pump draws from saline bag. Dialyzer bypassed. + TREATMENT_DIALYSATE_PAUSED_STATE = 9 # No dialysate flow. Dialyzer bypassed. + NUM_OF_TREATMENT_STATES = 10 # Number of treatment states (sub-modes) + +@unique +class TDDialysisStates(DialinEnum): + 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 + +@unique class TDEventList(DialinEnum): TD_EVENT_STARTUP = 0 # TD startup event TD_EVENT_OP_MODE_CHANGE = 1 # TD Op mode change event Index: leahi_dialin/td/modules/pressure_sensors.py =================================================================== diff -u -rd0d72ba74208cb43073ec38c7bbfebb2d32dcc66 -r3284125031072078a4b61a83d36bff419a770918 --- leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision d0d72ba74208cb43073ec38c7bbfebb2d32dcc66) +++ leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 3284125031072078a4b61a83d36bff419a770918) @@ -40,7 +40,7 @@ if self.can_interface is not None: channel_id = DenaliChannels.td_sync_broadcast_ch_id - msg_id = MsgIds.MSG_ID_PRESSURE_DATA.value + msg_id = MsgIds.MSG_ID_TD_PRESSURE_DATA.value self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_pressure_sync)