Index: leahi_dialin/dd/modules/heaters.py =================================================================== diff -u -reff35c7c93f5a6f24510f54bcaa7e32011ecd92e -rc911f3b6e212249136baf0e45b614a2f5be2b190 --- leahi_dialin/dd/modules/heaters.py (.../heaters.py) (revision eff35c7c93f5a6f24510f54bcaa7e32011ecd92e) +++ leahi_dialin/dd/modules/heaters.py (.../heaters.py) (revision c911f3b6e212249136baf0e45b614a2f5be2b190) @@ -67,8 +67,8 @@ self.can_interface = can_interface self.logger = logger - self.main_primary_heater_duty_cycle = 0 - self.trimmer_heater_duty_cycle = 0 + self.main_primary_heater_duty_cycle = 0.0 + self.trimmer_heater_duty_cycle = 0.0 self.primary_heaters_target_temperature = 0.0 self.trimmer_heater_target_temperature = 0.0 self.primary_heater_state = 0 @@ -180,10 +180,9 @@ def cmd_heater_start_stop_override(self, heater: int, command: int, temperature: float) -> int: """ - Constructs and sends heater duty cycle override command - Must be logged into DG - There must be a minimum flow available for the heaters (FMP for primary and FMD for trimmer) + Constructs and sends heater start stop override + @param heater the heater to override its value (primary, trimmer) (0-1.0 order) @param command the heater to start or stop @param temperature: float - temp to set to @@ -192,7 +191,7 @@ htr = integer_to_bytearray(heater) cmd = integer_to_bytearray(command) tmp = float_to_bytearray(temperature) - payload = tmp + cmd + htr + payload = htr + cmd + tmp message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, message_id=MsgIds.MSG_ID_DD_HEATERS_START_STOP_OVERRIDE_REQUEST.value, @@ -209,3 +208,31 @@ self.logger.debug("Timeout!!!!") return False + def cmd_heater_target_temperature_override(self, heater: int, temperature: float, reset: int) -> int: + """ + Constructs and sends heater set target temperture override + + @param heater the heater to override its value (primary, trimmer) (0-1.0 order) + @param temperature: float - temp to set to + @param reset: (int) 1 to reset a previous override, 0 to override + @returns 1 if successful, zero otherwise + """ + htr = integer_to_bytearray(heater) + tmp = float_to_bytearray(temperature) + rst = integer_to_bytearray(reset) + payload = rst + tmp + htr + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_HEATERS_TARGET_TEMPERATURE_OVERRIDE_REQUEST.value, + payload=payload) + + # Send message + received_message = self.can_interface.send(message) + + # If there is content in message + if received_message is not None: + # Response payload is OK or not + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False \ No newline at end of file