Index: leahi_dialin/ro/modules/conductivity_sensors.py =================================================================== diff -u -r4afd0ae756011a97b6eda06e03117dde2b940bed -r7ae7087e830140ab07b841b2c0ff437269a5fc2f --- leahi_dialin/ro/modules/conductivity_sensors.py (.../conductivity_sensors.py) (revision 4afd0ae756011a97b6eda06e03117dde2b940bed) +++ leahi_dialin/ro/modules/conductivity_sensors.py (.../conductivity_sensors.py) (revision 7ae7087e830140ab07b841b2c0ff437269a5fc2f) @@ -27,14 +27,12 @@ @unique class ROConductivitySensorsEnum(DialinEnum): - CPI = 0 # CPi (P9) conductivity sensor value - CPO = 1 # CPo (P18) conductivity sensor value + P9_CPI = 0 # CPi (P9) conductivity sensor value + P18_CPO = 1 # CPo (P18) conductivity sensor value class ROConductivitySensors(AbstractSubSystem): """ - ConductivitySensors - - Reverse Osmosis (RO) Dialin API sub-class for conductivity sensors related commands. + Dialin API sub-class for conductivity sensors related commands. """ def __init__(self, can_interface, logger: Logger): @@ -53,33 +51,26 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_conductivity_sensors_sync) - self.cpi_conductivity = 0.0 - self.cpo_conductivity = 0.0 - self.cpi_temp = 0.0 - self.cpo_temp = 0.0 + self.p9_cpi_conductivity = 0.0 + self.p18_cpo_conductivity = 0.0 self.ro_conductivity_timestamp = 0.0 @publish(["ro_conductivity_timestamp", - "cpi_conductivity", "cpo_conductivity", - "cpi_temp", "cpo_temp",]) + "p9_cpi_conductivity", "p18_cpo_conductivity"]) def _handler_conductivity_sensors_sync(self, message, timestamp=0.0): """ - Handles published conductivity sensor data messages. Conductivity sensor data are captured + Handles published RO conductivity sensor data messages. Conductivity sensor data are captured for reference. @param message: published conductivity sensor data message @return: None """ - self.cpi_conductivity = struct.unpack('f', bytearray( + self.p9_cpi_conductivity = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.cpo_conductivity = struct.unpack('f', bytearray( + self.p18_cpo_conductivity = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.cpi_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.cpo_temp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] self.ro_conductivity_timestamp = timestamp @@ -88,7 +79,7 @@ Constructs and sends the conductivity sensor data broadcast interval override command Constraints: Must be logged into RO. - Given interval must be non-zero and a multiple of the DG general task interval (50 ms). + Given interval must be non-zero and a multiple of the RO general task interval (50 ms). @param ms: integer - interval (in ms) to override with @param reset: integer - 1 to reset a previous override, 0 to override @@ -117,7 +108,7 @@ str_res = "reset back to normal: " else: str_res = str(ms) + " ms: " - self.logger.debug("Conductivity sensor data broadcast interval overridden to " + str_res + + self.logger.debug("RO Conductivity sensor data broadcast interval overridden to " + str_res + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] @@ -127,7 +118,9 @@ def cmd_conductivity_sensor_readings_override(self, sensor: int, conductivity: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the conductivity value override command + Constructs and sends the RO conductivity value override command. + Constraints: + Must be logged into RO. @param sensor: unsigned int - sensor ID @param conductivity: float - conductivity value to override sensor with @@ -149,7 +142,7 @@ str_res = "reset back to normal" else: str_res = str(conductivity) + " microsiemens/cm" - self.logger.debug("override conductivity sensor value for sensor " + str(sensor) + ": " + str_res) + self.logger.debug("override RO conductivity sensor value for sensor " + str(sensor) + ": " + str_res) # Send message received_message = self.can_interface.send(message) @@ -162,49 +155,12 @@ self.logger.error("Timeout!!!!") return False - def cmd_conductivity_sensor_temperature_override(self, sensor: int, temperature: float, reset: int = NO_RESET) -> int: - """ - Constructs and sends the conductivity value override command - - @param sensor: unsigned int - sensor ID - @param temperature: float - conductivity value to override sensor with - @param reset: integer - 1 to reset a previous override, 0 to override - @return: 1 if successful, zero otherwise - - """ - - reset_byte_array = integer_to_bytearray(reset) - temp_byte_array = float_to_bytearray(temperature) - sensor_byte_array = integer_to_bytearray(sensor) - payload = reset_byte_array + temp_byte_array + sensor_byte_array - - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_ro_ch_id, - message_id=MsgIds.MSG_ID_RO_CONDUCTIVITY_TEMP_OVERRIDE_REQUEST.value, - payload=payload) - - if reset == RESET: - str_res = "reset back to normal" - else: - str_res = str(temperature) - self.logger.debug("override conductivity sensor value for sensor " + str(sensor) + ": " + str_res) - - # 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.error("Timeout!!!!") - return False - def cmd_conductivity_sensor_read_counter_override(self, sensor: int, counter: int, reset: int = NO_RESET) -> int: """ - Constructs and sends the conductivity value override command + Constructs and sends the RO conductivity sensor read override command @param sensor: unsigned int - sensor ID - @param counter: float - conductivity value to override sensor with + @param counter: counter - count value to override sensor with @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise @@ -223,7 +179,7 @@ str_res = "reset back to normal" else: str_res = str(counter) - self.logger.debug("override conductivity sensor value for sensor " + str(sensor) + ": " + str_res) + self.logger.debug("override RO conductivity sensor value for sensor " + str(sensor) + ": " + str_res) # Send message received_message = self.can_interface.send(message) @@ -238,10 +194,10 @@ def cmd_conductivity_sensor_error_counter_override(self, sensor: int, counter: int, reset: int = NO_RESET) -> int: """ - Constructs and sends the conductivity value override command + Constructs and sends the RO conductivity error counter override command @param sensor: unsigned int - sensor ID - @param counter: float - conductivity value to override sensor with + @param counter: counter - count value to override error counter @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise @@ -260,7 +216,7 @@ str_res = "reset back to normal" else: str_res = str(counter) - self.logger.debug("override conductivity sensor value for sensor " + str(sensor) + ": " + str_res) + self.logger.debug("override RO conductivity sensor value for sensor " + str(sensor) + ": " + str_res) # Send message received_message = self.can_interface.send(message)