cmtpacket.h
Go to the documentation of this file.00001 #ifndef _CMT_MONOLITHIC
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #endif
00027 #ifndef _CMTPACKET_H_2006_05_10
00028 #define _CMTPACKET_H_2006_05_10
00029
00030 #ifndef _CMT_MONOLITHIC
00031 # include "cmtdef.h"
00032 # include "cmt2.h"
00033 #endif
00034
00035 namespace xsens {
00036
00037
00038
00039 #define CMT_DATA_ITEM_NOT_AVAILABLE 65535
00040
00041
00042 class Packet
00043 {
00044 friend class Cmt4;
00045 protected:
00046
00047 mutable struct PacketInfo {
00048 uint16_t m_offset;
00049 uint16_t m_rawData;
00050 uint16_t m_rawAcc;
00051 uint16_t m_rawGyr;
00052 uint16_t m_rawMag;
00053 uint16_t m_rawTemp;
00054 uint16_t m_temp;
00055 uint16_t m_calData;
00056 uint16_t m_calAcc;
00057 uint16_t m_calGyr;
00058 uint16_t m_calMag;
00059 uint16_t m_oriQuat;
00060 uint16_t m_oriEul;
00061 uint16_t m_oriMat;
00062 uint16_t m_analogIn1;
00063 uint16_t m_analogIn2;
00064 uint16_t m_posLLA;
00065 uint16_t m_velNEDorNWU;
00066 uint16_t m_status;
00067 uint16_t m_sc;
00068 uint16_t m_utcTime;
00069 uint16_t m_utcNano;
00070 uint16_t m_utcYear;
00071 uint16_t m_utcMonth;
00072 uint16_t m_utcDay;
00073 uint16_t m_utcHour;
00074 uint16_t m_utcMinute;
00075 uint16_t m_utcSecond;
00076 uint16_t m_utcValid;
00077 uint16_t m_acc_g;
00078 uint16_t m_gpsPvtData;
00079 uint16_t m_gpsPvtPressure;
00080 uint16_t m_gpsPvtPressureAge;
00081 uint16_t m_gpsPvtGpsData;
00082 uint16_t m_gpsPvtItow;
00083 uint16_t m_gpsPvtLatitude;
00084 uint16_t m_gpsPvtLongitude;
00085 uint16_t m_gpsPvtHeight;
00086 uint16_t m_gpsPvtVeln;
00087 uint16_t m_gpsPvtVele;
00088 uint16_t m_gpsPvtVeld;
00089 uint16_t m_gpsPvtHacc;
00090 uint16_t m_gpsPvtVacc;
00091 uint16_t m_gpsPvtSacc;
00092 uint16_t m_gpsPvtGpsAge;
00093 uint16_t m_size;
00094 uint16_t m_doubleBoundary;
00095 }* m_infoList;
00096 CmtDataFormat* m_formatList;
00097 bool m_xm;
00098
00099 public:
00100 uint16_t m_itemCount;
00101 Message m_msg;
00102 TimeStamp m_rtc;
00103 TimeStamp m_toa;
00104
00105 Packet(uint16_t items, bool xbus);
00106 Packet(const Packet& pack);
00107 ~Packet();
00108
00109 void operator = (const Packet& pack);
00110
00111 bool setDataFormat(const CmtDataFormat& format, const uint16_t index = 0);
00112 bool setDataFormat(const CmtOutputMode outputMode, const CmtOutputSettings outputSettings, const uint16_t index = 0);
00113 CmtDataFormat getDataFormat(const uint16_t index = 0) const;
00114 void setXbus(bool xbus, bool convert = false);
00115 bool getXbus(void) const;
00116
00117
00118
00119
00120
00121 uint16_t getDataSize(const uint16_t index=0) const;
00122
00123
00124
00125
00126
00127 uint16_t getFPValueSize(const uint16_t index) const;
00128
00129
00130
00131
00132
00133 CmtShortVector getRawAcc(const uint16_t index=0) const;
00134
00135 bool containsRawAcc(const uint16_t index=0) const;
00136
00137 bool updateRawAcc(const CmtShortVector& vec, const uint16_t index=0);
00138
00139
00140
00141
00142 CmtShortVector getRawGyr(const uint16_t index=0) const;
00143
00144 bool containsRawGyr(const uint16_t index=0) const;
00145
00146 bool updateRawGyr(const CmtShortVector& vec, const uint16_t index=0);
00147
00148
00149
00150
00151 CmtShortVector getRawMag(const uint16_t index=0) const;
00152
00153 bool containsRawMag(const uint16_t index=0) const;
00154
00155 bool updateRawMag(const CmtShortVector& vec, const uint16_t index=0);
00156
00157
00158
00159
00160 uint16_t getRawTemp(const uint16_t index=0) const;
00161
00162 bool containsRawTemp(const uint16_t index=0) const;
00163
00164 bool updateRawTemp(uint16_t temp, const uint16_t index=0);
00165
00166
00167
00168
00169 CmtRawData getRawData(const uint16_t index=0) const;
00170
00171 bool containsRawData(const uint16_t index=0) const;
00172
00173 bool updateRawData(const CmtRawData& data, const uint16_t index=0);
00174
00175
00176
00177 CmtGpsPvtData getGpsPvtData(const uint16_t index=0) const;
00178
00179 bool containsGpsPvtData(const uint16_t index=0) const;
00180
00181 bool updateGpsPvtData(const CmtGpsPvtData& data, const uint16_t index=0);
00182
00183
00184 #define getRawGpsData getGpsPvtData
00185
00186 #define containsRawGpsData containsGpsPvtData
00187
00188 #define updateRawGpsData updateGpsPvtData
00189
00190
00191
00192
00193 CmtRawPressureData getRawPressureData(const uint16_t index=0) const;
00194
00195 bool containsRawPressureData(const uint16_t index=0) const;
00196
00197 bool updateRawPressureData(const CmtRawPressureData& data, const uint16_t index=0);
00198
00199
00200
00201
00202
00203 double getTemp(const uint16_t index=0) const;
00204
00205 bool containsTemp(const uint16_t index=0) const;
00206
00207 bool updateTemp(const double& temp, const uint16_t index=0);
00208
00209
00210
00211
00212 CmtVector getCalAcc(const uint16_t index=0) const;
00213
00214 bool containsCalAcc(const uint16_t index=0) const;
00215
00216 bool updateCalAcc(const CmtVector& vec, const uint16_t index=0);
00217
00218
00219
00220
00221 CmtVector getCalGyr(const uint16_t index=0) const;
00222
00223 bool containsCalGyr(const uint16_t index=0) const;
00224
00225 bool updateCalGyr(const CmtVector& vec, const uint16_t index=0);
00226
00227
00228
00229
00230 CmtVector getCalMag(const uint16_t index=0) const;
00231
00232 bool containsCalMag(const uint16_t index=0) const;
00233
00234 bool updateCalMag(const CmtVector& vec, const uint16_t index=0);
00235
00236
00237
00238
00239 CmtCalData getCalData(const uint16_t index=0) const;
00240
00241 bool containsCalData(const uint16_t index=0) const;
00242
00243 bool updateCalData(const CmtCalData& data, const uint16_t index=0);
00244
00245
00246
00247
00248
00249 CmtQuat getOriQuat(const uint16_t index=0) const;
00250
00251 bool containsOriQuat(const uint16_t index=0) const;
00252
00253 bool updateOriQuat(const CmtQuat& data, const uint16_t index=0);
00254
00255
00256
00257
00258 CmtEuler getOriEuler(const uint16_t index=0) const;
00259
00260 bool containsOriEuler(const uint16_t index=0) const;
00261
00262 bool updateOriEuler(const CmtEuler& data, const uint16_t index=0);
00263
00264
00265
00266
00267 CmtMatrix getOriMatrix(const uint16_t index=0) const;
00268
00269 bool containsOriMatrix(const uint16_t index=0) const;
00270
00271 bool updateOriMatrix(const CmtMatrix& data, const uint16_t index=0);
00272
00273
00274 bool containsOri(const uint16_t index=0) const;
00275
00276
00277
00278
00279
00280 CmtAnalogInData getAnalogIn1(const uint16_t index=0) const;
00281
00282 bool containsAnalogIn1(const uint16_t index=0) const;
00283
00284 bool updateAnalogIn1(const CmtAnalogInData& data, const uint16_t index=0);
00285
00286
00287
00288
00289
00290 CmtAnalogInData getAnalogIn2(const uint16_t index=0) const;
00291
00292 bool containsAnalogIn2(const uint16_t index=0) const;
00293
00294 bool updateAnalogIn2(const CmtAnalogInData& data, const uint16_t index=0);
00295
00296
00297
00298
00299
00300 CmtVector getPositionLLA(const uint16_t index=0) const;
00301
00302 bool containsPositionLLA(const uint16_t index=0) const;
00303
00304 bool updatePositionLLA(const CmtVector& data, const uint16_t index=0);
00305
00306
00307
00308
00309
00310 CmtVector getVelocity(const uint16_t index=0) const;
00311
00312 bool containsVelocity(const uint16_t index=0) const;
00313
00314 bool updateVelocity(const CmtVector& data, const uint16_t index=0);
00315
00316
00317
00318
00319
00320 uint8_t getStatus(const uint16_t index=0) const;
00321
00322 bool containsStatus(const uint16_t index=0) const;
00323
00324 bool updateStatus(const uint8_t data, const uint16_t index=0);
00325
00326
00327
00328
00329
00330 uint16_t getSampleCounter(const uint16_t index=0) const;
00331
00332 bool containsSampleCounter(const uint16_t index=0) const;
00333
00334 bool updateSampleCounter(const uint16_t counter, const uint16_t index=0);
00335
00336
00337
00338
00339
00340 CmtUtcTime getUtcTime(const uint16_t index=0) const;
00341
00342 bool containsUtcTime(const uint16_t index=0) const;
00343
00344 bool updateUtcTime(const CmtUtcTime& data, const uint16_t index=0);
00345
00346
00347
00348
00349
00350 CmtTimeStamp getRtc(const uint16_t index=0) const;
00351
00352
00353
00354
00355
00356
00357 CmtVector getAccG(const uint16_t index=0) const;
00358
00359 bool containsAccG(const uint16_t index=0) const;
00360
00361 bool updateAccG(const CmtVector& g, const uint16_t index=0);
00362
00363 #ifdef _CMT_DLL_EXPORT
00364
00365 void interpolate(const Packet& pa, const Packet& pb, const double f);
00366 #endif
00367 };
00368
00369 }
00370
00371 #endif // _CMTPACKET_H_2006_05_10