Index: leahi_dialin/common/override_templates.py =================================================================== diff -u -r7ce778dc51b7dba5a7a7ca14244ed7eea7bf029d -r1f2bf6d939eb4033dbedb7d7005494cc12fccbc6 --- leahi_dialin/common/override_templates.py (.../override_templates.py) (revision 7ce778dc51b7dba5a7a7ca14244ed7eea7bf029d) +++ leahi_dialin/common/override_templates.py (.../override_templates.py) (revision 1f2bf6d939eb4033dbedb7d7005494cc12fccbc6) @@ -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,18 +18,18 @@ 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 ..protocols.CAN import CanMessage, CanChannels from ..utils.checks import check_broadcast_interval_override_ms from ..utils.conversions import integer_to_bytearray -@staticmethod -def cmd_generic_broadcast_interval_override(ms: int, +def cmd_generic_broadcast_interval_override(*, + ms: int, reset: int, msg_id: MsgIds, - channel_id: DenaliChannels, + channel_id: CanChannels, module_name: str, logger: Logger, can_interface) -> int: @@ -42,39 +42,78 @@ @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 channel_id: Channels - 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 """ - - 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 - message = DenaliMessage.build_message(channel_id=channel_id, + 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: CanChannels, + 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: Channels - 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 = CanMessage.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 or reset 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 or reset is None: + str_res = f'not called' if reset is not None and reset == RESET else 'Called' + logger.debug(f'{entity_name} is {str_res} {str(received_message["message"][CanMessage.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"][CanMessage.PAYLOAD_START_INDEX])}') + # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + return received_message['message'][CanMessage.PAYLOAD_START_INDEX] else: logger.error("Timeout!!!!") return False