LibMultiSense
LibMultiSense Documentation
SysDeviceModesMessage.hh
Go to the documentation of this file.
1
37
#ifndef LibMultiSense_SysDeviceModesMessage
38
#define LibMultiSense_SysDeviceModesMessage
39
40
#include "
utility/Portability.hh
"
41
42
namespace
crl
{
43
namespace
multisense
{
44
namespace
details {
45
namespace
wire {
46
47
class
DeviceMode
{
48
public
:
49
uint32_t
width
;
50
uint32_t
height
;
51
uint32_t
supportedDataSources
;
52
uint32_t
disparities
;
53
uint32_t
extendedDataSources
;
54
55
DeviceMode
(uint32_t w=0,
56
uint32_t h=0,
57
uint64_t s=0,
58
uint32_t d=0) :
59
width
(w),
60
height
(h),
61
disparities
(d)
62
{
63
supportedDataSources
= (uint32_t) (s & 0xFFFFFFFFull);
64
extendedDataSources
= (uint32_t) ((s & 0xFFFFFFFF00000000ull) >> 32);
65
};
66
67
};
68
69
class
SysDeviceModes
{
70
public
:
71
static
CRL_CONSTEXPR
IdType
ID
=
ID_DATA_SYS_DEVICE_MODES
;
72
static
CRL_CONSTEXPR
VersionType
VERSION
= 3;
73
74
//
75
// Available formats
76
77
std::vector<DeviceMode>
modes
;
78
79
//
80
// Constructors
81
82
SysDeviceModes
(
utility::BufferStreamReader
& r,
83
VersionType
v) {
serialize
(r,v);};
84
SysDeviceModes
() {};
85
86
//
87
// Serialization routine
88
89
template
<
class
Archive>
90
void
serialize
(Archive& message,
91
const
VersionType
version)
92
{
93
uint32_t length =
static_cast<
uint32_t
>
(
modes
.size());
94
message & length;
95
modes
.resize(length);
96
97
//
98
// Serialize by hand here to maintain backwards compatibility with
99
// pre-v2.3 firmware.
100
101
for
(uint32_t i=0; i<length; i++) {
102
103
DeviceMode
& m =
modes
[i];
104
105
message & m.
width
;
106
message & m.
height
;
107
message & m.
supportedDataSources
;
108
message & m.
disparities
;
// was 'flags' in pre v2.3
109
}
110
111
for
(uint32_t i=0; i<length; i++) {
112
DeviceMode
& m =
modes
[i];
113
if
(version >= 3)
114
{
115
message & m.
extendedDataSources
;
116
}
117
else
118
{
119
m.
extendedDataSources
= 0;
120
}
121
}
122
}
123
};
124
125
}}}}
// namespaces
126
127
#endif
crl::multisense::details::wire::DeviceMode::DeviceMode
DeviceMode(uint32_t w=0, uint32_t h=0, uint64_t s=0, uint32_t d=0)
Definition:
SysDeviceModesMessage.hh:55
crl::multisense::details::wire::ID_DATA_SYS_DEVICE_MODES
static CRL_CONSTEXPR IdType ID_DATA_SYS_DEVICE_MODES
Definition:
Protocol.hh:219
crl::multisense::details::wire::SysDeviceModes
Definition:
SysDeviceModesMessage.hh:69
crl::multisense::details::wire::SysDeviceModes::SysDeviceModes
SysDeviceModes(utility::BufferStreamReader &r, VersionType v)
Definition:
SysDeviceModesMessage.hh:82
crl::multisense::details::wire::SysDeviceModes::modes
std::vector< DeviceMode > modes
Definition:
SysDeviceModesMessage.hh:77
Portability.hh
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition:
Portability.hh:49
crl::multisense::details::wire::DeviceMode::width
uint32_t width
Definition:
SysDeviceModesMessage.hh:49
crl::multisense::details::wire::DeviceMode::height
uint32_t height
Definition:
SysDeviceModesMessage.hh:50
crl
Definition:
BufferStream.hh:51
crl::multisense::details::wire::SysDeviceModes::ID
static CRL_CONSTEXPR IdType ID
Definition:
SysDeviceModesMessage.hh:71
crl::multisense::details::wire::SysDeviceModes::serialize
void serialize(Archive &message, const VersionType version)
Definition:
SysDeviceModesMessage.hh:90
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition:
Protocol.hh:137
crl::multisense::details::wire::DeviceMode::disparities
uint32_t disparities
Definition:
SysDeviceModesMessage.hh:52
crl::multisense::details::wire::DeviceMode::supportedDataSources
uint32_t supportedDataSources
Definition:
SysDeviceModesMessage.hh:51
crl::multisense::details::wire::DeviceMode::extendedDataSources
uint32_t extendedDataSources
Definition:
SysDeviceModesMessage.hh:53
crl::multisense::details::wire::SysDeviceModes::VERSION
static CRL_CONSTEXPR VersionType VERSION
Definition:
SysDeviceModesMessage.hh:72
crl::multisense::details::utility::BufferStreamReader
Definition:
BufferStream.hh:192
multisense
Definition:
MultiSenseChannel.hh:44
crl::multisense::details::wire::DeviceMode
Definition:
SysDeviceModesMessage.hh:47
crl::multisense::details::wire::IdType
uint16_t IdType
Definition:
Protocol.hh:136
crl::multisense::details::wire::SysDeviceModes::SysDeviceModes
SysDeviceModes()
Definition:
SysDeviceModesMessage.hh:84
source
Wire
include
wire
SysDeviceModesMessage.hh
Generated on Tue Mar 18 2025 14:54:04 for LibMultiSense by
1.8.17