Index: leahi_dialin/fp/modules/temperatures.py =================================================================== diff -u -r68422d08c4141999a13496343264483a32314d37 -r7628b7a718a1b52c33f58a6003ef13cba4db5e5d --- leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision 68422d08c4141999a13496343264483a32314d37) +++ leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision 7628b7a718a1b52c33f58a6003ef13cba4db5e5d) @@ -113,4 +113,40 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.debug("Timeout!!!!") + return False + + def cmd_temperatures_value_override(self, sensor_index: int, sensor_value: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the value override of a temperature sensor. + Constraints: + Must be logged into FP. + Given sensor_index must be one of the sensors listed below. + + @param sensor_index : (int) Index of the sensor + @param sensor_value: (float) Value of the sensor to override + @param reset: (int) whether to reset the override value. The default is NO_RESET + @returns 1 if successful, zero otherwise + + """ + rst = integer_to_bytearray(reset) + value = float_to_bytearray(sensor_value) + index = integer_to_bytearray(sensor_index) + + payload = rst + value + index + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, + message_id=MsgIds.MSG_ID_FP_TEMPERATURE_OVERRIDE_REQUEST.value, + payload=payload) + + self.logger.debug("Setting sensor {} to {} C".format(sensor_index, sensor_value)) + + # 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