SXXXXXXX_PyMsc/pymsc/lib1553/messages/a7_data_link_targets_1.py
2025-12-10 11:47:46 +01:00

39 lines
1.3 KiB
Python

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__()