Index: leahi_dialin/common/override_templates.py =================================================================== diff -u -rfcb1efdc00c4679d0a3233c624d088de3a7fcf28 -r18c90a1b2b6c7339bdd192a2d2fac32f2b8a35df --- leahi_dialin/common/override_templates.py (.../override_templates.py) (revision fcb1efdc00c4679d0a3233c624d088de3a7fcf28) +++ leahi_dialin/common/override_templates.py (.../override_templates.py) (revision 18c90a1b2b6c7339bdd192a2d2fac32f2b8a35df) @@ -8,7 +8,7 @@ # @file override_templates.py # # @author (last) Zoltan Miskolci -# @date (last) 04-Dec-2025 +# @date (last) 08-Jan-2026 # @author (original) Zoltan Miskolci # @date (original) 04-Dec-2025 # @@ -18,14 +18,15 @@ from logging import Logger # Project imports -from .constants import RESET, NO_RESET +from .constants import RESET from .msg_defs import MsgIds from ..protocols.CAN import DenaliMessage, DenaliChannels from ..utils.checks import check_broadcast_interval_override_ms 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, @@ -47,31 +48,70 @@ @param can_interface: The can_interface @return: 1 if successful, zero otherwise """ - - if not check_broadcast_interval_override_ms(ms): + if not check_broadcast_interval_override_ms(ms, logger): return False reset_byte_array = integer_to_bytearray(reset) ms_byte_array = integer_to_bytearray(ms) payload = reset_byte_array + ms_byte_array + return cmd_generic_override( + payload = payload, + reset = reset, + 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 payload: bytearray - the actual payload + @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 entity_name: str - The entity's name that will be overriden to put into the debug prints + @param override_text: str - The value to be overriden with 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") + if payload is None: + logger.debug(f'Call command: {entity_name}') + else: + logger.debug(f'Override {entity_name} value') # Send message received_message = can_interface.send(message) # If there is content... if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " + if payload is None: + str_res = f'not called' if reset == RESET else 'Called' + logger.debug(f'{entity_name} is {str_res} {str(received_message["message"][DenaliMessage.PAYLOAD_START_INDEX])}') else: - str_res = str(ms) + " ms: " - logger.debug(f"{module_name} data broadcast interval overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str_res = f'its default value' if reset == RESET else 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] else: