FeatureDetectorMessage.hh
Go to the documentation of this file.
1 
40 #ifndef LibMultiSense_FeatureDetectorMessage
41 #define LibMultiSense_FeatureDetectorMessage
42 
43 #include <cmath>
44 
45 #include <utility/Portability.hh>
46 #include <utility/BufferStream.hh>
47 #include <wire/Protocol.hh>
48 
49 using namespace crl::multisense::details;
50 
51 #pragma pack(push, 1)
52 
53 class Feature {
54 public:
55  uint16_t x;
56  uint16_t y;
57  uint8_t angle;
58  uint8_t resp;
59  uint8_t octave;
60  uint8_t descriptor;
61 };
62 
63 class Descriptor {
64 public:
65  uint32_t d[8];
66 };
67 
68 #pragma pack(pop)
69 
71 public:
72  static CRL_CONSTEXPR wire::VersionType VERSION = 1;
74  uint64_t source;
75  int64_t frameId;
76  uint16_t numFeatures;
77  uint16_t numDescriptors;
78 
80  version(VERSION),
81  source(0),
82  frameId(0),
83  numFeatures(0),
84  numDescriptors(0)
85  {};
86 
87 };
88 
89 #ifndef SENSORPOD_FIRMWARE
90 
92 public:
93 
94  void * dataP;
95 
96  //
97  // Constructors
98 
101 
102 
103  template<class Archive>
104  void serialize(Archive& message,
105  const wire::VersionType _version)
106  {
107  (void) _version;
108 
109  message & version;
110  message & source;
111  message & frameId;
112  message & numFeatures;
113  message & numDescriptors;
114 
115  const uint32_t featureDataSize = static_cast<uint32_t> (std::ceil( numFeatures*sizeof(Feature) + numDescriptors*sizeof(Descriptor)));
116 
117  dataP = message.peek();
118  message.seek(message.tell() + featureDataSize);
119  }
120 
121 };
122 
123 #endif // !SENSORPOD_FIRMWARE
124 
125 
126 #endif
Feature
Definition: FeatureDetectorMessage.hh:53
crl::multisense::details
Definition: Legacy/details/channel.cc:63
FeatureDetector::FeatureDetector
FeatureDetector()
Definition: FeatureDetectorMessage.hh:100
FeatureDetector::FeatureDetector
FeatureDetector(utility::BufferStreamReader &r, wire::VersionType v)
Definition: FeatureDetectorMessage.hh:99
WIRE_HEADER_ATTRIBS_
#define WIRE_HEADER_ATTRIBS_
Definition: Protocol.hh:65
FeatureDetectorHeader::version
wire::VersionType version
Definition: FeatureDetectorMessage.hh:73
FeatureDetectorHeader::FeatureDetectorHeader
FeatureDetectorHeader()
Definition: FeatureDetectorMessage.hh:79
FeatureDetectorHeader::numDescriptors
uint16_t numDescriptors
Definition: FeatureDetectorMessage.hh:77
BufferStream.hh
FeatureDetectorHeader::source
uint64_t source
Definition: FeatureDetectorMessage.hh:74
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition: Legacy/include/MultiSense/details/utility/Portability.hh:49
FeatureDetector
Definition: FeatureDetectorMessage.hh:91
Feature::angle
uint8_t angle
Definition: FeatureDetectorMessage.hh:57
multisense::legacy::serialize
std::vector< uint8_t > serialize(const T &message, uint16_t sequence_id, size_t mtu)
Serialize a MultiSense Wire message for transmission. This adds the wire header to the message for tr...
Definition: message.hh:103
Feature::resp
uint8_t resp
Definition: FeatureDetectorMessage.hh:58
frameId
std::string const * frameId(const M &m)
FeatureDetectorHeader::frameId
int64_t frameId
Definition: FeatureDetectorMessage.hh:75
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition: Protocol.hh:137
FeatureDetectorHeader::numFeatures
uint16_t numFeatures
Definition: FeatureDetectorMessage.hh:76
d
d
Feature::descriptor
uint8_t descriptor
Definition: FeatureDetectorMessage.hh:60
Protocol.hh
Feature::y
uint16_t y
Definition: FeatureDetectorMessage.hh:56
Feature::x
uint16_t x
Definition: FeatureDetectorMessage.hh:55
FeatureDetector::serialize
void serialize(Archive &message, const wire::VersionType _version)
Definition: FeatureDetectorMessage.hh:104
crl::multisense::details::utility::BufferStreamReader
Definition: BufferStream.hh:192
FeatureDetector::dataP
void * dataP
Definition: FeatureDetectorMessage.hh:94
Descriptor
Definition: FeatureDetectorMessage.hh:63
Feature::octave
uint8_t octave
Definition: FeatureDetectorMessage.hh:59
FeatureDetectorHeader
Definition: FeatureDetectorMessage.hh:70


multisense_lib
Author(s):
autogenerated on Thu Apr 17 2025 02:49:08