CigiAerosolRespV3.cpp

Go to the documentation of this file.
00001 
00052 #define _EXPORT_CCL_
00053 
00054 #include "CigiAerosolRespV3.h"
00055 #include "CigiSwapping.h"
00056 #include "CigiExceptions.h"
00057 
00058 
00059 // ====================================================================
00060 // Construction/Destruction
00061 // ====================================================================
00062 
00063 
00064 // ================================================
00065 // CigiAerosolRespV3
00066 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00067 CigiAerosolRespV3::CigiAerosolRespV3()
00068 {
00069 
00070    PacketID = CIGI_AEROSOL_RESP_PACKET_ID_V3;
00071    PacketSize = CIGI_AEROSOL_RESP_PACKET_SIZE_V3;
00072    Version = 3;
00073    MinorVersion = 0;
00074 
00075    RequestID = 0;
00076    LayerID = 0;
00077    AerosolConcentration = 0.0;
00078 
00079 }
00080 
00081 // ================================================
00082 // ~CigiAerosolRespV3
00083 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00084 CigiAerosolRespV3::~CigiAerosolRespV3()
00085 {
00086 
00087 }
00088 
00089 // ====================================================================
00090 // Pack and Unpack
00091 // ====================================================================
00092 
00093 // ================================================
00094 // Pack
00095 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00096 int CigiAerosolRespV3::Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const
00097 {
00098    PackPointer CDta;
00099 
00100    CigiBaseAerosolResp * Data = ( CigiBaseAerosolResp *)Base;
00101 
00102    CDta.c = Buff;
00103 
00104    *CDta.c++ = PacketID;
00105    *CDta.c++ = PacketSize;
00106 
00107    *CDta.c++ = Data->RequestID;
00108    *CDta.c++ = Data->LayerID;
00109    *CDta.f++ = Data->AerosolConcentration;
00110 
00111    return(PacketSize);
00112 
00113 }
00114 
00115 // ================================================
00116 // Unpack
00117 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
00118 int CigiAerosolRespV3::Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec)
00119 {
00120    PackPointer CDta;
00121 
00122    CDta.c = Buff;
00123 
00124    CDta.c += 2;  // Step over packet id and size
00125 
00126    RequestID = *CDta.c++;
00127    LayerID = *CDta.c++;
00128 
00129    if(!Swap)
00130       AerosolConcentration = *CDta.f++;
00131    else
00132       CigiSwap4(&AerosolConcentration, CDta.f++);
00133 
00134    return(PacketSize);
00135 
00136 }
00137 
00138 
00139 
00140 // ====================================================================
00141 // Accessors
00142 // ====================================================================
00143 
00144 

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