00001 00055 #if !defined(_CIGI_BASE_ENV_CTRL_INCLUDED_) 00056 #define _CIGI_BASE_ENV_CTRL_INCLUDED_ 00057 00058 #include "CigiBasePacket.h" 00059 00060 // ==================================================================== 00061 // preprocessor definitions 00062 // ==================================================================== 00063 00064 #define CIGI_ENV_CTRL_PACKET_ID_V1 6 00065 #define CIGI_ENV_CTRL_PACKET_SIZE_V1 28 00066 00067 #define CIGI_ENV_CTRL_PACKET_ID_V2 6 00068 #define CIGI_ENV_CTRL_PACKET_SIZE_V2 36 00069 00070 #define CIGI_ATMOS_CTRL_PACKET_ID_V3 10 00071 #define CIGI_ATMOS_CTRL_PACKET_SIZE_V3 32 00072 00073 #define CIGI_CELESTIAL_CTRL_PACKET_ID_V3 9 00074 #define CIGI_CELESTIAL_CTRL_PACKET_SIZE_V3 16 00075 00076 00077 class CigiEnvCtrlV1; 00078 class CigiEnvCtrlV2; 00079 class CigiAtmosCtrlV3; 00080 class CigiCelestialCtrlV3; 00081 class CigiHoldEnvCtrl; 00082 00083 00084 class CIGI_SPEC CigiBaseEnvCtrl : public CigiBasePacket 00085 { 00086 00087 friend class CigiEnvCtrlV1; 00088 friend class CigiEnvCtrlV2; 00089 friend class CigiAtmosCtrlV3; 00090 friend class CigiCelestialCtrlV3; 00091 friend class CigiHoldEnvCtrl; 00092 00093 protected: 00094 00095 // This class can only be instanciated by friend classes 00096 // and should be only instanced by the session manager. 00097 00098 //==> Management 00099 00100 //========================================================= 00103 CigiBaseEnvCtrl(); 00104 00105 //========================================================= 00108 virtual ~CigiBaseEnvCtrl(); 00109 00110 00111 public: 00112 00113 //==> Buffer Packing/Unpacking 00114 00115 //========================================================= 00126 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0; 00127 00128 //========================================================= 00138 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0; 00139 00140 //========================================================= 00152 virtual int GetCnvt(CigiVersionID &CnvtVersion, 00153 CigiCnvtInfoType::Type &CnvtInfo); 00154 00155 00156 //==> Hold Object Manipulation 00157 00158 //========================================================= 00162 virtual void FillHold(CigiBaseEnvCtrl * Hold) const=0; 00163 00164 00165 00166 //==> Accessing Member Variable Values functions 00167 00168 00169 protected: 00170 00171 //==> Member variables 00172 00173 //========================================================= 00177 Cigi_uint8 Hour; 00178 00179 //========================================================= 00183 Cigi_uint8 Minute; 00184 00185 //========================================================= 00189 Cigi_uint8 Month; 00190 00191 //========================================================= 00195 Cigi_uint8 Day; 00196 00197 //========================================================= 00201 Cigi_uint16 Year; 00202 00203 //========================================================= 00207 float StarInt; 00208 00209 //========================================================= 00213 bool EphemerisEn; 00214 00215 //========================================================= 00219 bool SunEn; 00220 00221 //========================================================= 00225 bool MoonEn; 00226 00227 //========================================================= 00231 bool StarEn; 00232 00233 //========================================================= 00237 bool DateVld; 00238 00239 //========================================================= 00243 bool AtmosEn; 00244 00245 //========================================================= 00249 float Aerosol; 00250 00251 //========================================================= 00255 Cigi_uint8 Humidity; 00256 00257 //========================================================= 00261 float AirTemp; 00262 00263 //========================================================= 00267 float Visibility; 00268 00269 //========================================================= 00273 float HorizWindSp; 00274 00275 //========================================================= 00279 float VertWindSp; 00280 00281 //========================================================= 00285 float WindDir; 00286 00287 //========================================================= 00291 float BaroPress; 00292 00293 00294 }; 00295 00296 #endif // #if !defined(_CIGI_BASE_ENV_CTRL_INCLUDED_)CL