00001
00059 #if !defined(_CIGI_BASE_HAT_HOT_REQ_INCLUDED_)
00060 #define _CIGI_BASE_HAT_HOT_REQ_INCLUDED_
00061
00062 #include "CigiBasePacket.h"
00063
00064
00065
00066
00067
00068 #define CIGI_HAT_REQ_PACKET_ID_V1 41
00069 #define CIGI_HAT_REQ_PACKET_SIZE_V1 24
00070
00071 #define CIGI_HAT_REQ_PACKET_ID_V2 41
00072 #define CIGI_HAT_REQ_PACKET_SIZE_V2 32
00073
00074 #define CIGI_HOT_REQ_PACKET_ID_V2 44
00075 #define CIGI_HOT_REQ_PACKET_SIZE_V2 24
00076
00077 #define CIGI_HAT_HOT_REQ_PACKET_ID_V3 24
00078 #define CIGI_HAT_HOT_REQ_PACKET_SIZE_V3 32
00079
00080 #define CIGI_HAT_HOT_REQ_PACKET_ID_V3_2 24
00081 #define CIGI_HAT_HOT_REQ_PACKET_SIZE_V3_2 32
00082
00083
00084
00085 class CigiHatReqV1;
00086 class CigiHatReqV2;
00087 class CigiHotReqV2;
00088 class CigiHatHotReqV3;
00089 class CigiHatHotReqV3_2;
00090
00091
00092 class CIGI_SPEC CigiBaseHatHotReq : public CigiBasePacket
00093 {
00094
00095 friend class CigiHatReqV1;
00096 friend class CigiHatReqV2;
00097 friend class CigiHotReqV2;
00098 friend class CigiHatHotReqV3;
00099 friend class CigiHatHotReqV3_2;
00100
00101 public:
00102
00103
00106 enum ReqTypeGrp
00107 {
00108 HAT=0,
00109 HOT=1,
00110 Extended=2
00111 };
00112
00113
00116 enum CoordSysGrp
00117 {
00118 Geodetic=0,
00119 Entity=1
00120 };
00121
00122
00123
00124
00125
00126
00127
00130 CigiBaseHatHotReq();
00131
00132
00135 virtual ~CigiBaseHatHotReq();
00136
00137
00138
00139
00140
00151 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00152
00153
00163 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00164
00165
00166
00167
00168
00169
00170
00171
00178 int SetHatHotID(const Cigi_uint16 HatHotIDIn, bool bndchk=true)
00179 {
00180 HatHotID = HatHotIDIn;
00181 return(CIGI_SUCCESS);
00182 }
00183
00184
00187 Cigi_uint16 GetHatHotID(void) const { return(HatHotID); }
00188
00189
00190
00191
00192
00199 int SetLat(const double LatIn, bool bndchk=true);
00200
00201
00204 double GetLat(void) const { return(LatOrXoff); }
00205
00206
00207
00208
00209
00216 int SetLon(const double LonIn, bool bndchk=true);
00217
00218
00221 double GetLon(void) const { return(LonOrYoff); }
00222
00223
00224
00225 protected:
00226
00227
00228
00229
00233 Cigi_uint16 HatHotID;
00234
00235
00242 ReqTypeGrp ReqType;
00243
00244
00251 CoordSysGrp SrcCoordSys;
00252
00253
00258 Cigi_uint8 UpdatePeriod;
00259
00260
00264 Cigi_uint16 EntityID;
00265
00266
00272 double LatOrXoff;
00273
00274
00280 double LonOrYoff;
00281
00282
00288 double AltOrZoff;
00289
00290
00294 bool IsValidV1or2;
00295
00296
00297 };
00298
00299 #endif // #if !defined(_CIGI_BASE_HAT_HOT_REQ_INCLUDED_)