LibMultiSense
LibMultiSense Documentation
Loading...
Searching...
No Matches
LidarDataMessage.hh
Go to the documentation of this file.
1
40
#ifndef LibMultiSense_LidarDataMessage
41
#define LibMultiSense_LidarDataMessage
42
43
#include <typeinfo>
44
45
#include "
utility/Portability.hh
"
46
47
namespace
crl
{
48
namespace
multisense
{
49
namespace
details {
50
namespace
wire {
51
52
class
WIRE_HEADER_ATTRIBS_
LidarDataHeader
{
53
public
:
54
55
static
CRL_CONSTEXPR
IdType
ID = ID_DATA_LIDAR_SCAN;
56
static
CRL_CONSTEXPR
VersionType
VERSION = 1;
57
static
CRL_CONSTEXPR
uint32_t SCAN_POINTS = 1081;
58
59
#ifdef SENSORPOD_FIRMWARE
60
IdType
id;
61
VersionType
version;
62
#endif
// SENSORPOD_FIRMWARE
63
64
uint32_t
scanCount
;
65
uint32_t
timeStartSeconds
;
66
uint32_t
timeStartMicroSeconds
;
67
uint32_t
timeEndSeconds
;
68
uint32_t
timeEndMicroSeconds
;
69
int32_t
angleStart
;
// microradians
70
int32_t
angleEnd
;
71
uint32_t
points
;
72
#ifdef SENSORPOD_FIRMWARE
73
uint32_t distanceP[SCAN_POINTS];
// millimeters
74
uint32_t intensityP[SCAN_POINTS];
75
#else
76
uint32_t *
distanceP
;
77
uint32_t *
intensityP
;
78
#endif
// SENSORPOD_FIRMWARE
79
80
LidarDataHeader
()
81
:
82
#ifdef SENSORPOD_FIRMWARE
83
id(ID),
84
version(VERSION),
85
#endif
// SENSORPOD_FIRMWARE
86
points(0) {};
87
};
88
89
#ifndef SENSORPOD_FIRMWARE
90
91
class
LidarData
:
public
LidarDataHeader
{
92
public
:
93
94
//
95
// Constructors
96
97
LidarData
(
utility::BufferStreamReader
&r,
VersionType
v) {
serialize
(r,v);};
98
LidarData
() {};
99
100
//
101
// Serialization routine
102
103
template
<
class
Archive>
104
void
serialize
(Archive& message,
105
const
VersionType
version)
106
{
107
(void) version;
108
message &
scanCount
;
109
message &
timeStartSeconds
;
110
message &
timeStartMicroSeconds
;
111
message &
timeEndSeconds
;
112
message &
timeEndMicroSeconds
;
113
message &
angleStart
;
114
message &
angleEnd
;
115
message &
points
;
116
117
const
uint32_t rangeSize =
sizeof
(uint32_t) *
points
;
118
const
uint32_t intensitySize =
sizeof
(uint32_t) *
points
;
119
120
if
(
typeid
(Archive) ==
typeid
(
utility::BufferStreamWriter
)) {
121
122
message.write(
distanceP
, rangeSize);
123
message.write(
intensityP
, intensitySize);
124
125
}
else
{
126
127
distanceP
= (uint32_t *) message.peek();
128
message.seek(message.tell() + rangeSize);
129
130
intensityP
= (uint32_t *) message.peek();
131
message.seek(message.tell() + intensitySize);
132
}
133
}
134
};
135
136
#endif
// !SENSORPOD_FIRMWARE
137
138
}}}}
// namespaces
139
140
#endif
Portability.hh
Macros and symbols to help portability between different compiler versions.
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition
Portability.hh:49
WIRE_HEADER_ATTRIBS_
#define WIRE_HEADER_ATTRIBS_
Definition
Protocol.hh:65
crl::multisense::details::utility::BufferStreamReader
Definition
BufferStream.hh:192
crl::multisense::details::utility::BufferStreamWriter
Definition
BufferStream.hh:259
crl::multisense::details::wire::LidarDataHeader
Definition
LidarDataMessage.hh:52
crl::multisense::details::wire::LidarDataHeader::distanceP
uint32_t * distanceP
Definition
LidarDataMessage.hh:76
crl::multisense::details::wire::LidarDataHeader::timeStartMicroSeconds
uint32_t timeStartMicroSeconds
Definition
LidarDataMessage.hh:66
crl::multisense::details::wire::LidarDataHeader::intensityP
uint32_t * intensityP
Definition
LidarDataMessage.hh:77
crl::multisense::details::wire::LidarDataHeader::angleEnd
int32_t angleEnd
Definition
LidarDataMessage.hh:70
crl::multisense::details::wire::LidarDataHeader::points
uint32_t points
Definition
LidarDataMessage.hh:71
crl::multisense::details::wire::LidarDataHeader::LidarDataHeader
LidarDataHeader()
Definition
LidarDataMessage.hh:80
crl::multisense::details::wire::LidarDataHeader::scanCount
uint32_t scanCount
Definition
LidarDataMessage.hh:64
crl::multisense::details::wire::LidarDataHeader::timeEndSeconds
uint32_t timeEndSeconds
Definition
LidarDataMessage.hh:67
crl::multisense::details::wire::LidarDataHeader::timeEndMicroSeconds
uint32_t timeEndMicroSeconds
Definition
LidarDataMessage.hh:68
crl::multisense::details::wire::LidarDataHeader::timeStartSeconds
uint32_t timeStartSeconds
Definition
LidarDataMessage.hh:65
crl::multisense::details::wire::LidarDataHeader::angleStart
int32_t angleStart
Definition
LidarDataMessage.hh:69
crl::multisense::details::wire::LidarData
Definition
LidarDataMessage.hh:91
crl::multisense::details::wire::LidarData::LidarData
LidarData()
Definition
LidarDataMessage.hh:98
crl::multisense::details::wire::LidarData::serialize
void serialize(Archive &message, const VersionType version)
Definition
LidarDataMessage.hh:104
crl::multisense::details::wire::LidarData::LidarData
LidarData(utility::BufferStreamReader &r, VersionType v)
Definition
LidarDataMessage.hh:97
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition
Protocol.hh:137
crl::multisense::details::wire::IdType
uint16_t IdType
Definition
Protocol.hh:136
crl
Definition
BufferStream.hh:51
multisense
Definition
MultiSenseChannel.hh:44
source
Wire
include
wire
LidarDataMessage.hh
Generated on Wed Dec 17 2025 23:55:12 for LibMultiSense by
1.9.8