00001
00052 #define _EXPORT_CCL_
00053
00054 #include "CigiTrajectoryDefV2.h"
00055 #include "CigiSwapping.h"
00056 #include "CigiExceptions.h"
00057
00058 #include <memory.h>
00059
00060
00061 #ifdef CIGI_LITTLE_ENDIAN
00062 #define CIGI_SCOPY2 CigiSwap2
00063 #define CIGI_SCOPY4 CigiSwap4
00064 #define CIGI_SCOPY8 CigiSwap8
00065 #else
00066 #define CIGI_SCOPY2 CigiCopy2
00067 #define CIGI_SCOPY4 CigiCopy4
00068 #define CIGI_SCOPY8 CigiCopy8
00069 #endif
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082 CigiTrajectoryDefV2::CigiTrajectoryDefV2()
00083 {
00084
00085 PacketID = CIGI_TRAJECTORY_DEF_PACKET_ID_V2;
00086 PacketSize = CIGI_TRAJECTORY_DEF_PACKET_SIZE_V2;
00087 Version = 2;
00088 MinorVersion = 0;
00089
00090 EntityID = 0;
00091 Accel = 0.0;
00092 RetardationRate = 0.0;
00093 TermVel = 0.0;
00094 Xoff = 0.0;
00095 Yoff = 0.0;
00096 Zoff = 0.0;
00097 AccelX = 0.0;
00098 AccelY = 0.0;
00099 AccelZ = 0.0;
00100
00101 }
00102
00103
00104
00105
00106 CigiTrajectoryDefV2::~CigiTrajectoryDefV2()
00107 {
00108
00109 }
00110
00111
00112
00113
00114
00115
00116
00117
00118 int CigiTrajectoryDefV2::Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const
00119 {
00120 double DBuf[6];
00121
00122 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf;
00123
00124 PackPointer CDta;
00125
00126 CigiBaseTrajectoryDef * Data = ( CigiBaseTrajectoryDef *)Base;
00127
00128 CDta.d = DBuf;
00129
00130 *CDta.c++ = PacketID;
00131 *CDta.c++ = PacketSize;
00132
00133 CIGI_SCOPY2(CDta.s++, &Data->EntityID);
00134 CIGI_SCOPY4(CDta.f++, &Data->Accel);
00135 CIGI_SCOPY4(CDta.f++, &Data->RetardationRate);
00136 CIGI_SCOPY4(CDta.f++, &Data->TermVel);
00137
00138 memcpy(Buff,tBuf,CIGI_TRAJECTORY_DEF_PACKET_SIZE_V2);
00139
00140 return(PacketSize);
00141
00142 }
00143
00144
00145
00146
00147 int CigiTrajectoryDefV2::Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec)
00148 {
00149 double DBuf[6];
00150
00151 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf;
00152
00153 PackPointer CDta;
00154
00155 memcpy(tBuf,Buff,CIGI_TRAJECTORY_DEF_PACKET_SIZE_V2);
00156
00157 CDta.d = DBuf;
00158
00159 CDta.c += 2;
00160
00161 CIGI_SCOPY2(&EntityID, CDta.s++);
00162 CIGI_SCOPY4(&Accel, CDta.f++);
00163 CIGI_SCOPY4(&RetardationRate, CDta.f++);
00164 CIGI_SCOPY4(&TermVel, CDta.f++);
00165
00166 Xoff = 0.0;
00167 Yoff = 0.0;
00168 Zoff = 0.0;
00169 AccelX = 0.0f;
00170 AccelY = 0.0f;
00171 AccelZ = Accel;
00172
00173 return(PacketSize);
00174
00175 }
00176
00177
00178
00179
00180
00181
00182
00183