MRPT  1.9.9
xsdatapacket.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2019, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #ifndef XSDATAPACKET_H
10 #define XSDATAPACKET_H
11 
12 #include "pstdint.h"
13 #include "xsanalogindata.h"
14 #include "xscalibrateddata.h"
15 #include "xsdataidentifier.h"
16 #include "xsdeviceid.h"
17 #include "xseuler.h"
18 #include "xsgpspvtdata.h"
19 #include "xsmatrix.h"
20 #include "xsmessage.h"
21 #include "xspressure.h"
22 #include "xsquaternion.h"
23 #include "xsrange.h"
24 #include "xsrawgpsdop.h"
25 #include "xsrawgpssol.h"
26 #include "xsrawgpssvinfo.h"
27 #include "xsrawgpstimeutc.h"
28 #include "xsscrdata.h"
29 #include "xssdidata.h"
30 #include "xstimestamp.h"
32 #include "xstypedefs.h"
33 #include "xsushortvector.h"
34 #include "xsutctime.h"
35 #include "xsvector.h"
36 
37 struct XsDataPacket;
38 #ifdef __cplusplus
39 extern "C"
40 {
41 #else
42 typedef struct XsDataPacket XsDataPacket;
43 #define XSDATAPACKET_INITIALIZER \
44  { \
45  XSMESSAGE_INITIALIZER, XSMESSAGE_INITIALIZER, XSDEVICEID_INITIALIZER, \
46  XDI_None, -1, 0, 0, XSTIMESTAMP_INITIALIZER, \
47  XSTIMESTAMP_INITIALIZER \
48  }
49 #endif
50 
54  XsDataPacket* copy, XsDataPacket const* src);
58  const XsDataPacket* thisPtr, XsDataIdentifier id);
60  const XsDataPacket* thisPtr, XsDataIdentifier id);
62  const XsDataPacket* thisPtr, XsDataIdentifier id,
65  XsDataPacket* thisPtr, const XsMessage* msg);
67  const XsDataPacket* thisPtr, XsMessage* returnVal);
69  const XsDataPacket* thisPtr, XsDataIdentifier id);
72  const XsDataPacket* thisPtr, XsUShortVector* returnVal);
74  const XsDataPacket* thisPtr);
76  XsDataPacket* thisPtr, const XsUShortVector* vec);
78  const XsDataPacket* thisPtr, XsUShortVector* returnVal);
80  const XsDataPacket* thisPtr);
82  XsDataPacket* thisPtr, const XsUShortVector* vec);
84  const XsDataPacket* thisPtr, XsUShortVector* returnVal);
86  const XsDataPacket* thisPtr);
88  XsDataPacket* thisPtr, const XsUShortVector* vec);
90  const XsDataPacket* thisPtr, XsUShortVector* returnVal);
92  const XsDataPacket* thisPtr);
94  XsDataPacket* thisPtr, const XsUShortVector* vec);
98  const XsDataPacket* thisPtr);
100  XsDataPacket* thisPtr, uint16_t temp);
102  const XsDataPacket* thisPtr, XsScrData* returnVal);
104  const XsDataPacket* thisPtr);
106  XsDataPacket* thisPtr, const XsScrData* data);
108  const XsDataPacket* thisPtr, XsVector* returnVal);
110  const XsDataPacket* thisPtr);
112  XsDataPacket* thisPtr, const XsVector* vec);
114  const XsDataPacket* thisPtr, XsVector* returnVal);
116  const XsDataPacket* thisPtr);
118  XsDataPacket* thisPtr, const XsVector* vec);
120  const XsDataPacket* thisPtr, XsVector* returnVal);
122  const XsDataPacket* thisPtr);
124  XsDataPacket* thisPtr, const XsVector* vec);
126  const XsDataPacket* thisPtr, XsCalibratedData* returnVal);
128  const XsDataPacket* thisPtr);
130  XsDataPacket* thisPtr, const XsCalibratedData* data);
132  const XsDataPacket* thisPtr, XsQuaternion* returnVal,
133  XsDataIdentifier coordinateSystem);
135  XsDataPacket* thisPtr, const XsQuaternion* data,
136  XsDataIdentifier coordinateSystem);
138  const XsDataPacket* thisPtr, XsEuler* returnVal,
139  XsDataIdentifier coordinateSystem);
141  XsDataPacket* thisPtr, const XsEuler* data,
142  XsDataIdentifier coordinateSystem);
144  const XsDataPacket* thisPtr, XsMatrix* returnVal,
145  XsDataIdentifier coordinateSystem);
147  XsDataPacket* thisPtr, const XsMatrix* data,
148  XsDataIdentifier coordinateSystem);
150  const XsDataPacket* thisPtr);
156  const XsDataPacket* thisPtr, XsSdiData* returnVal);
158  const XsDataPacket* thisPtr);
160  XsDataPacket* thisPtr, const XsSdiData* data);
163  const XsDataPacket* thisPtr);
165  const XsDataPacket* thisPtr);
167  const XsDataPacket* thisPtr);
169  XsDataPacket* thisPtr, uint32_t data);
171  XsDataPacket* thisPtr, uint8_t data);
175  const XsDataPacket* thisPtr);
177  XsDataPacket* thisPtr, uint8_t counter);
181  const XsDataPacket* thisPtr);
183  XsDataPacket* thisPtr, uint16_t counter);
187  const XsDataPacket* thisPtr);
189  XsDataPacket* thisPtr, uint32_t counter);
193  const XsDataPacket* thisPtr);
195  XsDataPacket* thisPtr, uint32_t counter);
197  XsDataPacket_sampleTime64(const XsDataPacket* thisPtr);
199  const XsDataPacket* thisPtr);
201  XsDataPacket* thisPtr, uint64_t counter);
203  const XsDataPacket* thisPtr, XsVector* returnVal);
205  const XsDataPacket* thisPtr);
207  XsDataPacket* thisPtr, const XsVector* g);
209  const XsDataPacket* thisPtr);
211  const XsDataPacket* thisPtr);
213  XsDataPacket* thisPtr, double temp);
215  const XsDataPacket* thisPtr, XsGpsPvtData* returnVal);
217  const XsDataPacket* thisPtr);
219  XsDataPacket* thisPtr, const XsGpsPvtData* data);
221  const XsDataPacket* thisPtr);
223  const XsDataPacket* thisPtr, XsPressure* returnVal);
225  const XsDataPacket* thisPtr);
227  XsDataPacket* thisPtr, const XsPressure* data);
229  const XsDataPacket* thisPtr, XsAnalogInData* returnVal);
231  const XsDataPacket* thisPtr);
233  XsDataPacket* thisPtr, const XsAnalogInData* data);
235  const XsDataPacket* thisPtr, XsAnalogInData* returnVal);
237  const XsDataPacket* thisPtr);
239  XsDataPacket* thisPtr, const XsAnalogInData* data);
241  const XsDataPacket* thisPtr, XsVector* returnVal);
243  const XsDataPacket* thisPtr);
245  XsDataPacket* thisPtr, const XsVector* data);
247  const XsDataPacket* thisPtr, XsVector* returnVal);
249  const XsDataPacket* thisPtr);
251  XsDataPacket* thisPtr, const XsVector* data);
252  XSTYPES_DLL_API double XsDataPacket_altitude(const XsDataPacket* thisPtr);
254  const XsDataPacket* thisPtr);
256  XsDataPacket* thisPtr, double data);
258  const XsDataPacket* thisPtr, XsVector* returnVal,
259  XsDataIdentifier coordinateSystem);
261  const XsDataPacket* thisPtr);
263  XsDataPacket* thisPtr, const XsVector* data,
264  XsDataIdentifier coordinateSystem);
270  const XsDataPacket* thisPtr, XsUtcTime* returnVal);
272  const XsDataPacket* thisPtr);
274  XsDataPacket* thisPtr, const XsUtcTime* data);
276  const XsDataPacket* thisPtr, XsRange* returnVal);
278  const XsDataPacket* thisPtr);
280  XsDataPacket* thisPtr, const XsRange* r);
281  XSTYPES_DLL_API int XsDataPacket_rssi(const XsDataPacket* thisPtr);
285  const XsDataPacket* thisPtr, XsRawGpsDop* returnVal);
287  const XsDataPacket* thisPtr);
289  const XsDataPacket* thisPtr, XsRawGpsSol* returnVal);
291  const XsDataPacket* thisPtr);
293  const XsDataPacket* thisPtr, XsRawGpsTimeUtc* returnVal);
295  const XsDataPacket* thisPtr);
297  const XsDataPacket* thisPtr, XsRawGpsSvInfo* returnVal);
299  const XsDataPacket* thisPtr);
301  XsDataPacket* thisPtr, const XsDataPacket* other);
303  XsDataPacket* thisPtr, XsDataIdentifier triggerId,
304  XsTriggerIndicationData const* triggerIndicationData);
306  XsDataPacket const* thisPtr, XsDataIdentifier triggerId,
307  XsTriggerIndicationData* returnVal);
309  XsDataPacket const* thisPtr, XsDataIdentifier triggerId);
310 
311 #ifdef __cplusplus
312 } // extern "C"
313 #endif
314 
316 {
317 #ifdef __cplusplus
318  /*! \brief Default constructor, initializes empty data packet or from the
319  supplied \a msg
320  \param msg Either 0 to create an empty object or a pointer to a valid
321  %XsMessage containing
322  MTData2 data.
323  */
324  explicit XsDataPacket(const XsMessage* msg = 0)
326  m_lastFoundOffset(-1),
327  m_itemCount(0),
329  m_toa(0),
330  m_packetId(0)
331  {
334 
335  if (msg) XsDataPacket_setMessage(this, msg);
336  }
337 
338  /*! \brief Copy constructor
339  \param pack The packet to copy from
340  */
341  XsDataPacket(const XsDataPacket& pack)
343  m_lastFoundOffset(-1),
344  m_itemCount(0),
346  m_toa(0),
347  m_packetId(0)
348  {
349  *this = pack;
350  }
351 
352  //! \copydoc XsDataPacket_destruct
353  ~XsDataPacket() { XsDataPacket_destruct(this); }
354  /*! \brief Assignment operator
355  \param other The packet to copy from
356  \returns A reference to this %XsDataPacket
357  \sa XsDataPacket_copy
358  */
359  const XsDataPacket& operator=(const XsDataPacket& other)
360  {
361  if (this != &other) XsDataPacket_copy(this, &other);
362  return *this;
363  }
364 
365  /*! \brief \copybrief XsDataPacket_empty */
366  inline bool empty(void) const { return 0 != XsDataPacket_empty(this); }
367  /*! \copydoc XsDataPacket_itemOffsetExact */
368  inline int itemOffsetExact(XsDataIdentifier id) const
369  {
370  return XsDataPacket_itemOffsetExact(this, id);
371  }
372 
373  /*! \copydoc XsDataPacket_itemOffsetLoose */
374  inline int itemOffsetLoose(XsDataIdentifier id) const
375  {
376  return XsDataPacket_itemOffsetLoose(this, id);
377  }
378 
379  /*! \brief Return the id that was last found successfully by itemOffsetLoose
380  or itemOffsetExact
381  \details When the last search didn't find anything, XDI_None will be
382  returned.
383  \returns The id that was last found successfully by itemOffsetLoose or
384  itemOffsetExact or XDI_None
385  \sa itemOffsetExact \sa itemOffsetLoose \sa lastFoundOffset
386  */
387  inline XsDataIdentifier lastFoundId() const { return m_lastFoundId; }
388  /*! \brief Return the offset that was last returned by itemOffsetLoose or
389  itemOffsetExact
390  \details When the last search didn't find anything, -1 will be returned.
391  \returns The offset that was last returned by itemOffsetLoose or
392  itemOffsetExact
393  \sa itemOffsetExact \sa itemOffsetLoose \sa lastFoundId
394  */
395  inline int lastFoundOffset() const { return m_lastFoundOffset; }
396  //! \brief Return the device ID associated with the data packet
397  inline XsDeviceId deviceId() const { return m_deviceId; }
398  //! \brief Return the number of data items in the packet
399  inline uint16_t itemCount() const { return m_itemCount; }
400  //! \copydoc XsDataPacket_setMessage
401  inline void setMessage(const XsMessage& msg)
402  {
403  XsDataPacket_setMessage(this, &msg);
404  }
405 
406  /*! \brief Returns a const reference to the message that contains the data
407  * packet
408  */
409  inline const XsMessage& XSNOCOMEXPORT message() const { return m_msg; }
410  /*! \brief Returns a reference to the message that contains the data packet
411  \returns A reference to the message that contains the data packet
412  \note Modifying this message directly can cause %XsDataPacket to break
413  */
414  inline XsMessage& XSNOCOMEXPORT message()
415  {
416  return m_msg; // lint !e1536
417  }
418 
419  //! \brief Set the device ID associated with this data packet
420  inline void setDeviceId(const XsDeviceId id) { m_deviceId = id; }
421  /*! \brief Returns a copy the original message of the data packet
422  \details This returns the original message that was last set with
423  setMessage,
424  or in the constructor. Note that if existing data was updated, the
425  original data may have been
426  overwritten, only added data will not be returned in this message.
427  When the packet was constructed from a legacy message, the legacy
428  message will be returned.
429  \sa XsDataPacket_originalMessage
430  \returns An XsMessage containing a copy of the original message
431  */
432  inline XsMessage XSNOCOMEXPORT originalMessage(void) const
433  {
434  XsMessage returnVal;
435  return *XsDataPacket_originalMessage(this, &returnVal);
436  }
437 
438  /*! \copydoc XsDataPacket_dataFormat */
439  inline XsDataIdentifier dataFormat(XsDataIdentifier id) const
440  {
441  return XsDataPacket_dataFormat(this, id);
442  }
443 
444  /*! \copydoc XsDataPacket_getFPValueSize */
445  inline static uint8_t getFPValueSize(XsDataIdentifier id)
446  {
447  return XsDataPacket_getFPValueSize(id);
448  }
449 
450  /*! \brief \copybrief XsDataPacket_rawAcceleration */
451  inline XsUShortVector rawAcceleration(void) const
452  {
453  XsUShortVector returnVal;
454  return *XsDataPacket_rawAcceleration(this, &returnVal);
455  }
456 
457  /*! \copydoc XsDataPacket_containsRawAcceleration */
458  inline bool containsRawAcceleration(void) const
459  {
460  return 0 != XsDataPacket_containsRawAcceleration(this);
461  }
462 
463  /*! \copydoc XsDataPacket_setRawAcceleration */
464  inline void setRawAcceleration(const XsUShortVector& vec)
465  {
467  }
468 
469  /*! \brief \copybrief XsDataPacket_rawGyroscopeData */
470  inline XsUShortVector rawGyroscopeData(void) const
471  {
472  XsUShortVector returnVal;
473  return *XsDataPacket_rawGyroscopeData(this, &returnVal);
474  }
475 
476  /*! \copydoc XsDataPacket_containsRawGyroscopeData */
477  inline bool containsRawGyroscopeData(void) const
478  {
479  return 0 != XsDataPacket_containsRawGyroscopeData(this);
480  }
481 
482  /*! \brief \copybrief XsDataPacket_setRawGyroscopeData */
483  inline void setRawGyroscopeData(const XsUShortVector& vec)
484  {
486  }
487 
488  /*! \brief \copybrief XsDataPacket_rawGyroscopeTemperatureData */
489  inline XsUShortVector rawGyroscopeTemperatureData(void) const
490  {
491  XsUShortVector returnVal;
492  return *XsDataPacket_rawGyroscopeTemperatureData(this, &returnVal);
493  }
494 
495  /*! \copydoc XsDataPacket_containsRawGyroscopeTemperatureData */
496  inline bool containsRawGyroscopeTemperatureData(void) const
497  {
499  }
500 
501  /*! \brief \copybrief XsDataPacket_setRawGyroscopeTemperatureData */
502  inline void setRawGyroscopeTemperatureData(const XsUShortVector& vec)
503  {
505  }
506 
507  /*! \brief \copybrief XsDataPacket_rawMagneticField */
508  inline XsUShortVector rawMagneticField(void) const
509  {
510  XsUShortVector returnVal;
511  return *XsDataPacket_rawMagneticField(this, &returnVal);
512  }
513 
514  /*! \copydoc XsDataPacket_containsRawMagneticField */
515  inline bool containsRawMagneticField(void) const
516  {
517  return 0 != XsDataPacket_containsRawMagneticField(this);
518  }
519 
520  /*! \brief \copybrief XsDataPacket_setRawMagneticField */
521  inline void setRawMagneticField(const XsUShortVector& vec)
522  {
524  }
525 
526  /*! \brief \copybrief XsDataPacket_rawTemperature */
527  inline uint16_t rawTemperature(void) const
528  {
529  return XsDataPacket_rawTemperature(this);
530  }
531 
532  /*! \copydoc XsDataPacket_containsRawTemperature */
533  inline bool containsRawTemperature(void) const
534  {
535  return 0 != XsDataPacket_containsRawTemperature(this);
536  }
537 
538  /*! \brief \copybrief XsDataPacket_setRawTemperature */
539  inline void setRawTemperature(uint16_t temp)
540  {
541  XsDataPacket_setRawTemperature(this, temp);
542  }
543 
544  /*! \brief \copybrief XsDataPacket_rawData */
545  inline XsScrData rawData(void) const
546  {
547  XsScrData returnVal;
548  return *XsDataPacket_rawData(this, &returnVal);
549  }
550 
551  /*! \copydoc XsDataPacket_containsRawData */
552  inline bool containsRawData(void) const
553  {
554  return 0 != XsDataPacket_containsRawData(this);
555  }
556 
557  /*! \brief \copybrief XsDataPacket_setRawData */
558  inline void setRawData(const XsScrData& data)
559  {
561  }
562 
563  /*! \brief \copybrief XsDataPacket_calibratedAcceleration */
564  inline XsVector calibratedAcceleration(void) const
565  {
566  XsVector returnVal;
567  return *XsDataPacket_calibratedAcceleration(this, &returnVal);
568  }
569 
570  /*! \copydoc XsDataPacket_containsCalibratedAcceleration */
571  inline bool containsCalibratedAcceleration(void) const
572  {
574  }
575 
576  /*! \brief \copybrief XsDataPacket_setCalibratedAcceleration */
577  inline void setCalibratedAcceleration(const XsVector& vec)
578  {
580  }
581 
582  /*! \brief \copybrief XsDataPacket_calibratedGyroscopeData */
583  inline XsVector calibratedGyroscopeData(void) const
584  {
585  XsVector returnVal;
586  return *XsDataPacket_calibratedGyroscopeData(this, &returnVal);
587  }
588 
589  /*! \copydoc XsDataPacket_containsCalibratedGyroscopeData */
590  inline bool containsCalibratedGyroscopeData(void) const
591  {
593  }
594 
595  /*! \brief \copybrief XsDataPacket_setCalibratedGyroscopeData */
596  inline void setCalibratedGyroscopeData(const XsVector& vec)
597  {
599  }
600 
601  /*! \brief \copybrief XsDataPacket_calibratedMagneticField */
602  inline XsVector calibratedMagneticField(void) const
603  {
604  XsVector returnVal;
605  return *XsDataPacket_calibratedMagneticField(this, &returnVal);
606  }
607 
608  /*! \copydoc XsDataPacket_containsCalibratedMagneticField */
609  inline bool containsCalibratedMagneticField(void) const
610  {
612  }
613 
614  /*! \brief \copybrief XsDataPacket_setCalibratedMagneticField */
615  inline void setCalibratedMagneticField(const XsVector& vec)
616  {
618  }
619 
620  /*! \brief \copybrief XsDataPacket_calibratedData */
621  inline XsCalibratedData calibratedData(void) const
622  {
623  XsCalibratedData returnVal;
624  return *XsDataPacket_calibratedData(this, &returnVal);
625  }
626 
627  /*! \copydoc XsDataPacket_containsCalibratedData */
628  inline bool containsCalibratedData(void) const
629  {
630  return 0 != XsDataPacket_containsCalibratedData(this);
631  }
632 
633  /*! \brief \copybrief XsDataPacket_setCalibratedData */
634  inline void setCalibratedData(const XsCalibratedData& data)
635  {
637  }
638 
639  /*! \brief \copybrief XsDataPacket_orientationQuaternion */
640  inline XsQuaternion orientationQuaternion(
641  XsDataIdentifier coordinateSystem) const
642  {
643  XsQuaternion returnVal;
645  this, &returnVal, coordinateSystem);
646  }
647 
648  /*! \brief returns the orientation as a quaternion with the current
649  * coordinate system*/
650  inline XsQuaternion orientationQuaternion() const
651  {
652  XsQuaternion returnVal;
654  this, &returnVal, coordinateSystemOrientation());
655  }
656 
657  /*! \brief \copybrief XsDataPacket_setOrientationQuaternion */
658  inline void setOrientationQuaternion(
659  const XsQuaternion& data, XsDataIdentifier coordinateSystem)
660  {
661  XsDataPacket_setOrientationQuaternion(this, &data, coordinateSystem);
662  }
663 
664  /*! \brief \copybrief XsDataPacket_orientationEuler */
665  inline XsEuler orientationEuler(XsDataIdentifier coordinateSystem) const
666  {
667  XsEuler returnVal;
669  this, &returnVal, coordinateSystem);
670  }
671 
672  /*! \brief returns the orientation as an XsEuler with the current coordinate
673  * system*/
674  inline XsEuler orientationEuler() const
675  {
676  XsEuler returnVal;
678  this, &returnVal, coordinateSystemOrientation());
679  }
680 
681  /*! \brief \copybrief XsDataPacket_setOrientationEuler */
682  inline void setOrientationEuler(
683  const XsEuler& data, XsDataIdentifier coordinateSystem)
684  {
685  XsDataPacket_setOrientationEuler(this, &data, coordinateSystem);
686  }
687 
688  /*! \brief \copybrief XsDataPacket_orientationMatrix */
689  inline XsMatrix orientationMatrix(XsDataIdentifier coordinateSystem) const
690  {
691  XsMatrix returnVal;
693  this, &returnVal, coordinateSystem);
694  }
695 
696  /*! \brief returns the orientation as an orientation matrix with the current
697  * coordinate system*/
698  inline XsMatrix orientationMatrix() const
699  {
700  XsMatrix returnVal;
702  this, &returnVal, coordinateSystemOrientation());
703  }
704 
705  /*! \brief \copybrief XsDataPacket_setOrientationMatrix */
706  inline void setOrientationMatrix(
707  const XsMatrix& data, XsDataIdentifier coordinateSystem)
708  {
709  XsDataPacket_setOrientationMatrix(this, &data, coordinateSystem);
710  }
711 
712  /*! \copydoc XsDataPacket_containsOrientation */
713  inline bool containsOrientation(void) const
714  {
715  return 0 != XsDataPacket_containsOrientation(this);
716  }
717 
718  /*! \copydoc XsDataPacket_orientationIdentifier */
719  inline XsDataIdentifier orientationIdentifier() const
720  {
722  }
723 
724  /*! \copydoc XsDataPacket_coordinateSystemOrientation */
725  inline XsDataIdentifier coordinateSystemOrientation() const
726  {
728  }
729 
730  /*! \brief \copybrief XsDataPacket_sdiData */
731  inline XsSdiData sdiData(void) const
732  {
733  XsSdiData returnVal;
734  return *XsDataPacket_sdiData(this, &returnVal);
735  }
736 
737  /*! \copydoc XsDataPacket_containsSdiData */
738  inline bool containsSdiData(void) const
739  {
740  return 0 != XsDataPacket_containsSdiData(this);
741  }
742 
743  /*! \copydoc XsDataPacket_setSdiData */
744  inline void setSdiData(const XsSdiData& data)
745  {
747  }
748 
749  /*! \brief \copybrief XsDataPacket_status */
750  inline uint32_t status(void) const { return XsDataPacket_status(this); }
751  /*! \copydoc XsDataPacket_containsStatus */
752  inline bool containsStatus(void) const
753  {
754  return 0 != XsDataPacket_containsStatus(this);
755  }
756 
757  /*! \copydoc XsDataPacket_containsStatusByte */
758  inline bool containsStatusByte(void) const
759  {
760  return 0 != XsDataPacket_containsStatusByte(this);
761  }
762 
763  /*! \copydoc XsDataPacket_containsDetailedStatus */
764  inline bool containsDetailedStatus(void) const
765  {
766  return 0 != XsDataPacket_containsDetailedStatus(this);
767  }
768 
769  /*! \brief \copybrief XsDataPacket_setStatus */
770  inline void setStatus(const uint32_t data)
771  {
773  }
774 
775  /*! \brief \copybrief XsDataPacket_setStatusByte */
776  inline void setStatusByte(const uint8_t data)
777  {
779  }
780 
781  /*! \brief \copybrief XsDataPacket_packetCounter8 */
782  inline uint8_t packetCounter8(void) const
783  {
784  return XsDataPacket_packetCounter8(this);
785  }
786 
787  /*! \copydoc XsDataPacket_containsPacketCounter8 */
788  inline bool containsPacketCounter8(void) const
789  {
790  return 0 != XsDataPacket_containsPacketCounter8(this);
791  }
792 
793  /*! \brief \copybrief XsDataPacket_setPacketCounter8 */
794  inline void setPacketCounter8(uint8_t counter)
795  {
797  }
798 
799  /*! \brief \copybrief XsDataPacket_packetCounter */
800  inline uint16_t packetCounter(void) const
801  {
802  return XsDataPacket_packetCounter(this);
803  }
804 
805  /*! \copydoc XsDataPacket_containsPacketCounter */
806  inline bool containsPacketCounter(void) const
807  {
808  return 0 != XsDataPacket_containsPacketCounter(this);
809  }
810 
811  /*! \brief \copybrief XsDataPacket_setPacketCounter */
812  inline void setPacketCounter(uint16_t counter)
813  {
815  }
816 
817  /*! \brief \copybrief XsDataPacket_sampleTimeFine */
818  inline uint32_t sampleTimeFine(void) const
819  {
820  return XsDataPacket_sampleTimeFine(this);
821  }
822 
823  /*! \copydoc XsDataPacket_containsSampleTimeFine */
824  inline bool containsSampleTimeFine(void) const
825  {
826  return 0 != XsDataPacket_containsSampleTimeFine(this);
827  }
828 
829  /*! \brief \copybrief XsDataPacket_setSampleTimeFine */
830  inline void setSampleTimeFine(uint32_t counter)
831  {
833  }
834 
835  /*! \brief \copybrief XsDataPacket_sampleTimeCoarse */
836  inline uint32_t sampleTimeCoarse(void) const
837  {
838  return XsDataPacket_sampleTimeCoarse(this);
839  }
840 
841  /*! \copydoc XsDataPacket_containsSampleTimeCoarse */
842  inline bool containsSampleTimeCoarse(void) const
843  {
844  return 0 != XsDataPacket_containsSampleTimeCoarse(this);
845  }
846 
847  /*! \brief \copybrief XsDataPacket_setSampleTimeCoarse */
848  inline void setSampleTimeCoarse(uint32_t counter)
849  {
851  }
852 
853  /*! \brief \copybrief XsDataPacket_sampleTime64 */
854  inline uint64_t sampleTime64(void) const
855  {
856  return XsDataPacket_sampleTime64(this);
857  }
858 
859  /*! \copydoc XsDataPacket_containsSampleTime64 */
860  inline bool containsSampleTime64(void) const
861  {
862  return 0 != XsDataPacket_containsSampleTime64(this);
863  }
864 
865  /*! \brief \copybrief XsDataPacket_setSampleTime64 */
866  inline void setSampleTime64(uint64_t counter)
867  {
869  }
870 
871  /*! \brief \copybrief XsDataPacket_freeAcceleration */
872  inline XsVector freeAcceleration(void) const
873  {
874  XsVector returnVal;
875  return *XsDataPacket_freeAcceleration(this, &returnVal);
876  }
877 
878  /*! \copydoc XsDataPacket_containsFreeAcceleration */
879  inline bool containsFreeAcceleration(void) const
880  {
881  return 0 != XsDataPacket_containsFreeAcceleration(this);
882  }
883 
884  /*! \brief \copybrief XsDataPacket_setFreeAcceleration */
885  inline void setFreeAcceleration(const XsVector& g)
886  {
888  }
889 
890  /*! \brief \copybrief XsDataPacket_temperature */
891  inline double temperature(void) const
892  {
893  return XsDataPacket_temperature(this);
894  }
895 
896  /*! \copydoc XsDataPacket_containsTemperature */
897  inline bool containsTemperature(void) const
898  {
899  return 0 != XsDataPacket_containsTemperature(this);
900  }
901 
902  /*! \brief \copybrief XsDataPacket_setTemperature */
903  inline void setTemperature(double temp)
904  {
905  XsDataPacket_setTemperature(this, temp);
906  }
907 
908  /*! \brief \copybrief XsDataPacket_gpsPvtData */
909  inline XsGpsPvtData gpsPvtData(void) const
910  {
911  XsGpsPvtData returnVal;
912  return *XsDataPacket_gpsPvtData(this, &returnVal);
913  }
914 
915  /*! \copydoc XsDataPacket_containsGpsPvtData */
916  inline bool containsGpsPvtData(void) const
917  {
918  return 0 != XsDataPacket_containsGpsPvtData(this);
919  }
920 
921  /*! \copydoc XsDataPacket_setGpsPvtData */
922  inline void setGpsPvtData(const XsGpsPvtData& data)
923  {
925  }
926 
927  /*! \brief \copybrief XsDataPacket_pressure */
928  inline XsPressure pressure(void) const
929  {
930  XsPressure returnVal;
931  return *XsDataPacket_pressure(this, &returnVal);
932  }
933 
934  /*! \copydoc XsDataPacket_containsPressure */
935  inline bool containsPressure(void) const
936  {
937  return 0 != XsDataPacket_containsPressure(this);
938  }
939 
940  /*! \copydoc XsDataPacket_containsPressureAge */
941  inline bool containsPressureAge(void) const
942  {
943  return 0 != XsDataPacket_containsPressureAge(this);
944  }
945 
946  /*! \brief \copybrief XsDataPacket_setPressure */
947  inline void setPressure(const XsPressure& data)
948  {
950  }
951 
952  /*! \brief \copybrief XsDataPacket_analogIn1Data */
953  inline XsAnalogInData analogIn1Data(void) const
954  {
955  XsAnalogInData returnVal;
956  return *XsDataPacket_analogIn1Data(this, &returnVal);
957  }
958 
959  /*! \copydoc XsDataPacket_containsAnalogIn1Data */
960  inline bool containsAnalogIn1Data(void) const
961  {
962  return 0 != XsDataPacket_containsAnalogIn1Data(this);
963  }
964 
965  /*! \brief \copybrief XsDataPacket_setAnalogIn1Data */
966  inline void setAnalogIn1Data(const XsAnalogInData& data)
967  {
969  }
970 
971  /*! \brief \copybrief XsDataPacket_analogIn2Data */
972  inline XsAnalogInData analogIn2Data(void) const
973  {
974  XsAnalogInData returnVal;
975  return *XsDataPacket_analogIn2Data(this, &returnVal);
976  }
977 
978  /*! \copydoc XsDataPacket_containsAnalogIn2Data */
979  inline bool containsAnalogIn2Data(void) const
980  {
981  return 0 != XsDataPacket_containsAnalogIn2Data(this);
982  }
983 
984  /*! \brief \copybrief XsDataPacket_setAnalogIn2Data */
985  inline void setAnalogIn2Data(const XsAnalogInData& data)
986  {
988  }
989 
990  /*! \brief \copybrief XsDataPacket_positionLLA */
991  inline XsVector positionLLA(void) const
992  {
993  XsVector returnVal;
994  return *XsDataPacket_positionLLA(this, &returnVal);
995  }
996 
997  /*! \copydoc XsDataPacket_containsPositionLLA */
998  inline bool containsPositionLLA(void) const
999  {
1000  return 0 != XsDataPacket_containsPositionLLA(this);
1001  }
1002 
1003  /*! \copydoc XsDataPacket_setPositionLLA */
1004  inline void setPositionLLA(const XsVector& data)
1005  {
1007  }
1008 
1009  /*! \brief \copybrief XsDataPacket_latitudeLongitude */
1010  inline XsVector latitudeLongitude(void) const
1011  {
1012  XsVector returnVal;
1013  return *XsDataPacket_latitudeLongitude(this, &returnVal);
1014  }
1015 
1016  /*! \copydoc XsDataPacket_containsLatitudeLongitude */
1017  inline bool containsLatitudeLongitude(void) const
1018  {
1019  return 0 != XsDataPacket_containsLatitudeLongitude(this);
1020  }
1021 
1022  /*! \copydoc XsDataPacket_setLatitudeLongitude */
1023  inline void setLatitudeLongitude(const XsVector& data)
1024  {
1026  }
1027 
1028  /*! \brief \copybrief XsDataPacket_altitude */
1029  inline double altitude(void) const { return XsDataPacket_altitude(this); }
1030  /*! \copydoc XsDataPacket_containsAltitude */
1031  inline bool containsAltitude(void) const
1032  {
1033  return 0 != XsDataPacket_containsAltitude(this);
1034  }
1035 
1036  /*! \copydoc XsDataPacket_setAltitude */
1037  inline void setAltitude(double data)
1038  {
1040  }
1041 
1042  /*! \brief \copybrief XsDataPacket_velocity */
1043  inline XsVector velocity(XsDataIdentifier coordinateSystem) const
1044  {
1045  XsVector returnVal;
1046  return *XsDataPacket_velocity(this, &returnVal, coordinateSystem);
1047  }
1048 
1049  /*! \brief returns the velocity with the current coordinate system*/
1050  inline XsVector velocity(void) const
1051  {
1052  XsVector returnVal;
1053  return *XsDataPacket_velocity(
1054  this, &returnVal, coordinateSystemVelocity());
1055  }
1056 
1057  /*! \copydoc XsDataPacket_containsVelocity */
1058  inline bool containsVelocity(void) const
1059  {
1060  return 0 != XsDataPacket_containsVelocity(this);
1061  }
1062 
1063  /*! \brief \copybrief XsDataPacket_setVelocity */
1064  inline void setVelocity(
1065  const XsVector& data, XsDataIdentifier coordinateSystem)
1066  {
1067  XsDataPacket_setVelocity(this, &data, coordinateSystem);
1068  }
1069 
1070  /*! \brief \copybrief XsDataPacket_velocityIdentifier */
1071  inline XsDataIdentifier velocityIdentifier() const
1072  {
1073  return XsDataPacket_velocityIdentifier(this);
1074  }
1075 
1076  /*! \copydoc XsDataPacket_coordinateSystemVelocity */
1077  inline XsDataIdentifier coordinateSystemVelocity() const
1078  {
1080  }
1081 
1082  /*! \brief \copybrief XsDataPacket_utcTime */
1083  inline XsUtcTime utcTime(void) const
1084  {
1085  XsUtcTime returnVal;
1086  return *XsDataPacket_utcTime(this, &returnVal);
1087  }
1088 
1089  /*! \copydoc XsDataPacket_containsUtcTime */
1090  inline bool containsUtcTime(void) const
1091  {
1092  return 0 != XsDataPacket_containsUtcTime(this);
1093  }
1094 
1095  /*! \brief \copybrief XsDataPacket_setUtcTime */
1096  inline void setUtcTime(const XsUtcTime& data)
1097  {
1098  XsDataPacket_setUtcTime(this, &data);
1099  }
1100 
1101  /*! \brief \copybrief XsDataPacket_frameRange */
1102  inline XsRange frameRange() const
1103  {
1104  XsRange returnVal;
1105  return *XsDataPacket_frameRange(this, &returnVal);
1106  }
1107 
1108  /*! \copydoc XsDataPacket_containsFrameRange */
1109  inline bool containsFrameRange() const
1110  {
1111  return 0 != XsDataPacket_containsFrameRange(this);
1112  }
1113 
1114  /*! \copydoc XsDataPacket_setFrameRange */
1115  inline void setFrameRange(const XsRange& r)
1116  {
1117  XsDataPacket_setFrameRange(this, &r);
1118  }
1119 
1120  /*! \brief \copybrief XsDataPacket_rssi */
1121  inline int rssi() const { return XsDataPacket_rssi(this); }
1122  /*! \copydoc XsDataPacket_containsRssi */
1123  inline bool containsRssi() const
1124  {
1125  return 0 != XsDataPacket_containsRssi(this);
1126  }
1127 
1128  /*! \copydoc XsDataPacket_setRssi */
1129  inline void setRssi(int r) { XsDataPacket_setRssi(this, r); }
1130  /*! \brief \copybrief XsDataPacket_rawGpsDop */
1131  inline XsRawGpsDop rawGpsDop(void) const
1132  {
1133  XsRawGpsDop returnVal;
1134  return *XsDataPacket_rawGpsDop(this, &returnVal);
1135  }
1136 
1137  /*! \brief \copybrief XsDataPacket_containsRawGpsDop */
1138  inline bool containsRawGpsDop(void) const
1139  {
1140  return 0 != XsDataPacket_containsRawGpsDop(this);
1141  }
1142 
1143  /*! \brief \copybrief XsDataPacket_rawGpsSol */
1144  inline XsRawGpsSol rawGpsSol(void) const
1145  {
1146  XsRawGpsSol returnVal = XsRawGpsSol();
1147  return *XsDataPacket_rawGpsSol(this, &returnVal);
1148  }
1149 
1150  /*! \brief \copybrief XsDataPacket_containsRawGpsSol */
1151  inline bool containsRawGpsSol(void) const
1152  {
1153  return 0 != XsDataPacket_containsRawGpsSol(this);
1154  }
1155 
1156  /*! \brief \copybrief XsDataPacket_rawGpsTimeUtc */
1157  inline XsRawGpsTimeUtc rawGpsTimeUtc(void) const
1158  {
1159  XsRawGpsTimeUtc returnVal;
1160  return *XsDataPacket_rawGpsTimeUtc(this, &returnVal);
1161  }
1162 
1163  /*! \brief \copybrief XsDataPacket_containsRawGpsTimeUtc */
1164  inline bool containsRawGpsTimeUtc(void) const
1165  {
1166  return 0 != XsDataPacket_containsRawGpsTimeUtc(this);
1167  }
1168 
1169  /*! \brief \copybrief XsDataPacket_rawGpsSvInfo */
1170  inline XsRawGpsSvInfo rawGpsSvInfo(void) const
1171  {
1172  XsRawGpsSvInfo returnVal;
1173  return *XsDataPacket_rawGpsSvInfo(this, &returnVal);
1174  }
1175 
1176  /*! \brief \copybrief XsDataPacket_containsRawGpsSvInfo */
1177  inline bool containsRawGpsSvInfo(void) const
1178  {
1179  return 0 != XsDataPacket_containsRawGpsSvInfo(this);
1180  }
1181 
1182  /*! \copydoc XsDataPacket_append */
1183  inline XsDataPacket& append(const XsDataPacket& other)
1184  {
1185  return *XsDataPacket_append(this, &other);
1186  }
1187 
1188  /*! \private \brief Set the time of arrival of the data packet */
1189  inline void setTimeOfArrival(XsTimeStamp t) { m_toa = t; }
1190  /*! \brief Return the time of arrival of the data packet. Only valid for
1191  * live streams. The behaviour for file streams is undefined and may change
1192  * in the future. */
1193  inline XsTimeStamp timeOfArrival() const { return m_toa; }
1194  /*! \private \brief Set the packet ID of the data packet*/
1195  inline void setPacketId(XsTimeStamp t) { m_packetId = t; }
1196  /*! \brief Return the ID of the packet.
1197  \details This ID is based on, depending on availability: (1) packet
1198  counter (2) sample time (3) arrival order
1199  \returns The ID of the packet.
1200  */
1201  inline XsTimeStamp packetId() const { return m_packetId; }
1202  /*! \copydoc XsDataPacket_setTriggerIndication */
1203  void setTriggerIndication(
1204  XsDataIdentifier triggerId,
1205  XsTriggerIndicationData const& triggerIndicationData)
1206  {
1208  this, triggerId, &triggerIndicationData);
1209  }
1210 
1211  /*! \brief Returns the trigger indication data of a packet
1212  \details
1213  If the packet does not contain the requested data, the return val struct
1214  will be set to all zeroes
1215  \param[in] triggerId The trigger data identifier to add data for (e.g.
1216  XDI_TriggerIn1 or XDI_TriggerIn2)
1217  \returns the trigger indication data of a packet
1218  */
1219  XsTriggerIndicationData triggerIndication(XsDataIdentifier triggerId)
1220  {
1221  XsTriggerIndicationData returnVal;
1222  return *XsDataPacket_triggerIndication(this, triggerId, &returnVal);
1223  }
1224 
1225  /*! \copydoc XsDataPacket_containsTriggerIndication */
1226  int containsTriggerIndication(XsDataIdentifier triggerId)
1227  {
1228  return XsDataPacket_containsTriggerIndication(this, triggerId);
1229  }
1230 
1231  protected:
1232 /*! \privatesection */
1233 #endif // __cplusplus
1234 
1235  /** The message that contains the data */
1237  /** Optional legacy MtData message as received (for logging the received
1238  * data only) */
1240  /** The device Id to which the message belongs */
1242  /** Last found data identifer, speeds up searches */
1244  /** Offset of last found data identifier, speeds up searches */
1246  /** The number of data items in the message */
1248  /** Length of the original message payload */
1250  /** Time of arrival (live packets only) */
1252  /** 64 bit packet id, based on, depending on availability: (1) packet
1253  * counter (2) sample time (3) arrival order */
1255 };
1256 
1257 #endif // file guard
XSTYPES_DLL_API int XsDataPacket_containsPressureAge(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsAnalogInData * XsDataPacket_analogIn2Data(const XsDataPacket *thisPtr, XsAnalogInData *returnVal)
GLenum GLint GLuint mask
Definition: glext.h:4062
struct XsRawGpsSol XsRawGpsSol
Definition: xsrawgpssol.h:74
XSTYPES_DLL_API void XsMessage_setMessageId(XsMessage *thisPtr, XsXbusMessageId msgId)
XSTYPES_DLL_API void XsDataPacket_setPositionLLA(XsDataPacket *thisPtr, const XsVector *data)
GLdouble GLdouble t
Definition: glext.h:3695
XSTYPES_DLL_API void XsDataPacket_setFrameRange(XsDataPacket *thisPtr, const XsRange *r)
XSTYPES_DLL_API void XsDataPacket_setAnalogIn2Data(XsDataPacket *thisPtr, const XsAnalogInData *data)
unsigned __int16 uint16_t
Definition: rptypes.h:47
XSTYPES_DLL_API int XsDataPacket_itemOffsetLoose(const XsDataPacket *thisPtr, XsDataIdentifier id)
XSTYPES_DLL_API XsVector * XsDataPacket_calibratedGyroscopeData(const XsDataPacket *thisPtr, XsVector *returnVal)
XSTYPES_DLL_API void XsDataPacket_construct(XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setStatusByte(XsDataPacket *thisPtr, uint8_t data)
XSTYPES_DLL_API void XsDataPacket_setOrientationMatrix(XsDataPacket *thisPtr, const XsMatrix *data, XsDataIdentifier coordinateSystem)
XSTYPES_DLL_API XsVector * XsDataPacket_calibratedAcceleration(const XsDataPacket *thisPtr, XsVector *returnVal)
XSTYPES_DLL_API uint8_t XsDataPacket_getFPValueSize(XsDataIdentifier id)
XSTYPES_DLL_API double XsDataPacket_altitude(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsDataIdentifier XsDataPacket_coordinateSystemVelocity(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setCalibratedMagneticField(XsDataPacket *thisPtr, const XsVector *vec)
XSTYPES_DLL_API int XsDataPacket_containsSdiData(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsVector * XsDataPacket_positionLLA(const XsDataPacket *thisPtr, XsVector *returnVal)
A vector containing 3 short values.
XSTYPES_DLL_API int XsDataPacket_containsCalibratedAcceleration(const XsDataPacket *thisPtr)
struct XsDataPacket XsDataPacket
Definition: xsdatapacket.h:42
XSTYPES_DLL_API void XsDataPacket_setRawTemperature(XsDataPacket *thisPtr, uint16_t temp)
XSTYPES_DLL_API int XsDataPacket_containsAnalogIn2Data(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsDataPacket * XsDataPacket_append(XsDataPacket *thisPtr, const XsDataPacket *other)
XSTYPES_DLL_API XsPressure * XsDataPacket_pressure(const XsDataPacket *thisPtr, XsPressure *returnVal)
uint16_t m_originalMessageLength
Length of the original message payload.
Data for a trigger indication message.
XSTYPES_DLL_API int XsDataPacket_containsPositionLLA(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setPacketCounter(XsDataPacket *thisPtr, uint16_t counter)
XSTYPES_DLL_API int XsDataPacket_containsSampleTime64(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsRawGyroscopeData(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsVector * XsDataPacket_velocity(const XsDataPacket *thisPtr, XsVector *returnVal, XsDataIdentifier coordinateSystem)
XSTYPES_DLL_API void XsDataPacket_setRawGyroscopeData(XsDataPacket *thisPtr, const XsUShortVector *vec)
XSTYPES_DLL_API int XsDataPacket_containsVelocity(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setSampleTimeCoarse(XsDataPacket *thisPtr, uint32_t counter)
XSTYPES_DLL_API double XsDataPacket_temperature(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsCalibratedMagneticField(const XsDataPacket *thisPtr)
A container for NAV-TIMEUTC data.
XSTYPES_DLL_API void XsDataPacket_setRawGyroscopeTemperatureData(XsDataPacket *thisPtr, const XsUShortVector *vec)
XSTYPES_DLL_API XsAnalogInData * XsDataPacket_analogIn1Data(const XsDataPacket *thisPtr, XsAnalogInData *returnVal)
XSTYPES_DLL_API int XsDataPacket_containsLatitudeLongitude(const XsDataPacket *thisPtr)
XsDataIdentifier
Defines the data identifiers.
XSTYPES_DLL_API XsVector * XsDataPacket_latitudeLongitude(const XsDataPacket *thisPtr, XsVector *returnVal)
XSTYPES_DLL_API uint32_t XsDataPacket_sampleTimeFine(const XsDataPacket *thisPtr)
GLuint src
Definition: glext.h:7397
XSTYPES_DLL_API void XsDataPacket_setLatitudeLongitude(XsDataPacket *thisPtr, const XsVector *data)
int counter
XsTimeStamp m_toa
Time of arrival (live packets only)
XSTYPES_DLL_API void XsDataPacket_setPacketCounter8(XsDataPacket *thisPtr, uint8_t counter)
XSTYPES_DLL_API void XsDataPacket_setSampleTimeFine(XsDataPacket *thisPtr, uint32_t counter)
XSTYPES_DLL_API XsTriggerIndicationData * XsDataPacket_triggerIndication(XsDataPacket const *thisPtr, XsDataIdentifier triggerId, XsTriggerIndicationData *returnVal)
XSTYPES_DLL_API int XsDataPacket_containsRawGpsSol(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setAltitude(XsDataPacket *thisPtr, double data)
XSTYPES_DLL_API void XsDataPacket_setSdiData(XsDataPacket *thisPtr, const XsSdiData *data)
XSTYPES_DLL_API XsUShortVector * XsDataPacket_rawGyroscopeTemperatureData(const XsDataPacket *thisPtr, XsUShortVector *returnVal)
unsigned char uint8_t
Definition: rptypes.h:44
XSTYPES_DLL_API int XsDataPacket_containsDetailedStatus(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsRawGyroscopeTemperatureData(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsScrData * XsDataPacket_rawData(const XsDataPacket *thisPtr, XsScrData *returnVal)
XSTYPES_DLL_API int XsDataPacket_containsRawGpsTimeUtc(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_itemOffsetMasked(const XsDataPacket *thisPtr, XsDataIdentifier id, XsDataIdentifier mask)
XSTYPES_DLL_API int XsDataPacket_containsFrameRange(const XsDataPacket *thisPtr)
Structure for storing a single message.
Definition: xsmessage.h:202
uint16_t m_itemCount
The number of data items in the message.
XSTYPES_DLL_API int XsDataPacket_containsRssi(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setStatus(XsDataPacket *thisPtr, uint32_t data)
XSTYPES_DLL_API int XsDataPacket_containsTemperature(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsOrientation(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsRawGpsDop * XsDataPacket_rawGpsDop(const XsDataPacket *thisPtr, XsRawGpsDop *returnVal)
XSTYPES_DLL_API XsUShortVector * XsDataPacket_rawMagneticField(const XsDataPacket *thisPtr, XsUShortVector *returnVal)
XsDataIdentifier m_lastFoundId
Last found data identifer, speeds up searches.
GLubyte g
Definition: glext.h:6372
XSTYPES_DLL_API void XsDataPacket_setRawAcceleration(XsDataPacket *thisPtr, const XsUShortVector *vec)
GLubyte GLubyte b
Definition: glext.h:6372
XSTYPES_DLL_API void XsDataPacket_setFreeAcceleration(XsDataPacket *thisPtr, const XsVector *g)
XSTYPES_DLL_API XsRange * XsDataPacket_frameRange(const XsDataPacket *thisPtr, XsRange *returnVal)
Class for managing timestamps in a unified way.
Definition: xstimestamp.h:56
XSTYPES_DLL_API void XsDataPacket_setRawData(XsDataPacket *thisPtr, const XsScrData *data)
XSTYPES_DLL_API uint16_t XsDataPacket_packetCounter(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsSdiData * XsDataPacket_sdiData(const XsDataPacket *thisPtr, XsSdiData *returnVal)
int m_lastFoundOffset
Offset of last found data identifier, speeds up searches.
XSTYPES_DLL_API void XsDataPacket_setMessage(XsDataPacket *thisPtr, const XsMessage *msg)
bool empty() const
Definition: ts_hash_map.h:190
XsDeviceId m_deviceId
The device Id to which the message belongs.
XSTYPES_DLL_API uint64_t XsDataPacket_sampleTime64(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsRawGpsSvInfo(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsCalibratedData(const XsDataPacket *thisPtr)
Data from analog inputs from sensors.
#define XSTYPES_DLL_API
Definition: xstypesconfig.h:9
XSTYPES_DLL_API int XsDataPacket_containsPressure(const XsDataPacket *thisPtr)
unsigned __int64 uint64_t
Definition: rptypes.h:53
XSTYPES_DLL_API XsGpsPvtData * XsDataPacket_gpsPvtData(const XsDataPacket *thisPtr, XsGpsPvtData *returnVal)
XSTYPES_DLL_API void XsDataPacket_setPressure(XsDataPacket *thisPtr, const XsPressure *data)
XSTYPES_DLL_API XsMessage * XsDataPacket_originalMessage(const XsDataPacket *thisPtr, XsMessage *returnVal)
XSTYPES_DLL_API void XsDataPacket_setCalibratedGyroscopeData(XsDataPacket *thisPtr, const XsVector *vec)
XSTYPES_DLL_API XsRawGpsSol * XsDataPacket_rawGpsSol(const XsDataPacket *thisPtr, XsRawGpsSol *returnVal)
XSTYPES_DLL_API XsRawGpsTimeUtc * XsDataPacket_rawGpsTimeUtc(const XsDataPacket *thisPtr, XsRawGpsTimeUtc *returnVal)
XSTYPES_DLL_API XsCalibratedData * XsDataPacket_calibratedData(const XsDataPacket *thisPtr, XsCalibratedData *returnVal)
XSTYPES_DLL_API int XsDataPacket_containsStatusByte(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsPacketCounter8(const XsDataPacket *thisPtr)
GLdouble GLdouble GLdouble r
Definition: glext.h:3711
XSTYPES_DLL_API XsEuler * XsDataPacket_orientationEuler(const XsDataPacket *thisPtr, XsEuler *returnVal, XsDataIdentifier coordinateSystem)
XSTYPES_DLL_API void XsDataPacket_setOrientationQuaternion(XsDataPacket *thisPtr, const XsQuaternion *data, XsDataIdentifier coordinateSystem)
A structure for storing UTC Time values.
Definition: xsutctime.h:15
XSTYPES_DLL_API int XsDataPacket_containsUtcTime(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsDataIdentifier XsDataPacket_dataFormat(const XsDataPacket *thisPtr, XsDataIdentifier id)
XSTYPES_DLL_API XsUtcTime * XsDataPacket_utcTime(const XsDataPacket *thisPtr, XsUtcTime *returnVal)
A container for NAV-SVINFO data.
XSTYPES_DLL_API int XsDataPacket_containsSampleTimeFine(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsTriggerIndication(XsDataPacket const *thisPtr, XsDataIdentifier triggerId)
GLuint id
Definition: glext.h:3920
XsMessage m_msg
The message that contains the data.
XSTYPES_DLL_API XsVector * XsDataPacket_freeAcceleration(const XsDataPacket *thisPtr, XsVector *returnVal)
XSTYPES_DLL_API int XsDataPacket_containsCalibratedGyroscopeData(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsRawData(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsRawAcceleration(const XsDataPacket *thisPtr)
_u8 status
Definition: rplidar_cmd.h:19
XSTYPES_DLL_API int XsDataPacket_containsPacketCounter(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setCalibratedData(XsDataPacket *thisPtr, const XsCalibratedData *data)
Contains data received from a device or read from a file.
Definition: xsdatapacket.h:315
XSTYPES_DLL_API int XsDataPacket_rssi(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsAnalogIn1Data(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsMatrix * XsDataPacket_orientationMatrix(const XsDataPacket *thisPtr, XsMatrix *returnVal, XsDataIdentifier coordinateSystem)
XsMessage m_legacyMsg
Optional legacy MtData message as received (for logging the received data only)
A container for NAV-DOP data.
Definition: xsrawgpsdop.h:31
XSTYPES_DLL_API XsQuaternion * XsDataPacket_orientationQuaternion(const XsDataPacket *thisPtr, XsQuaternion *returnVal, XsDataIdentifier coordinateSystem)
XSTYPES_DLL_API int XsDataPacket_containsRawTemperature(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setTemperature(XsDataPacket *thisPtr, double temp)
XSTYPES_DLL_API int XsDataPacket_containsStatus(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setUtcTime(XsDataPacket *thisPtr, const XsUtcTime *data)
Container for raw sensor measurement data.
Definition: xsscrdata.h:35
XSTYPES_DLL_API void XsDataPacket_setTriggerIndication(XsDataPacket *thisPtr, XsDataIdentifier triggerId, XsTriggerIndicationData const *triggerIndicationData)
XSTYPES_DLL_API XsDataIdentifier XsDataPacket_coordinateSystemOrientation(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsFreeAcceleration(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setOrientationEuler(XsDataPacket *thisPtr, const XsEuler *data, XsDataIdentifier coordinateSystem)
XSTYPES_DLL_API XsDataIdentifier XsDataPacket_orientationIdentifier(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setRawMagneticField(XsDataPacket *thisPtr, const XsUShortVector *vec)
XSTYPES_DLL_API void XsDataPacket_swap(XsDataPacket *a, XsDataPacket *b)
XSTYPES_DLL_API XsRawGpsSvInfo * XsDataPacket_rawGpsSvInfo(const XsDataPacket *thisPtr, XsRawGpsSvInfo *returnVal)
XSTYPES_DLL_API void XsDataPacket_setRssi(XsDataPacket *thisPtr, int r)
XSTYPES_DLL_API int XsDataPacket_containsSampleTimeCoarse(const XsDataPacket *thisPtr)
XSTYPES_DLL_API uint8_t XsDataPacket_packetCounter8(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsUShortVector * XsDataPacket_rawGyroscopeData(const XsDataPacket *thisPtr, XsUShortVector *returnVal)
XSTYPES_DLL_API void XsDataPacket_setSampleTime64(XsDataPacket *thisPtr, uint64_t counter)
XSTYPES_DLL_API void XsDataPacket_setVelocity(XsDataPacket *thisPtr, const XsVector *data, XsDataIdentifier coordinateSystem)
XSTYPES_DLL_API void XsDataPacket_setAnalogIn1Data(XsDataPacket *thisPtr, const XsAnalogInData *data)
XSTYPES_DLL_API void XsDataPacket_copy(XsDataPacket *copy, XsDataPacket const *src)
XSTYPES_DLL_API int XsDataPacket_containsAltitude(const XsDataPacket *thisPtr)
XSTYPES_DLL_API XsUShortVector * XsDataPacket_rawAcceleration(const XsDataPacket *thisPtr, XsUShortVector *returnVal)
unsigned __int32 uint32_t
Definition: rptypes.h:50
XSTYPES_DLL_API void XsDataPacket_setCalibratedAcceleration(XsDataPacket *thisPtr, const XsVector *vec)
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: glext.h:3550
#define deviceId
Definition: CIMUXSens.cpp:40
GLubyte GLubyte GLubyte a
Definition: glext.h:6372
XSTYPES_DLL_API XsVector * XsDataPacket_calibratedMagneticField(const XsDataPacket *thisPtr, XsVector *returnVal)
XsTimeStamp m_packetId
64 bit packet id, based on, depending on availability: (1) packet counter (2) sample time (3) arrival...
A container for NAV-SOL data.
Definition: xsrawgpssol.h:27
XSTYPES_DLL_API uint32_t XsDataPacket_status(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_destruct(XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_empty(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsRawGpsDop(const XsDataPacket *thisPtr)
XSTYPES_DLL_API uint32_t XsDataPacket_sampleTimeCoarse(const XsDataPacket *thisPtr)
Data from the GPS unit of a legacy MTi-G.
Definition: xsgpspvtdata.h:35
Pressure data.
Definition: xspressure.h:17
XSTYPES_DLL_API uint16_t XsDataPacket_rawTemperature(const XsDataPacket *thisPtr)
XSTYPES_DLL_API void XsDataPacket_setGpsPvtData(XsDataPacket *thisPtr, const XsGpsPvtData *data)
XSTYPES_DLL_API XsDataIdentifier XsDataPacket_velocityIdentifier(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsRawMagneticField(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_containsGpsPvtData(const XsDataPacket *thisPtr)
XSTYPES_DLL_API int XsDataPacket_itemOffsetExact(const XsDataPacket *thisPtr, XsDataIdentifier id)



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019