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

26 lines
1.3 KiB
Python

import ctypes
from ..datatypes.radar_common import RdrOperationalSettings, Frequency
# Importare altri datatypes necessari (Beacon, ACIdentifier...)
class MsgA1Payload(ctypes.Structure):
"""
Payload structure for Message A1: Radar Operational Settings.
OLD implementation size: 22 bytes
Fields: settings(2) + frequency(2) + beacon(2) + rf_channels(2) +
ac_identifier(2) + date(2) + time(2) + param_id(2) + param_value(4)
"""
_pack_ = 1
_fields_ = [
("settings", RdrOperationalSettings), # 2 bytes
("frequency", ctypes.c_uint32), # 4 bytes (OLD uses 4 bytes for Frequency!)
("beacon", ctypes.c_uint16), # 2 bytes
("rf_channels_grouping", ctypes.c_uint16), # 2 bytes
("ac_identifier", ctypes.c_uint16), # 2 bytes
("date_of_mission", ctypes.c_uint16), # 2 bytes
("time_of_mission", ctypes.c_uint16), # 2 bytes
("param_id", ctypes.c_uint16), # 2 bytes
("param_value", ctypes.c_uint32), # 4 bytes
] # Total: 22 bytes
# Nota: Non definiamo la classe "A1" qui che eredita da BaseMessage.
# Quella la instanzieremo nel Core o in un file di configurazione missione.