SXXXXXXX_PyMsc/tests/test_message_sizes.py
2025-12-10 11:47:46 +01:00

43 lines
1.6 KiB
Python

import sys
import os
import ctypes
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
if ROOT not in sys.path:
sys.path.insert(0, ROOT)
from pymsc.lib1553.messages.a1_settings import MsgA1Payload
from pymsc.lib1553.messages.a2_operation_command import MsgA2Payload
from pymsc.lib1553.messages.a3_graphic_setting import MsgA3Payload
from pymsc.lib1553.messages.a4_nav_data_and_cursor import MsgA4Payload
from pymsc.lib1553.messages.a7_data_link_targets_1 import MsgA7Payload
from pymsc.lib1553.messages.a8_data_link_targets_2 import MsgA8Payload
from pymsc.lib1553.messages.b2_tws_targets_3_4_5 import MsgB2Payload
from pymsc.lib1553.messages.b4_spt_target import MsgB4Payload
from pymsc.lib1553.messages.tws_status_and_targets import TwsStatusAndTargets0102
def test_payload_sizes():
# Expected sizes (words*2) — these are based on current best-effort mappings
expected = {
'A1': 16, # bytes
'A2': 6,
'A3': 64,
'A4': 62,
'A7': 64,
'A8': 64,
'B2': 70,
'B4': 66,
'B1': 94,
}
assert ctypes.sizeof(MsgA1Payload) == expected['A1']
assert ctypes.sizeof(MsgA2Payload) == expected['A2']
assert ctypes.sizeof(MsgA3Payload) == expected['A3']
assert ctypes.sizeof(MsgA4Payload) == expected['A4']
assert ctypes.sizeof(MsgA7Payload) == expected['A7']
assert ctypes.sizeof(MsgA8Payload) == expected['A8']
assert ctypes.sizeof(MsgB2Payload) == expected['B2']
assert ctypes.sizeof(MsgB4Payload) == expected['B4']
assert ctypes.sizeof(TwsStatusAndTargets0102) == expected['B1']