Index: leahi_dialin/fp/modules/pressure_sensors.py =================================================================== diff -u -r68422d08c4141999a13496343264483a32314d37 -r7628b7a718a1b52c33f58a6003ef13cba4db5e5d --- leahi_dialin/fp/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 68422d08c4141999a13496343264483a32314d37) +++ leahi_dialin/fp/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 7628b7a718a1b52c33f58a6003ef13cba4db5e5d) @@ -36,7 +36,6 @@ X2_PRES = 6 X3_PRES = 7 X4_PRES = 8 - X5_PRES = 9 class FPPressureSensors(AbstractSubSystem): @@ -69,7 +68,6 @@ self.x2_pres = 0.0 self.x3_pres = 0.0 self.x4_pres = 0.0 - self.x5_pres = 0.0 self.m1_pres_temp = 0.0 self.m3_pres_temp = 0.0 self.p8_pres_temp = 0.0 @@ -79,13 +77,12 @@ self.x2_pres_temp = 0.0 self.x3_pres_temp = 0.0 self.x4_pres_temp = 0.0 - self.x5_pres_temp = 0.0 @publish([ "fp_pressure_timestamp", "m1_pres", "m3_pres", "p8_pres", "p13_pres", "p17_pres", - "x1_pres", "x2_pres", "x3_pres", "x4_pres", "x5_pres", + "x1_pres", "x2_pres", "x3_pres", "x4_pres", "m1_pres_temp", "m3_pres_temp", "p8_pres_temp", "p13_pres_temp", "p17_pres_temp", - "x1_pres_temp", "x2_pres_temp", "x3_pres_temp", "x4_pres_temp", "x5_pres_temp", + "x1_pres_temp", "x2_pres_temp", "x3_pres_temp", "x4_pres_temp", ]) def _handler_pressure_sync(self, message, timestamp=0.0): """ @@ -114,29 +111,25 @@ message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] self.x4_pres = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] - self.x5_pres = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] self.m1_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] self.m3_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11]))[0] self.p8_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12]))[0] self.p13_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_14]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13]))[0] self.p17_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_15:MsgFieldPositions.END_POS_FIELD_15]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_14]))[0] self.x1_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_16:MsgFieldPositions.END_POS_FIELD_16]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_15:MsgFieldPositions.END_POS_FIELD_15]))[0] self.x2_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_17:MsgFieldPositions.END_POS_FIELD_17]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_16:MsgFieldPositions.END_POS_FIELD_16]))[0] self.x3_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_18:MsgFieldPositions.END_POS_FIELD_18]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_17:MsgFieldPositions.END_POS_FIELD_17]))[0] self.x4_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_19:MsgFieldPositions.END_POS_FIELD_19]))[0] - self.x5_pres_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_20:MsgFieldPositions.END_POS_FIELD_20]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_18:MsgFieldPositions.END_POS_FIELD_18]))[0] self.fp_pressure_timestamp = timestamp @@ -221,4 +214,38 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.debug("Timeout!!!!") + return False + + def cmd_pressure_temperature_override(self, sensor: int, temperature: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the pressure temperature override command. + Constraints: + Must be logged into FP. + + @param sensor: unsigned int - sensor ID + @param temperature: float - temperature in C + @param reset: integer - 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + """ + + rst = integer_to_bytearray(reset) + tmp = float_to_bytearray(temperature) + idx = integer_to_bytearray(sensor) + payload = rst + tmp + idx + + 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("override pressure temperature") + + # 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.debug("Timeout!!!!") return False \ No newline at end of file