00001
00055 #if !defined(_CIGI_BASE_ENV_COND_REQ_INCLUDED_)
00056 #define _CIGI_BASE_ENV_COND_REQ_INCLUDED_
00057
00058 #include "CigiBasePacket.h"
00059
00060
00061
00062
00063
00064 #define CIGI_ENV_COND_REQ_PACKET_ID_V3 28
00065 #define CIGI_ENV_COND_REQ_PACKET_SIZE_V3 32
00066
00067
00068 class CigiEnvCondReqV3;
00069
00070
00071 class CIGI_SPEC CigiBaseEnvCondReq : public CigiBasePacket
00072 {
00073
00074 friend class CigiEnvCondReqV3;
00075
00076 public:
00077
00078
00081 enum ReqTypeGrp
00082 {
00083 Maritime=1,
00084 Terrestrial=2,
00085 Weather=4,
00086 Aerosol=8
00087 };
00088
00089
00090
00091
00092
00093
00094
00097 CigiBaseEnvCondReq();
00098
00099
00102 virtual ~CigiBaseEnvCondReq();
00103
00104
00105
00106
00107
00118 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00119
00120
00130 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00131
00132
00144 virtual int GetCnvt(CigiVersionID &CnvtVersion,
00145 CigiCnvtInfoType::Type &CnvtInfo);
00146
00147
00148
00149
00150
00151
00152
00153
00160 int SetReqType(const Cigi_uint8 ReqTypeIn, bool bndchk=true);
00161
00162
00165 Cigi_uint8 GetReqType(void) const { return(ReqType); }
00166
00167
00168
00169
00176 int SetReqID(const Cigi_uint8 ReqIdIn, bool bndchk=true)
00177 {
00178 ReqID = ReqIdIn;
00179 return(CIGI_SUCCESS);
00180 }
00181
00182
00185 Cigi_uint8 GetReqID(void) const { return(ReqID); }
00186
00187
00188
00189
00190
00197 int SetLat(const double LatIn, bool bndchk=true);
00198
00199
00202 double GetLat(void) const { return(Lat); }
00203
00204
00205
00206
00207
00214 int SetLon(const double LonIn, bool bndchk=true);
00215
00216
00219 double GetLon(void) const { return(Lon); }
00220
00221
00222
00223
00224
00231 int SetAlt(const double AltIn, bool bndchk=true)
00232 {
00233 Alt = AltIn;
00234 return(CIGI_SUCCESS);
00235 }
00236
00237
00240 double GetAlt(void) const { return(Alt); }
00241
00242
00243
00244 protected:
00245
00246
00247
00248
00259 Cigi_uint8 ReqType;
00260
00261
00265 Cigi_uint8 ReqID;
00266
00267
00271 double Lat;
00272
00273
00277 double Lon;
00278
00279
00283 double Alt;
00284
00285
00286 };
00287
00288 #endif // #if !defined(_CIGI_BASE_ENV_COND_REQ_INCLUDED_)