CigiEnvCondReqV3.cpp

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

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