CigiWeatherCondRespV3.cpp

Go to the documentation of this file.
00001 
00052 #define _EXPORT_CCL_
00053 
00054 #include "CigiWeatherCondRespV3.h"
00055 #include "CigiSwapping.h"
00056 #include "CigiExceptions.h"
00057 
00058 
00059 // ====================================================================
00060 // Construction/Destruction
00061 // ====================================================================
00062 
00063 
00064 // ================================================
00065 // CigiWeatherCondRespV3
00066 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00067 CigiWeatherCondRespV3::CigiWeatherCondRespV3()
00068 {
00069 
00070    PacketID = CIGI_WEATHER_COND_RESP_PACKET_ID_V3;
00071    PacketSize = CIGI_WEATHER_COND_RESP_PACKET_SIZE_V3;
00072    Version = 3;
00073    MinorVersion = 0;
00074 
00075    RequestID = 0;
00076    Humidity = 0;
00077    AirTemp = 0.0;
00078    Visibility = 0.0;
00079    HorizWindSp = 0.0;
00080    VertWindSp = 0.0;
00081    WindDir = 0.0;
00082    BaroPress = 0.0;
00083 
00084 }
00085 
00086 // ================================================
00087 // ~CigiWeatherCondRespV3
00088 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00089 CigiWeatherCondRespV3::~CigiWeatherCondRespV3()
00090 {
00091 
00092 }
00093 
00094 // ====================================================================
00095 // Pack and Unpack
00096 // ====================================================================
00097 
00098 // ================================================
00099 // Pack
00100 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00101 int CigiWeatherCondRespV3::Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const
00102 {
00103    PackPointer CDta;
00104 
00105    CigiBaseWeatherCondResp * Data = ( CigiBaseWeatherCondResp *)Base;
00106 
00107    CDta.c = Buff;
00108 
00109    *CDta.c++ = PacketID;
00110    *CDta.c++ = PacketSize;
00111 
00112    *CDta.c++ = Data->RequestID;
00113    *CDta.c++ = Data->Humidity;
00114    *CDta.f++ = Data->AirTemp;
00115    *CDta.f++ = Data->Visibility;
00116    *CDta.f++ = Data->HorizWindSp;
00117    *CDta.f++ = Data->VertWindSp;
00118    *CDta.f++ = Data->WindDir;
00119    *CDta.f++ = Data->BaroPress;
00120 
00121    *CDta.l++ = 0;
00122 
00123    return(PacketSize);
00124 
00125 }
00126 
00127 // ================================================
00128 // Unpack
00129 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00130 int CigiWeatherCondRespV3::Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec)
00131 {
00132    PackPointer CDta;
00133 
00134    CDta.c = Buff;
00135 
00136    CDta.c += 2;  // Step over packet id and size
00137 
00138    RequestID = *CDta.c++;
00139    Humidity = *CDta.c++;
00140 
00141    if(!Swap)
00142    {
00143       AirTemp = *CDta.f++;
00144       Visibility = *CDta.f++;
00145       HorizWindSp = *CDta.f++;
00146       VertWindSp = *CDta.f++;
00147       WindDir = *CDta.f++;
00148       BaroPress = *CDta.f++;
00149    }
00150    else
00151    {
00152       CigiSwap4(&AirTemp, CDta.f++);
00153       CigiSwap4(&Visibility, CDta.f++);
00154       CigiSwap4(&HorizWindSp, CDta.f++);
00155       CigiSwap4(&VertWindSp, CDta.f++);
00156       CigiSwap4(&WindDir, CDta.f++);
00157       CigiSwap4(&BaroPress, CDta.f++);
00158    }
00159 
00160    return(PacketSize);
00161 
00162 }
00163 
00164 
00165 
00166 // ====================================================================
00167 // Accessors
00168 // ====================================================================
00169 
00170 

Generated on Wed Apr 29 08:59:59 2009 for CCL by  doxygen 1.4.7