CigiBaseLosSegReq.h

Go to the documentation of this file.
00001 
00071 #if !defined(_CIGI_BASE_LOS_SEG_REQ_INCLUDED_)
00072 #define _CIGI_BASE_LOS_SEG_REQ_INCLUDED_
00073 
00074 #include "CigiBasePacket.h"
00075 
00076 // ====================================================================
00077 // preprocessor definitions
00078 // ====================================================================
00079 
00080 #define CIGI_LOS_SEG_REQ_PACKET_ID_V1 42
00081 #define CIGI_LOS_SEG_REQ_PACKET_SIZE_V1 48
00082 
00083 #define CIGI_LOS_SEG_REQ_PACKET_ID_V2 42
00084 #define CIGI_LOS_SEG_REQ_PACKET_SIZE_V2 56
00085 
00086 #define CIGI_LOS_SEG_REQ_PACKET_ID_V3 25
00087 #define CIGI_LOS_SEG_REQ_PACKET_SIZE_V3 64
00088 
00089 #define CIGI_LOS_SEG_REQ_PACKET_ID_V3_2 25
00090 #define CIGI_LOS_SEG_REQ_PACKET_SIZE_V3_2 64
00091 
00092 
00093 class CigiLosSegReqV1;
00094 class CigiLosSegReqV2;
00095 class CigiLosSegReqV3;
00096 class CigiLosSegReqV3_2;
00097 
00098 
00099 class CIGI_SPEC CigiBaseLosSegReq : public CigiBasePacket
00100 {
00101 
00102 friend class CigiLosSegReqV1;
00103 friend class CigiLosSegReqV2;
00104 friend class CigiLosSegReqV3;
00105 friend class CigiLosSegReqV3_2;
00106 
00107 public:
00108 
00109    //=========================================================
00112    enum ReqTypeGrp
00113    {
00114       Basic=0,
00115       Extended=1
00116    };
00117 
00118    //=========================================================
00121    enum CoordSysGrp
00122    {
00123       Geodetic=0,
00124       Entity=1
00125    };
00126 
00127 
00128 
00129 
00130    //==> Management
00131 
00132    //=========================================================
00135    CigiBaseLosSegReq();
00136 
00137    //=========================================================
00140    virtual ~CigiBaseLosSegReq();
00141 
00142 
00143    //==> Buffer Packing/Unpacking
00144 
00145    //=========================================================
00156    virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00157 
00158    //=========================================================
00168    virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00169 
00170    //=========================================================
00182         virtual int GetCnvt(CigiVersionID &CnvtVersion,
00183                        CigiCnvtInfoType::Type &CnvtInfo);
00184 
00185 
00186 
00187    //==> Accessing Member Variable Values functions
00188 
00189    //+> LosID
00190 
00191    //=========================================================
00198    int SetLosID(const Cigi_uint16 LosIDIn, bool bndchk=true)
00199    {
00200       LosID = LosIDIn;
00201       return(CIGI_SUCCESS);
00202    }
00203 
00204    //=========================================================
00207    Cigi_uint16 GetLosID(void) const { return(LosID); }
00208 
00209 
00210    //+> SrcLat
00211 
00212    //=========================================================
00219    int SetSrcLat(const double SrcLatIn, bool bndchk=true);
00220 
00221    //=========================================================
00224    double GetSrcLat(void) const { return(SrcXLat); }
00225 
00226 
00227    //+> SrcLon
00228 
00229    //=========================================================
00236    int SetSrcLon(const double SrcLonIn, bool bndchk=true);
00237 
00238    //=========================================================
00241    double GetSrcLon(void) const { return(SrcYLon); }
00242 
00243 
00244    //+> SrcAlt
00245 
00246    //=========================================================
00253    int SetSrcAlt(const double SrcAltIn, bool bndchk=true)
00254    {
00255       SrcZAlt = SrcAltIn;
00256       return(CIGI_SUCCESS);
00257    }
00258 
00259    //=========================================================
00262    double GetSrcAlt(void) const { return(SrcZAlt); }
00263 
00264 
00265    //+> DstLat
00266 
00267    //=========================================================
00274    int SetDstLat(const double DstLatIn, bool bndchk=true);
00275 
00276    //=========================================================
00279    double GetDstLat(void) const { return(DstXLat); }
00280 
00281 
00282    //+> DstLon
00283 
00284    //=========================================================
00291    int SetDstLon(const double DstLonIn, bool bndchk=true);
00292 
00293    //=========================================================
00296    double GetDstLon(void) const { return(DstYLon); }
00297 
00298 
00299    //+> DstAlt
00300 
00301    //=========================================================
00308    int SetDstAlt(const double DstAltIn, bool bndchk=true)
00309    {
00310       DstZAlt = DstAltIn;
00311       return(CIGI_SUCCESS);
00312    }
00313 
00314    //=========================================================
00317    double GetDstAlt(void) const { return(DstZAlt); }
00318 
00319 
00320    //+> Valid Data for Cigi version 1 or 2
00321 
00322    //=========================================================
00326    bool IsValidV1or2(void) const { return(ValidV1or2); }
00327 
00328 
00329 
00330 protected:
00331 
00332    //==> Member variables
00333 
00334    //=========================================================
00338    Cigi_uint16 LosID;
00339 
00340    //=========================================================
00348    ReqTypeGrp ReqType;
00349 
00350    //=========================================================
00358    CoordSysGrp SrcCoordSys;
00359 
00360    //=========================================================
00368    CoordSysGrp DstCoordSys;
00369 
00370    //=========================================================
00378    CoordSysGrp ResponseCoordSys;
00379 
00380    //=========================================================
00384    bool DestEntityIDValid;
00385 
00386    //=========================================================
00391    Cigi_uint8 AlphaThresh;
00392 
00393    //=========================================================
00398    Cigi_uint16 EntityID;
00399 
00400    //=========================================================
00406    double SrcXLat;
00407 
00408    //=========================================================
00414    double SrcYLon;
00415 
00416    //=========================================================
00422    double SrcZAlt;
00423 
00424    //=========================================================
00430    double DstXLat;
00431 
00432    //=========================================================
00438    double DstYLon;
00439 
00440    //=========================================================
00446    double DstZAlt;
00447 
00448    //=========================================================
00452    Cigi_uint32 Mask;
00453 
00454    //=========================================================
00459    Cigi_uint8 UpdatePeriod;
00460 
00461    //=========================================================
00466    Cigi_uint16 DestEntityID;
00467 
00468    //=========================================================
00473    bool ValidV1or2;
00474 
00475 
00476 };
00477 
00478 #endif // #if !defined(_CIGI_BASE_LOS_SEG_REQ_INCLUDED_)

Generated on Wed Apr 29 08:59:55 2009 for CCL by  doxygen 1.4.7