Index: dialin/common/msg_ids.py =================================================================== diff -u -r19d246d9c099e1a15570767f82ca79502aff2776 -r32c8b4b054a77b4ec794a6538cb39ce93ab05348 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision 19d246d9c099e1a15570767f82ca79502aff2776) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision 32c8b4b054a77b4ec794a6538cb39ce93ab05348) @@ -429,6 +429,11 @@ MSG_ID_DG_SEND_USAGE_INFO_RECORD = 0xA055 MSG_ID_DG_SET_OP_MODE_REQUEST = 0xA056 MSG_ID_DG_RESERVOIR_TARE_REQUEST = 0xA057 + MSG_ID_CPLD_PUBLISH_INTERVAL_OVERRIDE = 0xA058 + MSG_ID_DG_DRAIN_PUMP_CURRENT_OVERRIDE = 0xA059 + MSG_ID_DG_DRAIN_PUMP_DIRECTION_OVERRIDE = 0xA05A + MSG_ID_DG_RO_FEEDBACK_VOLTAGE_OVERRIDE = 0xA05B + MSG_ID_DG_DIALYSATE_FILL_INTEGRATED_VOLUME_OVERRIDE = 0xA05C MSG_ID_HD_DEBUG_EVENT = 0xFFF1 MSG_ID_DG_DEBUG_EVENT = 0xFFF2 Index: dialin/dg/dialysate_fill.py =================================================================== diff -u -r818d439ae9c03d90902013ae07872e4e58f52890 -r32c8b4b054a77b4ec794a6538cb39ce93ab05348 --- dialin/dg/dialysate_fill.py (.../dialysate_fill.py) (revision 818d439ae9c03d90902013ae07872e4e58f52890) +++ dialin/dg/dialysate_fill.py (.../dialysate_fill.py) (revision 32c8b4b054a77b4ec794a6538cb39ce93ab05348) @@ -193,3 +193,42 @@ else: self.logger.error("Timeout!!!!") return False + + def cmd_dialysate_fill_total_volume_override(self, volume: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the total fill override command. + Constraints: + Must be logged into DG. + + @param volume: (float) volume to override with ( in mL ) + @param reset: (int) 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + """ + + rst = integer_to_bytearray(reset) + vol = float_to_bytearray(volume) + payload = rst + vol + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=MsgIds.MSG_ID_DG_DIALYSATE_FILL_INTEGRATED_VOLUME_OVERRIDE.value, + payload=payload) + + self.logger.debug("Override total volume for dialysate fill.") + + # Send message + received_message = self.can_interface.send(message) + + # If there is content... + if received_message is not None: + if reset == RESET: + str_res = "back to normal" + else: + str_res = str(volume) + self.logger.debug( + "Total Fill has been overridden " + str_res + " mL " + + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + # response payload is OK or not OK + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False Index: dialin/dg/ro_pump.py =================================================================== diff -u -rbff28676dd855ea33707bbb26a624abc94aebdf0 -r32c8b4b054a77b4ec794a6538cb39ce93ab05348 --- dialin/dg/ro_pump.py (.../ro_pump.py) (revision bff28676dd855ea33707bbb26a624abc94aebdf0) +++ dialin/dg/ro_pump.py (.../ro_pump.py) (revision 32c8b4b054a77b4ec794a6538cb39ce93ab05348) @@ -231,3 +231,43 @@ else: self.logger.debug("Timeout!!!!") return False + + def cmd_ro_pump_measured_feedback_pwm_override(self, pwm: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the feedback pwm override command. + Constraints: + Must be logged into DG. + Given RPM must be within 0.0 <= PWM <= 0.99 + + @param pwm: (float) pwm to override with + @param reset: (int) 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + """ + + rst = integer_to_bytearray(reset) + pwm = float_to_bytearray(pwm) + payload = rst + pwm + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=MsgIds.MSG_ID_DG_RO_FEEDBACK_VOLTAGE_OVERRIDE.value, + payload=payload) + + self.logger.debug("Override RO Pump measured Feedback PWM.") + + # Send message + received_message = self.can_interface.send(message) + + # If there is content... + if received_message is not None: + if reset == RESET: + str_res = "back to normal" + else: + str_res = str(pwm) + self.logger.debug( + "Feedback PWM has been overridden " + str_res + " % " + + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + # response payload is OK or not OK + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False \ No newline at end of file