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_)