Index: leahi_dialin/dd/modules/levels.py =================================================================== diff -u -r9466b5c6b5867f392104a42608aa9542a7ff0358 -rbeb046149da1b7cf85dbdadb500467490f350fb8 --- leahi_dialin/dd/modules/levels.py (.../levels.py) (revision 9466b5c6b5867f392104a42608aa9542a7ff0358) +++ leahi_dialin/dd/modules/levels.py (.../levels.py) (revision beb046149da1b7cf85dbdadb500467490f350fb8) @@ -20,17 +20,12 @@ from .constants import NO_RESET from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions +from leahi_dialin.common.dd_defs import DDLevelSensorEnum 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 from leahi_dialin.utils.conversions import integer_to_bytearray, float_to_bytearray -@unique -class DDLevelSensorEnum(DialinEnum): - D6_LEVEL = 0 # floater switch low, medium and high status - D63_LEVEL = 1 # bicarb level low or high status - D46_LEVEL = 2 # Spent dialysate air separation chamber level low or high status - NUM_OF_LEVELS = 3 class DDLevels(AbstractSubSystem): """ @@ -54,28 +49,27 @@ msg_id = MsgIds.MSG_ID_DD_LEVEL_DATA.value self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_levels_sync) - self.d6_level = 0 - self.d63_level = 0 - self.d46_level = 0 self.dd_levels_timestamp = 0 + self.dd_level_sensors = { + DDLevelSensorEnum.D6_LEVEL.name: 0, + DDLevelSensorEnum.D63_LEVEL.name: 0, + DDLevelSensorEnum.D46_LEVEL.name: 0 + } - @publish(["dd_levels_timestamp", - "d6_level", - "d63_level", - "d46_level"]) + @publish(["dd_levels_timestamp", "dd_level_sensor"]) def _handler_levels_sync(self, message, timestamp=0.0): """ Handles published levels message @param message: published levels data message @returns none """ - self.d6_level = struct.unpack('i', bytearray( + self.dd_level_sensors[DDLevelSensorEnum.D6_LEVEL.name] = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.d63_level = struct.unpack('i', bytearray( + self.dd_level_sensors[DDLevelSensorEnum.D63_LEVEL.name] = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.d46_level = struct.unpack('i', bytearray( + self.dd_level_sensors[DDLevelSensorEnum.D46_LEVEL.name] = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] self.dd_levels_timestamp = timestamp