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