Index: leahi_dialin/fp/modules/flow_sensors.py =================================================================== diff -u -rad1d08ef189799e3f31dcf4e630c21d9f98c33d7 -r793bdf7874cacd0f85b11d684bedacc699232f08 --- leahi_dialin/fp/modules/flow_sensors.py (.../flow_sensors.py) (revision ad1d08ef189799e3f31dcf4e630c21d9f98c33d7) +++ leahi_dialin/fp/modules/flow_sensors.py (.../flow_sensors.py) (revision 793bdf7874cacd0f85b11d684bedacc699232f08) @@ -50,7 +50,7 @@ if self.can_interface is not None: channel_id = DenaliChannels.fp_sync_broadcast_ch_id - msg_id = MsgIds.MSG_ID_RO_FLOW_DATA.value + msg_id = MsgIds.MSG_ID_FP_FLOW_DATA.value self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_flow_sensor_sync) @@ -101,7 +101,7 @@ payload = reset_value + interval_value message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, - message_id=MsgIds.MSG_ID_RO_FLOWS_PUBLISH_INTERVAL_OVERRIDE_REQUEST.value, + message_id=MsgIds.MSG_ID_FP_FLOWS_PUBLISH_INTERVAL_OVERRIDE_REQUEST.value, payload=payload) self.logger.debug("Sending {} ms publish interval to the FP flow sensor module".format(ms)) @@ -128,10 +128,10 @@ """ reset_value = integer_to_bytearray(reset) lvl = integer_to_bytearray(flow_sensor) - sts = float_to_bytearray(rate) + sts = integer_to_bytearray(rate) payload = reset_value + sts + lvl message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, - message_id=MsgIds.MSG_ID_RO_FLOW_RATE_OVERRIDE_REQUEST.value, + message_id=MsgIds.MSG_ID_FP_FLOW_RATE_OVERRIDE_REQUEST.value, payload=payload) # Send message @@ -160,7 +160,7 @@ sts = float_to_bytearray(temp) payload = reset_value + sts + lvl message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, - message_id=MsgIds.MSG_ID_RO_FLOW_TEMP_OVERRIDE_REQUEST.value, + message_id=MsgIds.MSG_ID_FP_FLOW_TEMP_OVERRIDE_REQUEST.value, payload=payload) # Send message @@ -172,4 +172,62 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.debug("Timeout!!!!") + return False + + def cmd_filtered_flow_rate_override(self, flow_sensor: int, rate: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends filtered flow rate override command. + Must be logged into FP. + + @param flow_sensor: integer - the sensor to override its value. + @param rate: integer - the rate value to override. + @param reset: integer - 1 to reset a previous override, 0 to override + @returns 1 if successful, zero otherwise + """ + reset_value = integer_to_bytearray(reset) + lvl = integer_to_bytearray(flow_sensor) + sts = float_to_bytearray(rate) + payload = reset_value + sts + lvl + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, + message_id=MsgIds.MSG_ID_FP_FILTERED_FLOW_RATE_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 + + def cmd_filtered_flow_temp_override(self, flow_sensor: int, temp: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends filtered flow temp override command. + Must be logged into FP. + + @param flow_sensor: integer - the sensor to override its value + @param temp: float - the temperature value to override + @param reset: integer - 1 to reset a previous override, 0 to override + @returns 1 if successful, zero otherwise + """ + reset_value = integer_to_bytearray(reset) + lvl = integer_to_bytearray(flow_sensor) + sts = float_to_bytearray(temp) + payload = reset_value + sts + lvl + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, + message_id=MsgIds.MSG_ID_FP_FILTERED_FLOW_TEMP_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