Index: leahi_dialin/common/override_templates.py =================================================================== diff -u -rfcb1efdc00c4679d0a3233c624d088de3a7fcf28 -rc3153b8411388a9318d827ae42e830627cebc220 --- leahi_dialin/common/override_templates.py (.../override_templates.py) (revision fcb1efdc00c4679d0a3233c624d088de3a7fcf28) +++ leahi_dialin/common/override_templates.py (.../override_templates.py) (revision c3153b8411388a9318d827ae42e830627cebc220) @@ -25,7 +25,8 @@ from ..utils.conversions import integer_to_bytearray -def cmd_generic_broadcast_interval_override(ms: int, +def cmd_generic_broadcast_interval_override(*, + ms: int, reset: int, msg_id: MsgIds, channel_id: DenaliChannels, @@ -55,11 +56,46 @@ ms_byte_array = integer_to_bytearray(ms) payload = reset_byte_array + ms_byte_array + return cmd_generic_override( + payload = payload, + channel_id = channel_id, + msg_id = msg_id, + entity_name = f'{module_name} broadcast interval', + override_text = str(ms) + " ms: ", + logger = logger, + can_interface = can_interface + ) + + +def cmd_generic_override(*, + payload: bytearray, + reset: int, + msg_id: MsgIds, + channel_id: DenaliChannels, + entity_name: str, + override_text: str, + logger: Logger, + can_interface) -> int: + """ + Constructs and sends an override command + Constraints: + Must be logged into the corresponding Module. + + @param ms: integer - interval (in ms) to override with + @param reset: integer - 1 to reset a previous override, 0 to override + @param msg_id: MsgIds - The override's msg id + @param channel_id: DenaliChannels - The override's channel id + @param module_name: str - The module's name to put into the debug prints + @param logger: str - The logger for printing debug and error messages + @param can_interface: The can_interface + @return: 1 if successful, zero otherwise + """ + message = DenaliMessage.build_message(channel_id=channel_id, message_id=msg_id.value, payload=payload) - logger.debug(f"override {module_name} broadcast interval") + logger.debug(f"override {entity_name} value") # Send message received_message = can_interface.send(message) @@ -69,8 +105,8 @@ if reset == RESET: str_res = "reset back to normal: " else: - str_res = str(ms) + " ms: " - logger.debug(f"{module_name} data broadcast interval overridden to " + str_res + + str_res = override_text + logger.debug(f"{entity_name} is 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]