39 lines
1.3 KiB
Python
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__()
|