Index: leahi_dialin/fp/modules/flow_sensors.py =================================================================== diff -u -r77740bc2ccace473a471515cadd4bc1353360cd6 -re7d16bd6881619e5fc2a0bc1a7fd578a9978498e --- leahi_dialin/fp/modules/flow_sensors.py (.../flow_sensors.py) (revision 77740bc2ccace473a471515cadd4bc1353360cd6) +++ leahi_dialin/fp/modules/flow_sensors.py (.../flow_sensors.py) (revision e7d16bd6881619e5fc2a0bc1a7fd578a9978498e) @@ -19,6 +19,7 @@ from .constants import RESET, NO_RESET from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions +from leahi_dialin.common.fp_defs import FPFlowSensorNames, FPFlowSensorAttributesEnum from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish, DialinEnum from leahi_dialin.utils.checks import check_broadcast_interval_override_ms @@ -47,31 +48,34 @@ 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) + self.fp_flows = { + FPFlowSensorNames.P7_FLOW.name: { + FPFlowSensorAttributesEnum.FLOW.name: 0.0, + FPFlowSensorAttributesEnum.TEMP.name: 0.0 + }, + FPFlowSensorNames.P16_FLOW.name: { + FPFlowSensorAttributesEnum.FLOW.name: 0.0, + FPFlowSensorAttributesEnum.TEMP.name: 0.0 + } + } - self.p7_flow = 0.0 - self.p16_flow = 0.0 - self.p7_temp = 0.0 - self.p16_temp = 0.0 - self.fp_flow_timestamp = 0 - @publish(["fp_flows_timestamp", - "p7_flow", "p16_flow", - "p7_temp", "p16_temp"]) + @publish(["fp_flows_timestamp", "fp_flows"]) def _handler_flow_sensor_sync(self, message, timestamp=0.0): """ Handles published flow sensor message @param message: published flow sensor data message @returns none """ - self.p7_flow = struct.unpack('f', bytearray( + self.fp_flows[FPFlowSensorNames.P7_FLOW.name][FPFlowSensorAttributesEnum.FLOW.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.p16_flow = struct.unpack('f', bytearray( + self.fp_flows[FPFlowSensorNames.P16_FLOW.name][FPFlowSensorAttributesEnum.FLOW.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.p7_temp = struct.unpack('f', bytearray( + self.fp_flows[FPFlowSensorNames.P7_FLOW.name][FPFlowSensorAttributesEnum.TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.p16_temp = struct.unpack('f', bytearray( + self.fp_flows[FPFlowSensorNames.P16_FLOW.name][FPFlowSensorAttributesEnum.TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] self.fp_flow_timestamp = timestamp