import ctypes
from Grifo_E_1553lib.data_types.graphic_order import GraphicOrder
from Grifo_E_1553lib.data_types.time_to_go_to_cursor import TimeToGoToCursor
from Grifo_E_1553lib.data_types.waypoint_data import WaypointDataArray
from Grifo_E_1553lib.data_types.intercept import InterceprFlightDirectorXSelector, InterceprFlightDirectorY, Zone
from Grifo_E_1553lib.data_types.asec import ASECRadiusAndSelector
from Grifo_E_1553lib.data_types.attack_steering_cue import ASCXSelector,ASCY
from Grifo_E_1553lib.data_types.tracked_target_info import TrackedTargetInfo
from Grifo_E_1553lib.data_types.call_sign import CallSign
from Grifo_E_1553lib.data_types.track_id_of_ts_tracked_target import TrackIdOfTsTrackedTarget




class MsgGraphicSetting(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("graphic_order", GraphicOrder),
        ("time_to_go_to_cursor", TimeToGoToCursor),
        ("waypoint_1_data", WaypointDataArray),
        ("waypoint_2_data", WaypointDataArray),
        ("waypoint_3_data", WaypointDataArray),
        ("intercept_flight_director_x_selector", InterceprFlightDirectorXSelector),
        ("intercept_flight_director_y", InterceprFlightDirectorY),
        ("intercept_zone_rmin",Zone),
        ("intercept_zone_rmax",Zone),
        ("no_escape_zone_rmax",Zone),
        ("intercept_zone_target_tip",Zone),
        ("allowable_steering_error_circle_radius_blink", ASECRadiusAndSelector),
        ("attack_steering_cue_x_selector", ASCXSelector),
        ("attack_steering_cue_y", ASCY),
        ("tracked_target_info", TrackedTargetInfo),
        ("hpt_call_sign",CallSign ),
        ("spt_call_sign",CallSign ),
        ("track_id_of_ts_tracked_tgts_01_and_02", TrackIdOfTsTrackedTarget),
        ("track_id_of_ts_tracked_tgts_03_and_04", TrackIdOfTsTrackedTarget),
        ("track_id_of_ts_tracked_tgts_05_and_06", TrackIdOfTsTrackedTarget),
        ("track_id_of_ts_tracked_tgts_07_and_08", TrackIdOfTsTrackedTarget)

        

    ]

    def __init__(self):
        super().__init__()
        self.graphic_order = GraphicOrder()
        self.time_to_go_to_cursor = TimeToGoToCursor()
        self.waypoints = WaypointDataArray()
        
        
        
print(ctypes.sizeof(WaypointDataArray))