LibMultiSense
LibMultiSense Documentation
ImuDataMessage.hh
Go to the documentation of this file.
1 
39 #ifndef LibMultiSense_ImuDataMessage
40 #define LibMultiSense_ImuDataMessage
41 
42 #include "utility/Portability.hh"
43 
44 namespace crl {
45 namespace multisense {
46 namespace details {
47 namespace wire {
48 
50 public:
51  static CRL_CONSTEXPR VersionType VERSION = 2;
52  static CRL_CONSTEXPR uint16_t TYPE_ACCEL = 1;
53  static CRL_CONSTEXPR uint16_t TYPE_GYRO = 2;
54  static CRL_CONSTEXPR uint16_t TYPE_MAG = 3;
55 
56  uint16_t type;
57  int64_t timeNanoSeconds;
58  float x, y, z;
59  uint64_t ptpNanoSeconds;
60 
61 #ifndef SENSORPOD_FIRMWARE
62  template<class Archive>
63  void serialize(Archive& message,
64  const VersionType version)
65  {
66  (void) version;
67  message & type;
68  message & timeNanoSeconds;
69  message & x;
70  message & y;
71  message & z;
72 
73  if (version >= 2)
74  {
75  message & ptpNanoSeconds;
76  }
77  }
78 #endif // !SENSORPOD_FIRMWARE
79 };
80 
81 class ImuData {
82 public:
85 
86  uint32_t sequence;
87  std::vector<ImuSample> samples;
88 
89 #ifndef SENSORPOD_FIRMWARE
90 
91  //
92  // Constructors
93 
95  ImuData() {};
96 
97  //
98  // Serialization routine
99 
100  template<class Archive>
101  void serialize(Archive& message,
102  const VersionType version)
103  {
104  (void) version;
105  message & sequence;
106  message & samples;
107  }
108 #endif // !SENSORPOD_FIRMWARE
109 
110 };
111 
112 }}}} // namespaces
113 
114 #endif
crl::multisense::details::wire::ImuSample
Definition: ImuDataMessage.hh:49
crl::multisense::details::wire::ImuData::serialize
void serialize(Archive &message, const VersionType version)
Definition: ImuDataMessage.hh:101
crl::multisense::details::wire::ImuSample::timeNanoSeconds
int64_t timeNanoSeconds
Definition: ImuDataMessage.hh:57
crl::multisense::details::wire::ImuSample::z
float z
Definition: ImuDataMessage.hh:58
crl::multisense::details::wire::ImuSample::type
uint16_t type
Definition: ImuDataMessage.hh:56
crl::multisense::details::wire::ID_DATA_IMU
static CRL_CONSTEXPR IdType ID_DATA_IMU
Definition: Protocol.hh:221
crl::multisense::details::wire::ImuSample::ptpNanoSeconds
uint64_t ptpNanoSeconds
Definition: ImuDataMessage.hh:59
Portability.hh
WIRE_HEADER_ATTRIBS_
#define WIRE_HEADER_ATTRIBS_
Definition: Protocol.hh:65
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition: Portability.hh:49
crl
Definition: BufferStream.hh:51
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition: Protocol.hh:137
crl::multisense::details::wire::ImuData::sequence
uint32_t sequence
Definition: ImuDataMessage.hh:86
crl::multisense::details::wire::ImuData
Definition: ImuDataMessage.hh:81
crl::multisense::details::wire::ImuData::VERSION
static CRL_CONSTEXPR VersionType VERSION
Definition: ImuDataMessage.hh:84
crl::multisense::details::wire::ImuData::ImuData
ImuData(utility::BufferStreamReader &r, VersionType v)
Definition: ImuDataMessage.hh:94
crl::multisense::details::utility::BufferStreamReader
Definition: BufferStream.hh:192
crl::multisense::details::wire::ImuData::ImuData
ImuData()
Definition: ImuDataMessage.hh:95
multisense
Definition: MultiSenseChannel.hh:44
crl::multisense::details::wire::ImuData::samples
std::vector< ImuSample > samples
Definition: ImuDataMessage.hh:87
crl::multisense::details::wire::ImuData::ID
static CRL_CONSTEXPR IdType ID
Definition: ImuDataMessage.hh:83
crl::multisense::details::wire::IdType
uint16_t IdType
Definition: Protocol.hh:136
crl::multisense::details::wire::ImuSample::serialize
void serialize(Archive &message, const VersionType version)
Definition: ImuDataMessage.hh:63