Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r4012a0787038f9d82577b664df8c668abadecaab -ra313166ac02fdc81a9d2b24eca45cded18fd468e --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 4012a0787038f9d82577b664df8c668abadecaab) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision a313166ac02fdc81a9d2b24eca45cded18fd468e) @@ -183,9 +183,12 @@ MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST = 0xA036 MSG_ID_DD_BC_SWITCH_ONLY_START_STOP_OVERRIDE_REQUEST = 0xA037 MSG_ID_DD_HYD_CHAMBER_TARGET_TEMP_OVERRIDE_REQUEST = 0xA038 + MSG_ID_DD_ACID_DOSING_VOLUME_OVERRIDE_REQUEST = 0xA039 + MSG_ID_DD_BICARB_DOSING_VOLUME_OVERRIDE_REQUEST = 0xA03A 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 MSG_ID_FIRST_RO_TESTER_MESSAGE = 0xB000 MSG_ID_RO_SOFTWARE_RESET_REQUEST = 0xB001 Index: leahi_dialin/dd/modules/balancing_chamber.py =================================================================== diff -u -r9466b5c6b5867f392104a42608aa9542a7ff0358 -ra313166ac02fdc81a9d2b24eca45cded18fd468e --- leahi_dialin/dd/modules/balancing_chamber.py (.../balancing_chamber.py) (revision 9466b5c6b5867f392104a42608aa9542a7ff0358) +++ leahi_dialin/dd/modules/balancing_chamber.py (.../balancing_chamber.py) (revision a313166ac02fdc81a9d2b24eca45cded18fd468e) @@ -192,4 +192,78 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.error("Timeout!!!!") - return False \ No newline at end of file + return False + + def cmd_acid_dose_volume_override(self, volume: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the acid dose volume override command + Constraints: + Must be logged into DD. + + @param volume: float - volume value to override acid dose 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) + vol = float_to_bytearray(volume) + payload = reset_byte_array + vol + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_ACID_DOSING_VOLUME_OVERRIDE_REQUEST.value, + payload=payload) + + if reset == RESET: + str_res = "reset back to normal" + else: + str_res = str(volume) + self.logger.debug("override acid dose volume to frequency " + ": " + str_res) + + # 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 + + def cmd_bicarb_dose_volume_override(self, volume: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the bicarb dose volume override command + Constraints: + Must be logged into DD. + + @param volume: float - volume value to override bicarb dose 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) + vol = float_to_bytearray(volume) + payload = reset_byte_array + vol + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_BICARB_DOSING_VOLUME_OVERRIDE_REQUEST.value, + payload=payload) + + if reset == RESET: + str_res = "reset back to normal" + else: + str_res = str(volume) + self.logger.debug("override bicarb dose volume to frequency " + ": " + str_res) + + # 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 Index: leahi_dialin/dd/modules/piston_pump.py =================================================================== diff -u -r9466b5c6b5867f392104a42608aa9542a7ff0358 -ra313166ac02fdc81a9d2b24eca45cded18fd468e --- leahi_dialin/dd/modules/piston_pump.py (.../piston_pump.py) (revision 9466b5c6b5867f392104a42608aa9542a7ff0358) +++ leahi_dialin/dd/modules/piston_pump.py (.../piston_pump.py) (revision a313166ac02fdc81a9d2b24eca45cded18fd468e) @@ -168,4 +168,36 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.error("Timeout!!!!") + return False + + def cmd_piston_pump_fill_after_dispense_override(self, fill: bool, reset: int = NO_RESET) -> int: + """ + Constructs and sends the piston pump fill after dispense override command + Constraints: + Must be logged into DD. + + @param fill: integer - 0 = false, 1 = true to override piston pump fill + @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) + fl = integer_to_bytearray(fill) + payload = reset_byte_array + fl + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_PISTON_PUMP_FILL_AFTER_DISPENSE_OVERRIDE_REQUEST.value, + payload=payload) + + self.logger.debug("override DD piston pump fill after dispense.") + + # 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 \ No newline at end of file