Index: dialin/common/hd_defs.py =================================================================== diff -u -raa3366a4d031c2447d6621db655f44e4bbf81d6d -rd9f36398a980ff9881c6699806918d02c116087e --- dialin/common/hd_defs.py (.../hd_defs.py) (revision aa3366a4d031c2447d6621db655f44e4bbf81d6d) +++ dialin/common/hd_defs.py (.../hd_defs.py) (revision d9f36398a980ff9881c6699806918d02c116087e) @@ -7,8 +7,8 @@ # # @file hd_defs.py # -# @author (last) Behrouz NematiPour -# @date (last) 09-Sep-2022 +# @author (last) Micahel Garthwaite +# @date (last) 12-Oct-2022 # @author (original) Peter Lucia # @date (original) 04-Dec-2020 # @@ -32,7 +32,7 @@ @unique -class HDOpSubModes(DialinEnum): +class HDStandbyStates(DialinEnum): STANDBY_START_STATE = 0 # Start standby. STANDBY_WAIT_FOR_TREATMENT_STATE = 1 # Wait for treatment. STANDBY_WAIT_FOR_DISINFECT_STATE = 2 # Wait for UI to send disinfect option. @@ -47,7 +47,6 @@ STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE = 11 # DG chemical disinfect operation is in progress NUM_OF_STANDBY_STATES = 12 # Number of standby states (sub-modes) - @unique class HDInitStates(DialinEnum): POST_STATE_START = 0 # Start initialize & POST mode state @@ -77,7 +76,6 @@ POST_STATE_FAILED = 24 # POST self-tests failed state NUM_OF_POST_STATES = 25 # Number of initialize & POST mode states - @unique class PreTreatmentSubModes(DialinEnum): HD_PRE_TREATMENT_START_STATE = 0 # Start pre-treatment mode state @@ -125,9 +123,8 @@ NUM_OF_NO_CART_SELF_TESTS_STATES = 9 # Number of no cartridge self-tests states -# This 'PreTreatmentWetSelfTesStates' may need to remove, during merge it was comparing with the folowing 'PreTreatmentDrySelfTestStates' @unique -class PreTreatmentWetSelfTesStates(DialinEnum): +class PreTreatmentWetSelfTestStates(DialinEnum): WET_SELF_TESTS_START_STATE = 0 WET_SELF_TESTS_SETUP_STATE = 1 WET_SELF_TESTS_BUBBLES_STATE = 2 @@ -142,43 +139,7 @@ WET_SELF_TESTS_STOPPED_STATE = 11 WET_SELF_TESTS_COMPLETE_STATE = 12 - @unique -class PreTreatmentDrySelfTestStates(DialinEnum): - DRY_SELF_TESTS_START_STATE = 0 # Dry self-tests starting state - DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to close before executing self-tests - DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE = 2 # Used cartridge check dry self-test state - DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE = 3 # Occlusion sensors dry self-test state - DRY_SELF_TESTS_PRESSURE_SENSORS_SETUP_STATE = 4 # Pressure sensors dry self-test setup valves and pump state - DRY_SELF_TESTS_PRESSURE_SENSORS_STATE = 5 # Pressure sensors verify pressure readings state - DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE = 6 # Pressure sensors verify normal pressure readings state - DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE = 7 # Prime syringe pump state - DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE = 8 # Occlusion detection state - DRY_SELF_TESTS_STOPPED_STATE = 9 # Dry self-test stopped state - DRY_SELF_TESTS_COMPLETE_STATE = 10 # Dry self-test complete state - NUM_OF_DRY_SELF_TESTS_STATES = 11 # Number of dry self-tests states - - -@unique -class PreTreatmentPrimeStates(DialinEnum): - HD_PRIME_START_STATE = 0 # Prime start state - HD_PRIME_WAIT_FOR_USER_START_STATE = 1 # Wait for user to start prime state - HD_PRIME_SALINE_SETUP_STATE = 2 # Saline setup state - HD_PRIME_SALINE_PURGE_AIR_STATE = 3 # Saline purge air state - HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE = 4 # Circulate blood circuit state - HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE = 5 # Wait for reservoir 1 fill complete - HD_PRIME_DIALYSATE_DIALYZER_STATE = 6 # Dialysate dialyzer fluid path state - HD_PRIME_SALINE_DIALYZER_SETUP_STATE = 7 # Saline dialyzer setup state - HD_PRIME_SALINE_DIALYZER_STATE = 8 # Saline dialyzer fluid path state - HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE = 9 # Wait for reservoir 2 fill complete - HD_PRIME_DIALYSATE_BYPASS_STATE = 10 # Dialysate bypass fluid path state - HD_PRIME_WET_SELF_TESTS_STATE = 11 # Perform wet self-tests after priming complete - HD_PRIME_PAUSE = 12 # Prime pause state, waits to be resumed - HD_PRIME_COMPLETE = 13 # Prime complete state - NUM_OF_HD_PRIME_STATES = 14 # Number of prime sub-mode states - - -@unique class PreTreatmentRecircStates(DialinEnum): PRE_TREATMENT_RECIRC_STATE = 0 # Pre-treatment recirculate state PRE_TREATMENT_RECIRC_STOPPED_STATE = 1 # Pre-treatment recirculate stopped state @@ -232,72 +193,27 @@ @unique -class PreTreatmentModeStates(DialinEnum): - HD_PRE_TREATMENT_START_STATE = 0 # Start pre-treatment mode state - HD_PRE_TREATMENT_WATER_SAMPLE_STATE = 1 # Water sample state - HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE = 2 # Consumable self-tests state - HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE = 3 # No cartridge self-tests state - HD_PRE_TREATMENT_CART_INSTALL_STATE = 4 # Consumable and cartridge installation state - HD_PRE_TREATMENT_SELF_TEST_DRY_STATE = 5 # Self-tests when the cartridge is dry state - HD_PRE_TREATMENT_PRIME_STATE = 6 # Prime blood and dialysate circuits and run wet self-tests state - HD_PRE_TREATMENT_RECIRCULATE_STATE = 7 # Re-circulate blood and dialysate circuits state - HD_PRE_TREATMENT_PATIENT_CONNECTION_STATE = 8 # Patient connection state - NUM_OF_HD_PRE_TREATMENT_STATES = 9 # Number of pre-treatment mode states - - -@unique -class PreTreatmentSampleWaterStates(DialinEnum): - SAMPLE_WATER_SETUP_STATE = 0 # Sample water setup (flush filter) state - SAMPLE_WATER_STATE = 1 # Sample water state, receiving sample water commands from the user - SAMPLE_WATER_COMPLETE_STATE = 2 # Sample water complete state - NUM_OF_SAMPLE_WATER_STATES = 3 # Number of sample water sub-mode states - - -@unique -class PreTreatmentConsumableSelfTestStates(DialinEnum): - CONSUMABLE_SELF_TESTS_INSTALL_STATE = 0 # Consumable self-tests install state - CONSUMABLE_SELF_TESTS_FILL_CMD_STATE = 1 # Send command to DG to fill reservoir state - CONSUMABLE_SELF_TESTS_WATER_QUALITY_CHECK_STATE = 2 # Consumable self-tests water quality check state - CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE = 3 # Consumable self-tests bicarbonate concentrate pump check state - CONSUMABLE_SELF_TESTS_ACID_PUMP_CHECK_STATE = 4 # Consumable self-tests acid concentrate pump check state - CONSUMABLE_SELF_TESTS_COMPLETE_STATE = 5 # Consumable self-tests complete state - NUM_OF_CONSUMABLE_SELF_TESTS_STATES = 6 # Number of consumable install sub-mode states - - -@unique -class PreTreatmentNoCartSelfTestsStates(DialinEnum): - NO_CART_SELF_TESTS_START_STATE = 0 # No cartridge self-tests starting state - NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to be closed before running self-tests - NO_CART_SELF_TESTS_PRESSURE_CHECKS_STATE = 2 # No cartridge pressure sensors self-test state - NO_CART_SELF_TESTS_HOME_VALVES_STATE = 3 # No cartridge home valves state - NO_CART_SELF_TESTS_HOME_SYRINGE_PUMP_STATE = 4 # No cartridge home syringe pump state - NO_CART_SELF_TESTS_PUMPS_STATE = 5 # No cartridge self-test for blood pump, dialysate in pump, dialysate out pump state - NO_CART_SELF_TESTS_HOME_IDLE_STATE = 6 # Wait for valves and pumps finish homing state - NO_CART_SELF_TESTS_STOPPED_STATE = 7 # No cart self-test stopped state - NO_CART_SELF_TESTS_COMPLETE_STATE = 8 # No cartridge self-test complete state - NUM_OF_NO_CART_SELF_TESTS_STATES = 9 # Number of no cartridge self-tests states - - -@unique class PreTreatmentCartridgeInstallStates(DialinEnum): CARTRIDGE_INSTALL_STATE = 0 # Pre-treatment Cartridge Install state. NUM_OF_CARTRIDGE_INSTALL_STATES = 1 # Number of pre-treatment Cartridge Install states. @unique class PreTreatmentDrySelfTestsStates(DialinEnum): - DRY_SELF_TESTS_START_STATE = 0 # Dry self-tests starting state - DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to close before executing self-tests - DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE = 2 # Used cartridge check dry self-test state - DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE = 3 # Occlusion sensors dry self-test state - DRY_SELF_TESTS_PRESSURE_SENSORS_SETUP_STATE = 4 # Pressure sensors dry self-test setup valves and pump state - DRY_SELF_TESTS_PRESSURE_SENSORS_STATE = 5 # Pressure sensors verify pressure readings state - DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE = 6 # Pressure sensors verify normal pressure readings state - DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE = 7 # Prime syringe pump state - DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE = 8 # Occlusion detection state - DRY_SELF_TESTS_STOPPED_STATE = 9 # Dry self-test stopped state - DRY_SELF_TESTS_COMPLETE_STATE = 10 # Dry self-test complete state - NUM_OF_DRY_SELF_TESTS_STATES = 11 # Number of dry self-tests states + DRY_SELF_TESTS_START_STATE = 0 # Dry self-tests starting state + DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to close before executing self-tests + DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE = 2 # Used cartridge check dry self-test state + DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE = 3 # Occlusion sensors dry self-test state + DRY_SELF_TESTS_PRESSURE_SENSORS_SETUP_STATE = 4 # Pressure sensors dry self-test setup valves and pump state + DRY_SELF_TESTS_PRESSURE_SENSORS_PRESSURIZED_STATE = 5 # Pressure sensors verify pressure readings state + DRY_SELF_TESTS_PRESSURE_SENSORS_DECAY_STATE = 6 # Pressure sensors verify pressure loss state + DRY_SELF_TESTS_PRESSURE_SENSORS_STABILITY_STATE = 7 # Pressure sensors verify pressure stability state + DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE = 8 # Pressure sensors verify normal pressure readings state + DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE = 9 # Prime syringe pump state + DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE = 10 # Occlusion detection state + DRY_SELF_TESTS_STOPPED_STATE = 11 # Dry self-test stopped state + DRY_SELF_TESTS_COMPLETE_STATE = 12 # Dry self-test complete state + NUM_OF_DRY_SELF_TESTS_STATES = 13 # Number of dry self-tests states @unique @@ -341,23 +257,6 @@ @unique -class StandbyStates(DialinEnum): - STANDBY_START_STATE = 0 # Start standby. - STANDBY_WAIT_FOR_TREATMENT_STATE = 1 # Wait for treatment. - STANDBY_WAIT_FOR_DISINFECT_STATE = 2 # Wait for UI to send disinfect option. - STANDBY_WAIT_FOR_DG_FLUSH_CMD_RESPONSE_STATE = 3 # Wait for DG flush command response. - STANDBY_WAIT_FOR_DG_FLUSH_TO_START_STATE = 4 # Wait for DG flush to start. - STANDBY_DG_FLUSH_IN_PROGRESS_STATE = 5 # DG flush operation is in progress - STANDBY_WAIT_FOR_DG_HEAT_DISINFECT_CMD_RESPONSE_STATE = 6 # Wait for DG heat disinfect command response. - STANDBY_WAIT_FOR_DG_HEAT_DISINFECT_TO_START_STATE = 7 # Wait for DG heat disinfect to start. - STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE = 8 # DG heat disinfect operation is in progress. - STANDBY_WAIT_FOR_DG_CHEM_DISINFECT_CMD_RESPONSE_STATE = 9 # Wait for DG chemical disinfect command response. - STANDBY_WAIT_FOR_DG_CHEM_DISINFECT_TO_START_STATE = 10 # Wait for DG chemical disinfect to start. - STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE = 11 # DG chemical disinfect operation is in progress - NUM_OF_STANDBY_STATES = 12 # Number of standby states (sub-modes) - - -@unique class TreatmentStates(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. Index: dialin/common/msg_defs.py =================================================================== diff -u -raa3366a4d031c2447d6621db655f44e4bbf81d6d -rd9f36398a980ff9881c6699806918d02c116087e --- dialin/common/msg_defs.py (.../msg_defs.py) (revision aa3366a4d031c2447d6621db655f44e4bbf81d6d) +++ dialin/common/msg_defs.py (.../msg_defs.py) (revision d9f36398a980ff9881c6699806918d02c116087e) @@ -7,8 +7,8 @@ # # @file msg_defs.py # -# @author (last) Behrouz NematiPour -# @date (last) 08-Sep-2022 +# @author (last) Micahel Garthwaite +# @date (last) 06-Oct-2022 # @author (original) Peter Lucia # @date (original) 07-Aug-2020 # @@ -194,3 +194,11 @@ END_POS_FIELD_24 = START_POS_FIELD_24 + 4 START_POS_FIELD_25 = END_POS_FIELD_24 END_POS_FIELD_25 = START_POS_FIELD_25 + 4 + START_POS_FIELD_26 = END_POS_FIELD_25 + END_POS_FIELD_26 = START_POS_FIELD_26 + 4 + START_POS_FIELD_27 = END_POS_FIELD_26 + END_POS_FIELD_27 = START_POS_FIELD_27 + 4 + START_POS_FIELD_28 = END_POS_FIELD_27 + END_POS_FIELD_28 = START_POS_FIELD_28 + 4 + START_POS_FIELD_29 = END_POS_FIELD_28 + END_POS_FIELD_29 = START_POS_FIELD_29 + 4 Index: dialin/common/msg_ids.py =================================================================== diff -u -raa3366a4d031c2447d6621db655f44e4bbf81d6d -rd9f36398a980ff9881c6699806918d02c116087e --- dialin/common/msg_ids.py (.../msg_ids.py) (revision aa3366a4d031c2447d6621db655f44e4bbf81d6d) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision d9f36398a980ff9881c6699806918d02c116087e) @@ -8,7 +8,7 @@ # @file msg_ids.py # # @author (last) Dara Navaei -# @date (last) 04-Sep-2022 +# @date (last) 18-Oct-2022 # @author (original) Peter Lucia # @date (original) 06-Apr-2021 # @@ -339,6 +339,9 @@ MSG_ID_HD_SET_BLOOD_LEAK_EMB_MODE_COMMAND = 0x8082 MSG_ID_HD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE = 0x8083 MSG_ID_HD_SEND_ALARMS_COMMAND = 0x8084 + MSG_ID_HD_BLOOD_PUMP_SET_PWM = 0x8085 + MSG_ID_HD_DIAL_IN_SET_PWM = 0x8086 + MSG_ID_HD_DIAL_OUT_SET_PWM = 0x8087 MSG_ID_DG_TESTER_LOGIN_REQUEST = 0xA000 MSG_ID_DG_ALARM_STATE_OVERRIDE = 0xA001 @@ -348,7 +351,7 @@ MSG_ID_PRESSURE_OVERRIDE = 0xA006 MSG_ID_PRESSURE_SEND_INTERVAL_OVERRIDE = 0xA007 MSG_ID_DG_HD_COMMUNICATION_STATUS_OVERRIDE = 0xA008 - MSG_ID_RO_MEASURED_FLOW_OVERRIDE = 0xA009 + MSG_ID_DG_SET_PRIMARY_AND_TRIMMER_HEATERS_TARGET_TEMP = 0xA009 MSG_ID_RO_PUMP_SEND_INTERVAL_OVERRIDE = 0xA00A MSG_ID_DRAIN_PUMP_SET_RPM = 0xA00B MSG_ID_DRAIN_PUMP_SEND_INTERVAL_OVERRIDE = 0xA00C @@ -372,7 +375,7 @@ MSG_ID_DG_SWITCHES_PUBLISH_INTERVAL_OVERRIDE = 0xA01E MSG_ID_DG_OP_MODE_PUBLISH_INTERVAL_OVERRIDE = 0xA01F MSG_ID_DG_BLOCK_MESSAGE_TRANSMISSION = 0xA020 - MSG_ID_DIALYSATE_MEASURED_FLOW_OVERRIDE = 0xA021 + MSG_ID_MEASURED_FLOW_SENSORS_OVERRIDE = 0xA021 MSG_ID_DG_SOFTWARE_RESET_REQUEST = 0xA022 MSG_ID_DG_CONCENTRATE_PUMP_MEASURED_SPEED_OVERRIDE = 0xA023 MSG_ID_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE = 0xA024 @@ -386,7 +389,7 @@ MSG_ID_DG_THERMISTORS_DATA_PUBLISH_INTERVAL_OVERRIDE = 0xA02D MSG_ID_DG_THERMISTORS_VALUE_OVERRIDE = 0xA02E MSG_ID_DG_RO_PUMP_DUTY_CYCLE_OVERRIDE = 0xA02F - MSG_ID_DG_RO_FLOW_RATE_OVERRIDE = 0xA030 + MSG_ID____AVAILABLE_5 = 0xA030 MSG_ID_DG_SET_RO_PUMP_TARGET_FLOW = 0xA031 MSG_ID_DG_RO_PUMP_TARGET_PRESSURE_OVERRIDE = 0xA032 MSG_ID_DG_SET_CALIBRATION_RECORD = 0xA033 @@ -406,7 +409,7 @@ MSG_ID_DG_FLUSH_PUBLISH_INTERVAL_OVERRIDE = 0xA041 MSG_ID_FILTER_FLUSH_TIME_PERIOD_OVERRIDE = 0xA042 MSG_ID_DG_FANS_RPM_OVERRIDE = 0xA043 - MSG_ID_DIALYSATE_FLOW_SEND_INTERVAL_OVERRIDE = 0xA044 + MSG_ID_FLOW_DATA_PUBLISH_INTERVAL_OVERRIDE = 0xA044 MSG_ID_DG_STOP_RTC_CLOCK = 0xA045 MSG_ID_DG_DRAIN_PUMP_MEASURED_RPM_OVERRIDE = 0xA046 MSG_ID_DG_SUPER_CLEAR_ALARMS_CMD = 0xA047