00001
00052 #if !defined(_CIGI_BASE_WEATHER_COND_RESP_INCLUDED_)
00053 #define _CIGI_BASE_WEATHER_COND_RESP_INCLUDED_
00054
00055 #include "CigiBasePacket.h"
00056
00057
00058
00059
00060
00061 #define CIGI_WEATHER_COND_RESP_PACKET_ID_V3 109
00062 #define CIGI_WEATHER_COND_RESP_PACKET_SIZE_V3 32
00063
00064
00065 class CigiWeatherCondRespV3;
00066
00067
00068 class CIGI_SPEC CigiBaseWeatherCondResp : public CigiBasePacket
00069 {
00070
00071 friend class CigiWeatherCondRespV3;
00072
00073 public:
00074
00075
00076
00077
00080 CigiBaseWeatherCondResp();
00081
00082
00085 virtual ~CigiBaseWeatherCondResp();
00086
00087
00088
00089
00090
00101 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00102
00103
00113 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00114
00115
00127 virtual int GetCnvt(CigiVersionID &CnvtVersion,
00128 CigiCnvtInfoType::Type &CnvtInfo);
00129
00130
00131
00132
00133
00134
00135
00136
00143 int SetRequestID(const Cigi_uint8 RequestIDIn, bool bndchk=true)
00144 {
00145 RequestID = RequestIDIn;
00146 return(CIGI_SUCCESS);
00147 }
00148
00149
00152 Cigi_uint8 GetRequestID(void) const { return(RequestID); }
00153
00154
00155
00156
00157
00164 int SetHumidity(const Cigi_uint8 HumidityIn, bool bndchk=true);
00165
00166
00169 Cigi_uint8 GetHumidity(void) const { return(Humidity); }
00170
00171
00172
00173
00174
00181 int SetAirTemp(const float AirTempIn, bool bndchk=true)
00182 {
00183 AirTemp = AirTempIn;
00184 return(CIGI_SUCCESS);
00185 }
00186
00187
00190 float GetAirTemp(void) const { return(AirTemp); }
00191
00192
00193
00194
00195
00202 int SetVisibility(const float VisibilityIn, bool bndchk=true);
00203
00204
00207 float GetVisibility(void) const { return(Visibility); }
00208
00209
00210
00211
00212
00219 int SetHorizWindSp(const float HorizWindSpIn, bool bndchk=true);
00220
00221
00224 float GetHorizWindSp(void) const { return(HorizWindSp); }
00225
00226
00227
00228
00229
00236 int SetVertWindSp(const float VertWindSpIn, bool bndchk=true)
00237 {
00238 VertWindSp = VertWindSpIn;
00239 return(CIGI_SUCCESS);
00240 }
00241
00242
00245 float GetVertWindSp(void) const { return(VertWindSp); }
00246
00247
00248
00249
00250
00257 int SetWindDir(const float WindDirIn, bool bndchk=true);
00258
00259
00262 float GetWindDir(void) const { return(WindDir); }
00263
00264
00265
00266
00267
00274 int SetBaroPress(const float BaroPressIn, bool bndchk=true);
00275
00276
00279 float GetBaroPress(void) const { return(BaroPress); }
00280
00281
00282
00283 protected:
00284
00285
00286
00287
00291 Cigi_uint8 RequestID;
00292
00293
00296 Cigi_uint8 Humidity;
00297
00298
00302 float AirTemp;
00303
00304
00308 float Visibility;
00309
00310
00314 float HorizWindSp;
00315
00316
00320 float VertWindSp;
00321
00322
00326 float WindDir;
00327
00328
00332 float BaroPress;
00333
00334
00335 };
00336
00337 #endif // #if !defined(_CIGI_BASE_WEATHER_COND_RESP_INCLUDED_)