LibMultiSense
LibMultiSense Documentation
SecondaryAppDataMessage.hh
Go to the documentation of this file.
1 
37 #ifndef LibMultiSense_SecondaryAppData
38 #define LibMultiSense_SecondaryAppData
39 
40 #include <typeinfo>
41 #include <cmath>
42 
43 #include "MultiSense/details/utility/Portability.hh"
44 
45 namespace crl {
46 namespace multisense {
47 namespace details {
48 namespace wire {
49 
51 public:
52 
54 static CRL_CONSTEXPR VersionType VERSION = 1;
55 
56 #ifdef SENSORPOD_FIRMWARE
57  IdType id;
58  VersionType version;
59 #endif // SENSORPOD_FIRMWARE
60 
61  uint32_t source;
62  uint32_t length;
63  int64_t frameId;
64  uint32_t timeSeconds;
65  uint32_t timeMicroSeconds;
66  uint32_t sourceExtended;
67 
69  :
70 #ifdef SENSORDPOD_FIRMWARE
71  id(ID),
72  version(VERSION),
73 #endif // SENSORPOD_FIRMWARE
74  source(0),
75  length(0),
76  frameId(0),
77  timeSeconds(0),
78  timeMicroSeconds(0)
79  {};
80 };
81 
82 #ifndef SENSORPOD_FIRMWARE
83 
85 public:
86 
87  void *dataP;
88 
89  //
90  // Constructors
91 
93  SecondaryAppData() : dataP(NULL) {};
94 
95  //
96  // Serialization routine
97 
98  template<class Archive>
99  void serialize(Archive& message,
100  const VersionType version)
101  {
102  (void) version;
103  message & source;
104  message & length;
105  message & frameId;
106  message & timeSeconds;
107  message & timeMicroSeconds;
108  message & sourceExtended;
109 
110  if (typeid(Archive) == typeid(utility::BufferStreamWriter)) {
111 
112  message.write(dataP, length);
113 
114  } else {
115 
116  dataP = message.peek();
117  message.seek(message.tell() + length);
118  }
119 
120  }
121 };
122 
123 #endif // !SENSORPOD_FIRMWARE
124 
125 }}}} // namespaces
126 
127 #endif
crl::multisense::details::wire::SecondaryAppHeader::timeMicroSeconds
uint32_t timeMicroSeconds
Definition: SecondaryAppDataMessage.hh:65
crl::multisense::details::wire::SecondaryAppHeader::source
uint32_t source
Definition: SecondaryAppDataMessage.hh:61
crl::multisense::details::wire::SecondaryAppData
Definition: SecondaryAppDataMessage.hh:84
WIRE_HEADER_ATTRIBS_
#define WIRE_HEADER_ATTRIBS_
Definition: Protocol.hh:65
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition: Portability.hh:49
crl::multisense::details::wire::SecondaryAppData::dataP
void * dataP
Definition: SecondaryAppDataMessage.hh:87
crl::multisense::details::wire::SecondaryAppData::SecondaryAppData
SecondaryAppData()
Definition: SecondaryAppDataMessage.hh:93
crl
Definition: BufferStream.hh:51
crl::multisense::details::wire::SecondaryAppHeader::length
uint32_t length
Definition: SecondaryAppDataMessage.hh:62
crl::multisense::details::wire::SecondaryAppData::SecondaryAppData
SecondaryAppData(utility::BufferStreamReader &r, VersionType v)
Definition: SecondaryAppDataMessage.hh:92
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition: Protocol.hh:137
crl::multisense::details::utility::BufferStreamWriter
Definition: BufferStream.hh:259
crl::multisense::details::wire::ID_DATA_SECONDARY_APP
static CRL_CONSTEXPR IdType ID_DATA_SECONDARY_APP
Definition: Protocol.hh:242
crl::multisense::details::wire::SecondaryAppHeader::SecondaryAppHeader
SecondaryAppHeader()
Definition: SecondaryAppDataMessage.hh:68
crl::multisense::details::wire::SecondaryAppHeader::frameId
int64_t frameId
Definition: SecondaryAppDataMessage.hh:63
crl::multisense::details::utility::BufferStreamReader
Definition: BufferStream.hh:192
multisense
Definition: MultiSenseChannel.hh:44
crl::multisense::details::wire::SecondaryAppData::serialize
void serialize(Archive &message, const VersionType version)
Definition: SecondaryAppDataMessage.hh:99
crl::multisense::details::wire::SecondaryAppHeader::timeSeconds
uint32_t timeSeconds
Definition: SecondaryAppDataMessage.hh:64
crl::multisense::details::wire::SecondaryAppHeader::sourceExtended
uint32_t sourceExtended
Definition: SecondaryAppDataMessage.hh:66
crl::multisense::details::wire::IdType
uint16_t IdType
Definition: Protocol.hh:136
crl::multisense::details::wire::SecondaryAppHeader
Definition: SecondaryAppDataMessage.hh:50