import ctypes from pymsc.lib1553.datatypes.navigation import Semicircle from pymsc.lib1553.datatypes.common_extra import LatLong class MsgA7Payload(ctypes.Structure): """Message A7: Data Link Targets (Message#1) - partial typed mapping. We'll map the validity word and the first five targets (X, Y, ground track) to typed fields. Remaining words remain placeholders. """ _pack_ = 1 _fields_ = [ ("dl_targets_validity", ctypes.c_uint16), # A7-01 # Target 01 ("t1_pos_x", Semicircle), # A7-02 ("t1_pos_y", Semicircle), # A7-03 ("t1_gnd_track", Semicircle), # A7-04 # Target 02 ("t2_pos_x", Semicircle), # A7-08 (approx mapping) ("t2_pos_y", Semicircle), ("t2_gnd_track", Semicircle), # Target 03 ("t3_pos_x", Semicircle), ("t3_pos_y", Semicircle), ("t3_gnd_track", Semicircle), # Target 04 ("t4_pos_x", Semicircle), ("t4_pos_y", Semicircle), ("t4_gnd_track", Semicircle), # Target 05 ("t5_pos_x", Semicircle), ("t5_pos_y", Semicircle), ("t5_gnd_track", Semicircle), ] + [(f"word_{i:02d}", ctypes.c_uint16) for i in range(17, 33)] def __init__(self): super().__init__()