Index: leahi_dialin/common/dd_defs.py =================================================================== diff -u -r963c103929c262a940aa73677f7de94a3afaad62 -r62640bb1dfcb4279d31719ca933c3ce69bfb46be --- leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision 963c103929c262a940aa73677f7de94a3afaad62) +++ leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision 62640bb1dfcb4279d31719ca933c3ce69bfb46be) @@ -382,7 +382,7 @@ DDLevelSensorNames._str_list = { # Official Name : Accepted strings - 'D6_LEVEL': ['d6'], + 'D6_LEVEL': ['d6'], 'D63_LEVEL': ['d63'], 'D46_LEVEL': ['d46'], 'D98_LEVEL': ['d98'], @@ -597,7 +597,7 @@ BAL_CHAMBER_STATE1_FILL_START = 1 # Balancing chamber state 1 fill start state BAL_CHAMBER_STATE1_BICARB_ACID_DOSING_CNTRL = 2 # Balancing Chamber state 1 Bicarb and acid dosing control state BAL_CHAMBER_STATE1_FILL_END = 3 # Balancing Chamber state 1 fill end state - BAL_CHAMBER_STATE2_FILL_START = 4 # Balancing chamber state 2 fill start state + BAL_CHAMBER_STATE2_FILL_START = 4 # Balancing chamber state 2 fill start state BAL_CHAMBER_STATE2_BICARB_ACID_DOSING_CNTRL = 5 # Balancing Chamber state 2 Bicarb and acid dosing control state BAL_CHAMBER_STATE2_FILL_END = 6 # Balancing Chamber state 2 fill end state NUM_OF_BAL_CHAMBER_EXEC_STATES = 7 # Number of balancing chamber states @@ -631,13 +631,13 @@ @unique class DDBloodLeakStates(DialinEnum): - 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 # + 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 # Number of blood leak states DDBloodLeakStates._str_list = { Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r04483df99152f553e431be4b53285599cedc17c1 -r62640bb1dfcb4279d31719ca933c3ce69bfb46be --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 04483df99152f553e431be4b53285599cedc17c1) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 62640bb1dfcb4279d31719ca933c3ce69bfb46be) @@ -165,14 +165,25 @@ MSG_ID_TD_RINSEBACK_PROGRESS = 0x8F MSG_ID_UI_RINSEBACK_CMD_REQUEST = 0x90 MSG_ID_TD_RINSEBACK_CMD_RESPONSE = 0x91 - MSG_ID_UI_ADJUST_DISPOSABLES_CONFIRM_REQUEST = 0X92 - MSG_ID_TD_ADJUST_DISPOSABLES_CONFIRM_RESPONSE = 0X93 - MSG_ID_UI_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_REQUEST = 0X94 - MSG_ID_TD_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_RESPONSE = 0X95 - + MSG_ID_UI_ADJUST_DISPOSABLES_CONFIRM_REQUEST = 0x92 + MSG_ID_TD_ADJUST_DISPOSABLES_CONFIRM_RESPONSE = 0x93 + MSG_ID_UI_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_REQUEST = 0x94 + MSG_ID_TD_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_RESPONSE = 0x95 + MSG_ID_TD_BLOOD_PRIME_PROGRESS_DATA = 0x97 + MSG_ID_UI_BLOOD_PRIME_CMD_REQUEST = 0x98 + MSG_ID_TD_BLOOD_PRIME_CMD_RESPONSE = 0x99 + MSG_ID_TD_ISOLATED_UF_DATA = 0x9A + MSG_ID_UI_ISOLATED_UF_DURATION_CHANGE_REQUEST = 0x9B + MSG_ID_TD_ISOLATED_UF_DURATION_CHANGE_RESPONSE = 0x9C + MSG_ID_UI_ISOLATED_UF_VOLUME_GOAL_CHANGE_REQUEST = 0x9D + MSG_ID_TD_ISOLATED_UF_VOLUME_GOAL_CHANGE_RESPONSE = 0x9E + MSG_ID_UI_ISOLATED_UF_CONFIRM_REQUEST = 0x9F + MSG_ID_TD_ISOLATED_UF_CONFIRM_RESPONSE = 0xA0 + MSG_ID_UI_ADJUST_START_TREATMENT_REQUEST = 0xA1 + MSG_ID_TD_ADJUST_START_TREATMENT_RESPONSE = 0xA2 + MSG_ID_DD_PISTON_PUMP_CONTROL_DATA = 0xF0 - MSG_ID_TD_TESTER_LOGIN_REQUEST = 0x8000 MSG_ID_TD_SOFTWARE_RESET_REQUEST = 0x8001 MSG_ID_TD_SEND_TEST_CONFIGURATION = 0x8002 @@ -388,8 +399,8 @@ MSG_ID_FP_ALARM_STATE_OVERRIDE_REQUEST = 0xB02B MSG_ID_FP_ALARM_CLEAR_ALL_ALARMS_REQUEST = 0xB02C MSG_ID_FP_SET_TEST_CONFIGURATION = 0xB02D - MSG_ID_FP_GET_TEST_CONFIGURATION = 0XB02E - MSG_ID_FP_RESET_ALL_TEST_CONFIGURATIONS = 0XB02F + MSG_ID_FP_GET_TEST_CONFIGURATION = 0xB02E + MSG_ID_FP_RESET_ALL_TEST_CONFIGURATIONS = 0xB02F MSG_ID_FP_INLET_PRES_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB030 MSG_ID_FP_INLET_PRES_CHECK_TIME_OVERRIDE_REQUEST = 0xB031 MSG_ID_FP_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST = 0xB032 @@ -406,3 +417,4 @@ MSG_ID_ACK_MESSAGE_THAT_REQUIRES_ACK = 0xFFFF +MsgIds._str_list = {} Index: leahi_dialin/common/test_config_defs.py =================================================================== diff -u -r66ca4d7e28f9a008813bc7bca92dbd98616a840b -r62640bb1dfcb4279d31719ca933c3ce69bfb46be --- leahi_dialin/common/test_config_defs.py (.../test_config_defs.py) (revision 66ca4d7e28f9a008813bc7bca92dbd98616a840b) +++ leahi_dialin/common/test_config_defs.py (.../test_config_defs.py) (revision 62640bb1dfcb4279d31719ca933c3ce69bfb46be) @@ -33,7 +33,8 @@ TEST_CONFIG_DD_ENABLE_UF_TEMP_COMP = 10 # (DD) Test configuration to enable Ultrafiltration temperature compensation TEST_CONFIG_DD_RUN_SOLO = 11 # (DD) Test configuration to run DD alone without the other subsystems TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW = 12 # (DD) Test configuration to run DD alone without the other subsystems - NUM_OF_TEST_CONFIGS = 13 # Number of Test Configs + TEST_CONFIG_DD_DRY_BICART_TEST = 13 # (DD) Test configuration to test drybicart initial fill from pre-gen + NUM_OF_TEST_CONFIGS = 14 # Number of Test Configs DDFPTestConfigOptions._str_list = {} @unique Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -rf66c019100e98b49cd94fa0a69951a1a7c952da0 -r62640bb1dfcb4279d31719ca933c3ce69bfb46be --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision f66c019100e98b49cd94fa0a69951a1a7c952da0) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 62640bb1dfcb4279d31719ca933c3ce69bfb46be) @@ -84,10 +84,10 @@ self.d23_valv = {"id": dd_enum_repository.DDValveNames.D23_VALV.value, "state": DEENERGIZED} self.d19_valv = {"id": dd_enum_repository.DDValveNames.D19_VALV.value, "state": DEENERGIZED} self.d25_valv = {"id": dd_enum_repository.DDValveNames.D25_VALV.value, "state": DEENERGIZED} - self.d21_valv = {"id": dd_enum_repository.DDValveNames.D26_VALV.value, "state": DEENERGIZED} + self.d21_valv = {"id": dd_enum_repository.DDValveNames.D21_VALV.value, "state": DEENERGIZED} self.d24_valv = {"id": dd_enum_repository.DDValveNames.D24_VALV.value, "state": DEENERGIZED} self.d20_valv = {"id": dd_enum_repository.DDValveNames.D20_VALV.value, "state": DEENERGIZED} - self.d26_valv = {"id": dd_enum_repository.DDValveNames.D21_VALV.value, "state": DEENERGIZED} + self.d26_valv = {"id": dd_enum_repository.DDValveNames.D26_VALV.value, "state": DEENERGIZED} self.d22_valv = {"id": dd_enum_repository.DDValveNames.D22_VALV.value, "state": DEENERGIZED} self.d79_pmp_valv = {"id": dd_enum_repository.DDValveNames.D79_PMP_VALV.value, "state": DEENERGIZED} @@ -101,7 +101,7 @@ # NOTE: The len function counts the enums with the same number only once. This is not the case in the DD valves # class because each valve must have a unique ID. - self.valve_states_enum = [0 for _ in range(len(dd_enum_repository.DDValveNames))] + self.valve_states_enum = [0 for _ in range(dd_enum_repository.DDValveNames.NUM_OF_DD_VALVES.value - 1)] for valve in dd_enum_repository.DDValveNames.__members__: self.valves_sensed_states[valve] = '' @@ -268,11 +268,15 @@ self.d100_valv["state"] = self._binary_to_valve_state(spv[0] & 64) self.spare7_valv["state"] = self._binary_to_valve_state(spv[0] & 128) + # Updating Valve_states_enum + for i in range(0, dd_enum_repository.DDValveNames.NUM_OF_DD_VALVES.value - 1): + self.valve_states_enum[i] = eval(f'self.{dd_enum_repository.DDValveNames(i).name.lower()}["state"]') + start = self.END_POS_SPARE_VALVES_STATES end = start + 1 for valve_id in self.valves_sensed_states: valve_state_number = struct.unpack('B', bytearray(message['message'][start:end]))[0] - self.valves_sensed_states[valve_id] = dd_enum_repository.DDValveNames(valve_state_number).name + self.valves_sensed_states[valve_id] = valve_state_number start = end end += 1 @@ -358,7 +362,7 @@ can_interface = self.can_interface) - def cmd_bc_valves_override(self, bcv1: bool, bcv2: bool, bcv3: bool, bcv4: bool, bcv5: bool, bcv6: bool, bcv7: bool, bcv8: bool) -> int: + def cmd_bc_valves_override(self, bcv1: bool, bcv2: bool, bcv3: bool, bcv4: bool, bcv5: bool, bcv6: bool, bcv7: bool, bcv8: bool, reset: int = NO_RESET) -> int: """ Constructs and sends the balancing chamber valve states override command. Constraints: @@ -373,31 +377,34 @@ @param bcv6: bool - valve state for D20_VALV (true=open, false=closed) @param bcv7: bool - valve state for D26_VALV (true=open, false=closed) @param bcv8: bool - valve state for D22_VALV (true=open, false=closed) + @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ + rst = integer_to_bytearray(reset) valve = 0 if bcv1: valve = valve | 0x1 if bcv2: valve = valve | 0x2 if bcv3: valve = valve | 0x4 - if bcv7: + if bcv4: valve = valve | 0x8 if bcv5: valve = valve | 0x10 if bcv6: valve = valve | 0x20 - if bcv4: + if bcv7: valve = valve | 0x40 if bcv8: valve = valve | 0x80 - payload = integer_to_bytearray(valve) + vlv = integer_to_bytearray(valve) + payload = rst + vlv return cmd_generic_override( payload = payload, - reset = NO_RESET, + reset = reset, channel_id = DenaliChannels.dialin_to_dd_ch_id, msg_id = MsgIds.MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST, entity_name = f'DD Balancing Chamber Valves state',