Index: leahi_dialin/ro/modules/flow_sensors.py =================================================================== diff -u -re4d1e640a8d9dfc49522a4f49fe7fee9ec9125da -r7ae7087e830140ab07b841b2c0ff437269a5fc2f --- leahi_dialin/ro/modules/flow_sensors.py (.../flow_sensors.py) (revision e4d1e640a8d9dfc49522a4f49fe7fee9ec9125da) +++ leahi_dialin/ro/modules/flow_sensors.py (.../flow_sensors.py) (revision 7ae7087e830140ab07b841b2c0ff437269a5fc2f) @@ -27,14 +27,14 @@ @unique class ROFlowSensorNames(DialinEnum): - FLOW_SENSOR_WATER_INLET = 0 # Water inlet flow sensor (FMS P7) - FLOW_SENSOR_RO_OUTLET = 1 # RO outlet flow sensor (FMP P16) + P7_FLOW_SENSOR_WATER_INLET = 0 # Water inlet flow sensor (FMS P7) + P16_FLOW_SENSOR_RO_OUTLET = 1 # RO outlet flow sensor (FMP P16) class ROFlowSensors(AbstractSubSystem): """ - Reverse Osmosis (RO) Dialin API sub-class for flow sensor related commands. + Dialin API sub-class for flow sensor related commands. """ def __init__(self, can_interface, logger: Logger): @@ -54,37 +54,37 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_flow_sensor_sync) - self.flowFMS = 0.0 - self.flowFMP = 0.0 - self.tempFMS = 0.0 - self.tempFMP = 0.0 + self.p7_flowFMS = 0.0 + self.p16_flowFMP = 0.0 + self.p7_tempFMS = 0.0 + self.p16_tempFMP = 0.0 self.ro_flow_timestamp = 0 @publish(["ro_levels_timestamp", - "flowFMS", "flowFMP", - "tempFMS", "tempFMP"]) + "p7_flowFMS", "p16_flowFMP", + "p7_tempFMS", "p16_tempFMP"]) def _handler_flow_sensor_sync(self, message, timestamp=0.0): """ Handles published flow sensor message - @param message: published levels data message + @param message: published flow sensor data message @returns none """ - self.flowFMS = struct.unpack('f', bytearray( + self.p7_flowFMS = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.flowFMP = struct.unpack('f', bytearray( + self.p16_flowFMP = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.tempFMS = struct.unpack('f', bytearray( + self.p7_tempFMS = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.tempFMP = struct.unpack('f', bytearray( + self.p16_tempFMP = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - self.ro_levels_timestamp = timestamp + self.ro_flow_timestamp = timestamp def cmd_flow_sensor_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ - Constructs and sends broadcast time interval. + Constructs and sends RO flow sensor broadcast time interval override. Constraints: Must be logged into RO. Given interval must be non-zero and a multiple of the RO general task interval (50 ms). @@ -104,7 +104,7 @@ message_id=MsgIds.MSG_ID_RO_FLOWS_PUBLISH_INTERVAL_OVERRIDE_REQUEST.value, payload=payload) - self.logger.debug("Sending {} ms publish interval to the flow sensor module".format(ms)) + self.logger.debug("Sending {} ms publish interval to the RO flow sensor module".format(ms)) # Send message received_message = self.can_interface.send(message) @@ -118,13 +118,12 @@ def cmd_flow_rate_override(self, flow_sensor: int, rate: int, reset: int = NO_RESET) -> int: """ - Constructs and sends flow rate override command - Must be logged into RO + Constructs and sends flow rate override command. + Must be logged into RO. - - @param flow_sensor the sensor to override its value - @param rate the rate value to override - @param reset: (int) 1 to reset a previous override, 0 to override + @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) @@ -146,15 +145,14 @@ self.logger.debug("Timeout!!!!") return False - def cmd_flow_temp_override(self, flow_sensor: int, temp: int, reset: int = NO_RESET) -> int: + def cmd_flow_temp_override(self, flow_sensor: int, temp: float, reset: int = NO_RESET) -> int: """ - Constructs and sends flow temp override command - Must be logged into RO + Constructs and sends flow temp override command. + Must be logged into RO. - - @param flow_sensor the sensor to override its value - @param temp the rate value to override - @param reset: (int) 1 to reset a previous override, 0 to override + @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)