Index: leahi_dialin/dd/modules/heaters.py =================================================================== diff -u -rec875ed5c87bc2896ca162774ff4ad449b0a88a3 -r951bd79131f9c5dd0e62d40a2101815100cdb787 --- leahi_dialin/dd/modules/heaters.py (.../heaters.py) (revision ec875ed5c87bc2896ca162774ff4ad449b0a88a3) +++ leahi_dialin/dd/modules/heaters.py (.../heaters.py) (revision 951bd79131f9c5dd0e62d40a2101815100cdb787) @@ -261,4 +261,34 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.debug("Timeout!!!!") + return False + + + def cmd_heater_pwm_period_override(self, heater: int, period: float, reset: int) -> int: + """ + Constructs and sends heater pwm period override + + @param heater the heater to override its value (primary, trimmer) (0-1.0 order) + @param period: float - period 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) + prd = float_to_bytearray(period) + rst = integer_to_bytearray(reset) + payload = rst + prd + htr + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_HEATERS_PWM_PERIOD_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