#ifndef G346_A3_H
#define G346_A3_H

#include "ads_data.h"

class McsG346BullsEye: public AdsLogicData
{
  Q_OBJECT
  Q_ENUMS(bulls_eye_t)

public:
      enum bulls_eye_t
      {
        NO_BULLS_EYE=0,
        WAYPOINT_01,
        WAYPOINT_02,
        WAYPOINT_03
      };

    McsG346BullsEye(const char* const name=0): AdsLogicData(name) {}
};

class McsG346WaypointQual: public AdsLogicData
{
  Q_OBJECT
  Q_ENUMS(waypoint_qual_t)

public:
      enum waypoint_qual_t
      {
        LEFT=0,
        RIGHT,
        DTK,
        MARK
      };

    McsG346WaypointQual(const char* const name=0): AdsLogicData(name) {}
};

class McsG346WaypointFyt: public AdsLogicData
{
  Q_OBJECT
  Q_ENUMS(waypoint_fyt_t)

public:
      enum waypoint_fyt_t
      {
        WAYPOINT=0,
        FYT
      };

    McsG346WaypointFyt(const char* const name=0): AdsLogicData(name) {}
};

class McsG346IntModeSel: public AdsLogicData
{
  Q_OBJECT
  Q_ENUMS(int_mode_sel_t)

public:
      enum int_mode_sel_t
      {
        REAR=0,
        ALL
      };

    McsG346IntModeSel(const char* const name=0): AdsLogicData(name) {}
};

class McsG346IFDModeSel: public AdsLogicData
{
  Q_OBJECT
  Q_ENUMS(ifd_mode_sel_t)

public:
      enum ifd_mode_sel_t
      {
        NORMAL=0,
        DASHED
      };

    McsG346IFDModeSel(const char* const name=0): AdsLogicData(name) {}
};

class McsG346ModeSel: public AdsLogicData
{
  Q_OBJECT
  Q_ENUMS(mode_sel_t)

public:
      enum mode_sel_t
      {
        NORMAL=0,
        BLINK
      };

    McsG346ModeSel(const char* const name=0): AdsLogicData(name) {}
};

class McsG346FriendFoeSel: public AdsLogicData
{
  Q_OBJECT
  Q_ENUMS(friend_foe_t)

public:
      enum friend_foe_t
      {
        FRIEND=0,
        FOE
      };

    McsG346FriendFoeSel(const char* const name=0): AdsLogicData(name) {}
};

class GrifoMsg_A3
{
public:
  GrifoMsg_A3();

public:
    struct WaypointInfo
    {
        AdsLogicData dWayPoint;
        AdsLogicData dWaypointLat;
        AdsLogicData dWaypointLon;
        AdsLogicData dWaypointCode;
        McsG346WaypointFyt dWaypointFytSel;
        AdsLogicData dWaypointQualValidity;
        McsG346WaypointQual dWaypointQualValue;
    };

    //AdsLogicData dWayPoint1;
    //AdsLogicData dWayPoint2;
    //AdsLogicData dWayPoint3;
    AdsLogicData dIntFlightDirector;
    AdsLogicData dBreakAwayCue;
    AdsLogicData dIntZonesAndTgtTip;
    AdsLogicData dTimeToGoToCursor;
    AdsLogicData dAllowableSteeringErrorCircle;
    AdsLogicData dAttackSteeringCue;

    McsG346BullsEye dBullsEye;

    AdsLogicData dTimeToGoToCursorValue;
#if 0
    AdsLogicData dWaypoint1Lat;
    AdsLogicData dWaypoint1Lon;
    AdsLogicData dWaypoint1Code;
    McsG346WaypointFyt dWaypoint1FytSel;
    AdsLogicData dWaypoint1QualValidity;
    McsG346WaypointQual dWaypoint1QualValue;

    AdsLogicData dWaypoint2Lat;
    AdsLogicData dWaypoint2Lon;
    AdsLogicData dWaypoint2Code;
    McsG346WaypointFyt dWaypoint2FytSel;
    AdsLogicData dWaypoint2QualValidity;
    McsG346WaypointQual dWaypoint2QualValue;

    AdsLogicData dWaypoint3Lat;
    AdsLogicData dWaypoint3Lon;
    AdsLogicData dWaypoint3Code;
    McsG346WaypointFyt dWaypoint3FytSel;
    AdsLogicData dWaypoint3QualValidity;
    McsG346WaypointQual dWaypoint3QualValue;
#endif
    WaypointInfo waypoints[3];

    McsG346IntModeSel dIntModeSel;
    McsG346IFDModeSel dIFDModeSel;
    McsG346ModeSel dAscModeSel;
    McsG346ModeSel dAsecModelSel;
    AdsLogicData dIFDX;
    AdsLogicData dIFDY;
    AdsLogicData dRMinInt;
    AdsLogicData dRMaxInt;
    AdsLogicData dNoEscapeY;
    AdsLogicData dTargetTipY;
    AdsLogicData dAscX;
    AdsLogicData dAscY;
    AdsLogicData dAsecRadius;


    AdsLogicData dHPTIntZone;
    AdsLogicData dSPTIntZone;
    AdsLogicData dHPTDatalink;
    AdsLogicData dSPTDatalink;
    McsG346FriendFoeSel dHPTFriendFoe;
    McsG346FriendFoeSel dSPTFriendFoe;
    AdsLogicData dTWSTgt1;
    AdsLogicData dTWSTgt2;
    AdsLogicData dTWSTgt3;
    AdsLogicData dTWSTgt4;
    AdsLogicData dTWSTgt5;
    AdsLogicData dTWSTgt6;
    AdsLogicData dTWSTgt7;
    AdsLogicData dTWSTgt8;

    AdsLogicData dTWSTgtId1;
    AdsLogicData dTWSTgtId2;
    AdsLogicData dTWSTgtId3;
    AdsLogicData dTWSTgtId4;
    AdsLogicData dTWSTgtId5;
    AdsLogicData dTWSTgtId6;
    AdsLogicData dTWSTgtId7;
    AdsLogicData dTWSTgtId8;




};

#endif // G346_A3_H
