LibMultiSense
LibMultiSense Documentation
ImageMetaMessage.hh
Go to the documentation of this file.
1
37
#ifndef LibMultiSense_ImageMetaMessage
38
#define LibMultiSense_ImageMetaMessage
39
40
#include <typeinfo>
41
42
#include "
utility/Portability.hh
"
43
44
namespace
crl
{
45
namespace
multisense
{
46
namespace
details {
47
namespace
wire {
48
49
class
WIRE_HEADER_ATTRIBS_
ImageMetaHeader
{
50
public
:
51
52
static
CRL_CONSTEXPR
IdType
ID =
ID_DATA_IMAGE_META
;
53
static
CRL_CONSTEXPR
VersionType
VERSION = 2;
54
55
static
CRL_CONSTEXPR
uint32_t HISTOGRAM_CHANNELS = 4;
// g0, r, b, g1
56
static
CRL_CONSTEXPR
uint32_t HISTOGRAM_BINS = 256;
57
static
CRL_CONSTEXPR
uint32_t HISTOGRAM_LENGTH = (HISTOGRAM_CHANNELS * HISTOGRAM_BINS *
58
sizeof
(uint32_t));
59
60
#ifdef SENSORPOD_FIRMWARE
61
IdType
id;
62
VersionType
version;
63
#endif // SENSORPOD_FIRMWARE
64
65
int64_t
frameId
;
66
float
framesPerSecond
;
67
float
gain
;
68
uint32_t
exposureTime
;
69
uint32_t
timeSeconds
;
70
uint32_t
timeMicroSeconds
;
71
int32_t
angle
;
// microradians
72
uint64_t
ptpNanoSeconds
;
73
74
ImageMetaHeader
()
75
:
76
#ifdef SENSORPOD_FIRMWARE
77
id(ID),
78
version(VERSION),
79
#endif
// SENSORPOD_FIRMWARE
80
frameId(0),
81
framesPerSecond(0),
82
gain(0.0),
83
exposureTime(0),
84
timeSeconds(0),
85
timeMicroSeconds(0),
86
angle(0),
87
ptpNanoSeconds(0) {};
88
};
89
90
#ifndef SENSORPOD_FIRMWARE
91
92
class
ImageMeta
:
public
ImageMetaHeader
{
93
public
:
94
95
uint32_t
histogramP
[
HISTOGRAM_BINS
*
HISTOGRAM_CHANNELS
];
96
97
//
98
// Constructors
99
100
ImageMeta
(
utility::BufferStreamReader
&r,
VersionType
v) {
serialize
(r,v);};
101
ImageMeta
() {};
102
103
//
104
// Serialization routine
105
106
template
<
class
Archive>
107
void
serialize
(Archive& message,
108
const
VersionType
version)
109
{
110
(void) version;
111
message &
frameId
;
112
message &
framesPerSecond
;
113
message &
gain
;
114
message &
exposureTime
;
115
message &
timeSeconds
;
116
message &
timeMicroSeconds
;
117
message &
angle
;
118
119
if
(
typeid
(Archive) ==
typeid
(
utility::BufferStreamWriter
))
120
message.write(
histogramP
,
HISTOGRAM_LENGTH
);
121
else
122
message.read(
histogramP
,
HISTOGRAM_LENGTH
);
123
124
if
(version >= 2)
125
{
126
message &
ptpNanoSeconds
;
127
}
128
}
129
};
130
131
#endif // !SENSORPOD_FIRMWARE
132
133
}}}}
// namespaces
134
135
#endif
crl::multisense::details::wire::ImageMetaHeader::angle
int32_t angle
Definition:
ImageMetaMessage.hh:71
crl::multisense::details::wire::ImageMetaHeader::ptpNanoSeconds
uint64_t ptpNanoSeconds
Definition:
ImageMetaMessage.hh:72
crl::multisense::details::wire::ImageMetaHeader
Definition:
ImageMetaMessage.hh:49
Portability.hh
WIRE_HEADER_ATTRIBS_
#define WIRE_HEADER_ATTRIBS_
Definition:
Protocol.hh:65
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition:
Portability.hh:49
crl::multisense::details::wire::ImageMeta::ImageMeta
ImageMeta(utility::BufferStreamReader &r, VersionType v)
Definition:
ImageMetaMessage.hh:100
crl::multisense::details::wire::ImageMetaHeader::framesPerSecond
float framesPerSecond
Definition:
ImageMetaMessage.hh:66
crl
Definition:
BufferStream.hh:51
crl::multisense::details::wire::ImageMetaHeader::HISTOGRAM_BINS
static CRL_CONSTEXPR uint32_t HISTOGRAM_BINS
Definition:
ImageMetaMessage.hh:56
crl::multisense::details::wire::ImageMeta::ImageMeta
ImageMeta()
Definition:
ImageMetaMessage.hh:101
crl::multisense::details::wire::ImageMeta::serialize
void serialize(Archive &message, const VersionType version)
Definition:
ImageMetaMessage.hh:107
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::ImageMetaHeader::frameId
int64_t frameId
Definition:
ImageMetaMessage.hh:65
crl::multisense::details::wire::ImageMetaHeader::gain
float gain
Definition:
ImageMetaMessage.hh:67
crl::multisense::details::wire::ImageMetaHeader::timeSeconds
uint32_t timeSeconds
Definition:
ImageMetaMessage.hh:69
crl::multisense::details::wire::ImageMeta
Definition:
ImageMetaMessage.hh:92
crl::multisense::details::wire::ImageMetaHeader::HISTOGRAM_CHANNELS
static CRL_CONSTEXPR uint32_t HISTOGRAM_CHANNELS
Definition:
ImageMetaMessage.hh:55
crl::multisense::details::wire::ImageMetaHeader::exposureTime
uint32_t exposureTime
Definition:
ImageMetaMessage.hh:68
crl::multisense::details::utility::BufferStreamReader
Definition:
BufferStream.hh:192
multisense
Definition:
MultiSenseChannel.hh:44
crl::multisense::details::wire::ImageMetaHeader::HISTOGRAM_LENGTH
static CRL_CONSTEXPR uint32_t HISTOGRAM_LENGTH
Definition:
ImageMetaMessage.hh:57
crl::multisense::details::wire::ID_DATA_IMAGE_META
static CRL_CONSTEXPR IdType ID_DATA_IMAGE_META
Definition:
Protocol.hh:216
crl::multisense::details::wire::ImageMeta::histogramP
uint32_t histogramP[HISTOGRAM_BINS *HISTOGRAM_CHANNELS]
Definition:
ImageMetaMessage.hh:95
crl::multisense::details::wire::ImageMetaHeader::ImageMetaHeader
ImageMetaHeader()
Definition:
ImageMetaMessage.hh:74
crl::multisense::details::wire::IdType
uint16_t IdType
Definition:
Protocol.hh:136
crl::multisense::details::wire::ImageMetaHeader::timeMicroSeconds
uint32_t timeMicroSeconds
Definition:
ImageMetaMessage.hh:70
source
Wire
include
wire
ImageMetaMessage.hh
Generated on Tue Mar 18 2025 14:54:04 for LibMultiSense by
1.8.17