Index: leahi_dialin/ro/modules/levels.py =================================================================== diff -u -r3c967e5acc6286c6334d2708600e3317988f87f1 -r270356fb1edd1ea15b16cb322d36f5558e84cc47 --- leahi_dialin/ro/modules/levels.py (.../levels.py) (revision 3c967e5acc6286c6334d2708600e3317988f87f1) +++ leahi_dialin/ro/modules/levels.py (.../levels.py) (revision 270356fb1edd1ea15b16cb322d36f5558e84cc47) @@ -23,8 +23,16 @@ 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 +from leahi_dialin.utils.conversions import integer_to_bytearray +@unique +class ROFloaterLevels(DialinEnum): + LEVEL_STATE_LOW = 0 + LEVEL_STATE_HIGH = 1 + LEVEL_STATE_MEDIUM = 2 + LEVEL_STATE_ILLEGAL = 3 + + class ROLevels(AbstractSubSystem): """ @@ -66,7 +74,7 @@ def cmd_levels_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ - Constructs and sends broadcast time interval. + Constructs and sends RO level data broadcast time interval override message. Constraints: Must be logged into RO. Given interval must be non-zero and a multiple of the RO general task interval (50 ms). @@ -86,7 +94,7 @@ message_id=MsgIds.MSG_ID_RO_LEVELS_PUBLISH_INTERVAL_OVERRIDE_REQUEST.value, payload=payload) - self.logger.debug("Sending {} ms publish interval to the Levels module".format(ms)) + self.logger.debug("Sending {} ms publish interval override for floater level data".format(ms)) # Send message received_message = self.can_interface.send(message) @@ -98,21 +106,18 @@ self.logger.debug("Timeout!!!!") return False - def cmd_level_status_override(self, level_sensor: int, status: int, reset: int = NO_RESET) -> int: + def cmd_level_state_override(self, level: int, reset: int = NO_RESET) -> int: """ - Constructs and sends level status override command + Constructs and sends level state override command Must be logged into RO - - @param level_sensor the level sensor to override its value - @param status the status value to override + @param level the floater level value to override (0=low, 1=high, 2=medium) @param reset: (int) 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(level_sensor) - sts = integer_to_bytearray(status) - payload = reset_value + sts + lvl + lvl = integer_to_bytearray(level) + payload = reset_value + lvl message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_ro_ch_id, message_id=MsgIds.MSG_ID_RO_LEVELS_STATUS_OVERRIDE_REQUEST.value, payload=payload)