""" Constants defining the NBUS protocol layout and addressing rules. These values are treated as immutable configuration parameters. """ from typing import Final # --- General sizes --- NBUS_RX_META_SIZE: Final = 4 NBUS_FMT_SIZE: Final = 4 NBUS_TS_SIZE: Final = 4 NBUS_CRC_SIZE: Final = 1 NBUS_MA_SIZE: Final = 1 NBUS_SA_SIZE: Final = 1 # --- Special addresses --- NBUS_BROADCAST_ADDR: Final = 0x00 NBUS_BRIDGE_ADDR: Final = 0xFF # --- Packet Index Positions --- NBUS_MA_ADDR: Final = 0 NBUS_SA_ADDR: Final = 1 NBUS_FC_ADDR: Final = 2 NBUS_DATA0_ADDR: Final = 3 NBUS_CRC_ADDR: Final = -1 # --- Bridge header --- NBUS_BRIDGE_DATA_HDR: Final = bytearray([0x00] + [0xFF] * 8 + [0x00]) NBUS_BRIDGE_DATA_HDR_SIZE: Final = len(NBUS_BRIDGE_DATA_HDR)