Index: leahi_dialin/common/dd_defs.py =================================================================== diff -u -r98579cec744881b6fc6d368c0fb1b43932393447 -rfa63b92d3d3a3f2870833583bff12729e180e2d1 --- leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision 98579cec744881b6fc6d368c0fb1b43932393447) +++ leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision fa63b92d3d3a3f2870833583bff12729e180e2d1) @@ -321,7 +321,15 @@ D20_VALV = 21 # Balancing chamber Valve 6 (D20) D26_VALV = 22 # Balancing chamber Valve 4 (D21) D22_VALV = 23 # Balancing chamber Valve 8 (D22) - NUM_OF_DD_VALVES = 24 # Number of Valves for the DD + D79_PMP_VALV = 24 # D79 pump mapped to spare valve 0 + SPARE1_VALV = 25 # Spare Valve 1 + SPARE2_VALV = 26 # Spare Valve 2 + SPARE3_VALV = 27 # Spare Valve 3 + SPARE4_VALV = 28 # Spare Valve 4 + SPARE5_VALV = 29 # Spare Valve 5 + SPARE6_VALV = 30 # Spare Valve 6 + SPARE7_VALV = 31 # Spare Valve 7 + NUM_OF_DD_VALVES = 32 # Number of Valves for the DD @unique class DDMonitoredVoltages(DialinEnum): Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r00412d78bda4176d5c45a3778cb90ad907928965 -rfa63b92d3d3a3f2870833583bff12729e180e2d1 --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 00412d78bda4176d5c45a3778cb90ad907928965) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision fa63b92d3d3a3f2870833583bff12729e180e2d1) @@ -274,17 +274,12 @@ MSG_ID_DD_BLOOD_LEAK_INTENSITY_MOVING_AVERAGE_OVERRIDE_REQUEST = 0xA04C MSG_ID_DD_BLOOD_LEAK_ZEROING_INTERVAL_IN_MS_OVERRIDE_REQUEST = 0xA04D MSG_ID_DD_BLOOD_LEAK_ZERO_REQUEST = 0xA04E - #MSG_ID_DD_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA04F - #MSG_ID_DD_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA050 - MSG_ID_DD_RINSE_PUMP_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA04F - MSG_ID_DD_RINSE_PUMP_PWM_PERCENT_OVERRIDE_REQUEST = 0xA050 + MSG_ID_DD_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA04F + MSG_ID_DD_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA050 MSG_ID_DD_VOLTAGE_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA051 MSG_ID_DD_MONITORED_VOLTAGE_OVERRIDE_REQUEST = 0xA052 + MSG_ID_DD_RINSE_PUMP_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA053 - # TODO: Placeholders for Beta conflict with above messages - MSG_ID_DD_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA060 # Original ID: 0xA04F - MSG_ID_DD_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA061 # Original ID: 0xA050 - MSG_ID_DD_PISTON_PUMP_DATA_PUBLISH_OVERRIDE_REQUEST = 0xAF00 MSG_ID_DD_PISTON_PUMP_START_STOP_OVERRIDE_REQUEST = 0xAF01 MSG_ID_DD_PISTON_PUMP_FILL_AFTER_DISPENSE_OVERRIDE_REQUEST = 0xAF02 Index: leahi_dialin/dd/modules/rinse_pump.py =================================================================== diff -u -r9c785697827d1a21021b48b57d5a14f157856ec2 -rfa63b92d3d3a3f2870833583bff12729e180e2d1 --- leahi_dialin/dd/modules/rinse_pump.py (.../rinse_pump.py) (revision 9c785697827d1a21021b48b57d5a14f157856ec2) +++ leahi_dialin/dd/modules/rinse_pump.py (.../rinse_pump.py) (revision fa63b92d3d3a3f2870833583bff12729e180e2d1) @@ -47,12 +47,10 @@ self._handler_rinse_pump_sync) self.d79_state = 0 - self.d79_pump_pwm = 0.0 - self.d79_pump_rpm = 0 self.dd_rinse_pump_timestamp = 0 @publish(["msg_id_dd_rinse_pump_data", - "d79_state", "d79_pump_pwm", "d79_pump_rpm", + "d79_state", "dd_rinse_pump_timestamp"]) def _handler_rinse_pump_sync(self, message, timestamp=0.0): """ @@ -64,10 +62,6 @@ self.d79_state = struct.unpack('I', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.d79_pump_pwm = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.d79_pump_rpm = struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] self.dd_rinse_pump_timestamp = timestamp @@ -105,36 +99,4 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.error("Timeout!!!!") - return False - - def cmd_rinse_pump_pwm_percent_override(self, pwm_percent: int, reset: int = NO_RESET) -> int: - """ - Constructs and sends the rinse pump pwm percent override command - Constraints: - Must be logged into DD. - - @param pwm_percent: integer - percentage to override the pwm with - @param reset: integer - 1 to reset a previous override, 0 to override - @return: 1 if successful, zero otherwise - """ - - reset_byte_array = integer_to_bytearray(reset) - pwm = integer_to_bytearray(pwm_percent) - payload = reset_byte_array + pwm - - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, - message_id=MsgIds.MSG_ID_DD_RINSE_PUMP_PWM_PERCENT_OVERRIDE_REQUEST.value, - payload=payload) - - self.logger.debug("override DD Rinse Pump PWM percentage") - - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.error("Timeout!!!!") - return False + return False \ No newline at end of file Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -r98579cec744881b6fc6d368c0fb1b43932393447 -rfa63b92d3d3a3f2870833583bff12729e180e2d1 --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 98579cec744881b6fc6d368c0fb1b43932393447) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision fa63b92d3d3a3f2870833583bff12729e180e2d1) @@ -43,6 +43,8 @@ END_POS_VALVES_STATES = START_POS_VALVES_STATES + 2 # Valves States come in as a U16 value (2 bytes) START_POS_BCV_VALVES_STATES = END_POS_VALVES_STATES END_POS_BCV_VALVES_STATES = START_POS_BCV_VALVES_STATES + 1 + START_POS_SPARE_VALVES_STATES = END_POS_BCV_VALVES_STATES + END_POS_SPARE_VALVES_STATES = START_POS_SPARE_VALVES_STATES + 1 END_POS_ALL_VALVES = START_POS_VALVES_STATES + 4 def __init__(self, can_interface, logger: Logger): @@ -89,6 +91,15 @@ self.d26_valv = {"id": DDValveNames.D21_VALV.value, "state": DEENERGIZED} self.d22_valv = {"id": DDValveNames.D22_VALV.value, "state": DEENERGIZED} + self.d79_pmp_valv = {"id": DDValveNames.D79_PMP_VALV.value, "state": DEENERGIZED} + self.spare1_valv = {"id": DDValveNames.SPARE1_VALV.value, "state": DEENERGIZED} + self.spare2_valv = {"id": DDValveNames.SPARE2_VALV.value, "state": DEENERGIZED} + self.spare3_valv = {"id": DDValveNames.SPARE3_VALV.value, "state": DEENERGIZED} + self.spare4_valv = {"id": DDValveNames.SPARE4_VALV.value, "state": DEENERGIZED} + self.spare5_valv = {"id": DDValveNames.SPARE5_VALV.value, "state": DEENERGIZED} + self.spare6_valv = {"id": DDValveNames.SPARE6_VALV.value, "state": DEENERGIZED} + self.spare7_valv = {"id": DDValveNames.SPARE7_VALV.value, "state": DEENERGIZED} + # 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(DDValveNames))] @@ -127,7 +138,16 @@ self.d24_valv.get("state", None), self.d20_valv.get("state", None), self.d26_valv.get("state", None), - self.d22_valv.get("state", None) + self.d22_valv.get("state", None), + + self.d79_pmp_valv.get("state", None), + self.spare1_valv.get("state", None), + self.spare2_valv.get("state", None), + self.spare3_valv.get("state", None), + self.spare4_valv.get("state", None), + self.spare5_valv.get("state", None), + self.spare6_valv.get("state", None), + self.spare7_valv.get("state", None) ] @staticmethod @@ -186,7 +206,16 @@ "d20_valv", "d26_valv", "d22_valv", + "d79_pmp_valv", + "spare1_valv", + "spare2_valv", + "spare3_valv", + "spare4_valv", + "spare5_valv", + "spare6_valv", + "spare7_valv", "valve_states_enum", + "valves_sensed_states", "dd_valves_states_timestamp" ]) def _handler_valves_sync(self, message, timestamp=0.0): @@ -229,7 +258,17 @@ self.d26_valv["state"] = self._binary_to_valve_state(bcv[0] & 64) self.d22_valv["state"] = self._binary_to_valve_state(bcv[0] & 128) - start = self.END_POS_BCV_VALVES_STATES + spv = struct.unpack('B', bytearray(message['message'][self.START_POS_SPARE_VALVES_STATES:self.END_POS_SPARE_VALVES_STATES])) + self.d79_pmp_valv["state"] = self._binary_to_valve_state(bcv[0] & 1) + self.spare1_valv["state"] = self._binary_to_valve_state(bcv[0] & 2) + self.spare2_valv["state"] = self._binary_to_valve_state(bcv[0] & 4) + self.spare3_valv["state"] = self._binary_to_valve_state(bcv[0] & 8) + self.spare4_valv["state"] = self._binary_to_valve_state(bcv[0] & 16) + self.spare5_valv["state"] = self._binary_to_valve_state(bcv[0] & 32) + self.spare6_valv["state"] = self._binary_to_valve_state(bcv[0] & 64) + self.spare7_valv["state"] = self._binary_to_valve_state(bcv[0] & 128) + + 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]