LibMultiSense
LibMultiSense Documentation
info_test.cc
Go to the documentation of this file.
1 
37 #include <gtest/gtest.h>
38 
39 #include <details/legacy/info.hh>
40 #include <details/legacy/utilities.hh>
41 
42 using namespace multisense::legacy;
43 
44 crl::multisense::details::wire::SysDeviceInfo create_wire_info(const std::string &name, const std::string &key)
45 {
46  using namespace crl::multisense::details;
47 
49  info.key = key;
50  info.name = name;
51  info.buildDate = "2024";
52  info.serialNumber = "4501";
53  info.hardwareRevision = wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21;
54  info.numberOfPcbs = 1;
55 
56  wire::PcbInfo pcb;
57  pcb.name = name;
58  pcb.revision = 12345;
59  info.pcbs[0] = pcb;
60 
61  info.imagerName = name;
62  info.imagerType = wire::SysDeviceInfo::IMAGER_TYPE_AR0239_COLOR;
63  info.imagerWidth = 1000;
64  info.imagerHeight = 1001;
65  info.lensName = name;
66  info.nominalBaseline = 0.21;
67  info.nominalFocalLength = 0.024;
68  info.nominalRelativeAperture = 0.1;
69  info.lightingType = wire::SysDeviceInfo::LIGHTING_TYPE_EXTERNAL;
70  info.numberOfLights = 1;
71 
72  return info;
73 }
74 
76 {
77  using namespace crl::multisense::details;
78 
79  wire::VersionResponse version;
80  version.firmwareBuildDate = "1234-01-23";
81  version.firmwareVersion = 0x0522;
82  version.hardwareVersion = 123;
83  version.hardwareMagic = 567;
84  version.fpgaDna = 8906;
85 
86  return version;
87 }
88 
89 crl::multisense::details::wire::SysDeviceModes create_device_modes(int64_t sources, int32_t imager_width, int32_t imager_height)
90 {
91  using namespace crl::multisense::details;
92 
94 
95  wire::DeviceMode mode0;
96  mode0.width = imager_width;
97  mode0.height = imager_height;
98  mode0.height = imager_height;
99  mode0.supportedDataSources = sources;
100  mode0.disparities = 64;
101 
102  wire::DeviceMode mode1;
103  mode1.width = imager_width / 2;
104  mode1.height = imager_height / 2;
105  mode1.supportedDataSources = sources;
106  mode1.disparities = 128;
107 
108  wire::DeviceMode mode2;
109  mode2.width = 1234;
110  mode2.height = 456;
111  mode2.supportedDataSources = sources;
112  mode2.disparities = 128;
113 
114  modes.modes.push_back(mode0);
115  modes.modes.push_back(mode1);
116  modes.modes.push_back(mode2);
117 
118  return modes;
119 }
120 
122 {
123  using namespace crl::multisense::details;
124 
125  wire::ImuInfo output;
126 
127  output.maxSamplesPerMessage = 100;
128 
129  wire::imu::RateType rate0;
130  rate0.sampleRate = 101.0f;
131  rate0.bandwidthCutoff = 201.0f;
132 
133  wire::imu::RateType rate1;
134  rate1.sampleRate = 101.1f;
135  rate1.bandwidthCutoff = 202.0f;
136 
137  wire::imu::RangeType range0;
138  range0.range = 10.2f;
139  range0.resolution = 0.2f;
140 
141  wire::imu::Details detail0;
142  detail0.name = "accelerometer";
143  detail0.device = "device0";
144  detail0.units = "units0";
145 
146  detail0.rates.push_back(rate0);
147  detail0.rates.push_back(rate1);
148  detail0.ranges.push_back(range0);
149 
150  wire::imu::Details detail1;
151  detail1.name = "gyroscope";
152  detail1.device = "device1";
153  detail1.units = "units1";
154 
155  detail1.rates.push_back(rate0);
156  detail1.rates.push_back(rate1);
157  detail1.ranges.push_back(range0);
158 
159  output.details.push_back(detail0);
160  output.details.push_back(detail1);
161 
162  return output;
163 }
164 
166 {
167  using namespace multisense;
169  info.camera_name = name;
170  info.build_date = "2024";
171  info.serial_number = "4501";
173  info.pcb_info = {MultiSenseInfo::DeviceInfo::PcbInfo{name, 12345}};
174  info.imager_name = name;
176  info.imager_width = 1920;
177  info.imager_height = 1200;
178  info.lens_name = name;
179  info.nominal_stereo_baseline = 0.21;
180  info.nominal_focal_length = 0.024;
181  info.nominal_relative_aperture = 0.1;
183  info.number_of_lights = 1;
184 
185  return info;
186 }
187 
189 {
190  return multisense::MultiSenseInfo::NetworkInfo{ip_address, "test", "bar"};
191 }
192 
195  const std::string &key)
196 {
197  using namespace crl::multisense::details;
198  using namespace multisense;
199 
200  ASSERT_EQ(wire.key, key);
201  ASSERT_EQ(wire.name, info.camera_name);
202  ASSERT_EQ(wire.buildDate, info.build_date);
203  ASSERT_EQ(wire.serialNumber, info.serial_number);
204 
205  switch (wire.hardwareRevision)
206  {
207  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_S7:
209  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_S21:
211  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST21:
213  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_C6S2_S27:
215  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_S30:
217  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21:
219  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_MONOCAM:
221  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER:
223  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25:
225  case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i:
227  default: {CRL_EXCEPTION("Unsupported hardware revision");}
228  }
229 
230  ASSERT_EQ(wire.numberOfPcbs, info.pcb_info.size());
231 
232  for (uint32_t i = 0; i < wire.numberOfPcbs ; ++i)
233  {
234  ASSERT_EQ(wire.pcbs[i].name, info.pcb_info[i].name);
235  ASSERT_EQ(wire.pcbs[i].revision, info.pcb_info[i].revision);
236  }
237 
238  ASSERT_EQ(wire.imagerName, info.imager_name);
239  switch (wire.imagerType)
240  {
241  case wire::SysDeviceInfo::IMAGER_TYPE_CMV2000_GREY:
243  case wire::SysDeviceInfo::IMAGER_TYPE_CMV2000_COLOR:
245  case wire::SysDeviceInfo::IMAGER_TYPE_CMV4000_GREY:
247  case wire::SysDeviceInfo::IMAGER_TYPE_CMV4000_COLOR:
249  case wire::SysDeviceInfo::IMAGER_TYPE_FLIR_TAU2:
251  case wire::SysDeviceInfo::IMAGER_TYPE_AR0234_GREY:
253  case wire::SysDeviceInfo::IMAGER_TYPE_AR0239_COLOR:
255  default: {CRL_EXCEPTION("Unsupported imager type");}
256  }
257  ASSERT_EQ(wire.imagerWidth, info.imager_width);
258  ASSERT_EQ(wire.imagerHeight, info.imager_height);
259 
260  ASSERT_EQ(wire.lensName, info.lens_name);
261  ASSERT_EQ(wire.nominalBaseline, info.nominal_stereo_baseline);
262  ASSERT_EQ(wire.nominalFocalLength, info.nominal_focal_length);
264 
265  switch (wire.lightingType)
266  {
267  case wire::SysDeviceInfo::LIGHTING_TYPE_NONE:
269  case wire::SysDeviceInfo::LIGHTING_TYPE_INTERNAL:
271  case wire::SysDeviceInfo::LIGHTING_TYPE_EXTERNAL:
273  case wire::SysDeviceInfo::LIGHTING_TYPE_PATTERN_PROJECTOR:
275  case wire::SysDeviceInfo::LIGHTING_TYPE_OUTPUT_TRIGGER:
277  case wire::SysDeviceInfo::LIGHTING_TYPE_PATTERN_PROJECTOR_AND_OUTPUT_TRIGGER:
279  default: {CRL_EXCEPTION("Unsupported lighting type");}
280  }
281  ASSERT_EQ(wire.numberOfLights, info.number_of_lights);
282 }
283 
286 {
287  ASSERT_EQ(wire.name, info.name);
288  ASSERT_EQ(wire.device, info.device);
289 
290  ASSERT_EQ(wire.rates.size(), info.rates.size());
291  for (size_t i = 0 ; i < info.rates.size() ; ++i)
292  {
293  ASSERT_FLOAT_EQ(wire.rates[i].sampleRate, info.rates[i].sample_rate);
294  ASSERT_FLOAT_EQ(wire.rates[i].bandwidthCutoff, info.rates[i].bandwith_cutoff);
295  }
296 
297  ASSERT_EQ(wire.ranges.size(), info.ranges.size());
298  for (size_t i = 0 ; i < info.ranges.size() ; ++i)
299  {
300  ASSERT_FLOAT_EQ(wire.ranges[i].range, info.ranges[i].range);
301  ASSERT_FLOAT_EQ(wire.ranges[i].resolution, info.ranges[i].resolution);
302  }
303 }
304 
307 {
308  ASSERT_EQ(info0.ip_address, info1.ip_address);
309  ASSERT_EQ(info0.gateway, info1.gateway);
310  ASSERT_EQ(info0.netmask, info1.netmask);
311 }
312 
313 TEST(convert, wire_to_info)
314 {
315  const auto info = create_wire_info("test", "key");
316  check_equal(info, convert(info), "key");
317 }
318 
319 TEST(convert, info_to_wire)
320 {
321  const auto info = create_info("test");
322  check_equal(convert(info, "key"), info, "key");
323 }
324 
325 TEST(convert, version)
326 {
327  const auto version_wire = create_version();
328  const auto version = convert(version_wire);
329 
330  const auto converted_version = get_version(version_wire.firmwareVersion);
331 
332  ASSERT_EQ(version.firmware_build_date, version_wire.firmwareBuildDate);
333 
334  //
335  // This must be equal
336  //
337  ASSERT_FALSE(version.firmware_version < converted_version);
338  ASSERT_FALSE(converted_version < version.firmware_version);
339 
340  ASSERT_EQ(version.hardware_version, version_wire.hardwareVersion);
341 }
342 
343 TEST(convert, device_modes)
344 {
345  using namespace crl::multisense::details;
346  using namespace multisense;
347 
349 
350  constexpr uint32_t imager_width = 1920;
351  constexpr uint32_t imager_height = 1200;
352 
353  const auto wire_modes = create_device_modes(sources, imager_width, imager_height);
354  const auto modes = convert(wire_modes);
355 
356  ASSERT_EQ(modes.size(), wire_modes.modes.size());
357 
358  for(size_t i = 0 ; i < modes.size() ; ++i)
359  {
360  ASSERT_EQ(modes[i].width, wire_modes.modes[i].width);
361  ASSERT_EQ(modes[i].height, wire_modes.modes[i].height);
362 
363  ASSERT_EQ(modes[i].disparities, get_disparities(wire_modes.modes[i].disparities));
364 
365  const auto full_sources = convert_sources(modes[i].supported_sources);
366  ASSERT_EQ(full_sources & 0x00000000FFFFFFFF, wire_modes.modes[i].supportedDataSources);
367  ASSERT_EQ(full_sources >> 32, wire_modes.modes[i].extendedDataSources);
368  }
369 }
370 
371 TEST(convert, imu_source)
372 {
373  using namespace crl::multisense::details;
374 
375  const auto wire_info = create_imu_info();
376  const auto info = convert(wire_info);
377 
378  for (size_t i = 0 ; i < wire_info.details.size() ; ++i)
379  {
380  const auto &detail = wire_info.details[i];
381 
382  if (info.accelerometer && info.accelerometer->name == detail.name)
383  {
384  check_equal(detail, info.accelerometer.value());
385  }
386  else if (info.gyroscope && info.gyroscope->name == detail.name)
387  {
388  check_equal(detail, info.gyroscope.value());
389  }
390  else if (info.magnetometer && info.magnetometer->name == detail.name)
391  {
392  check_equal(detail, info.magnetometer.value());
393  }
394  else
395  {
396  ASSERT_TRUE(false);
397  }
398  }
399 }
400 
401 TEST(convert, network_info_round_trip)
402 {
403  const auto network_info = create_network_info("1.2.3.4");
404 
405  const auto round_trip = convert(convert(network_info));
406 
407  check_equal(network_info, round_trip);
408 }
multisense::MultiSenseInfo::ImuInfo::Source::rates
std::vector< ImuRate > rates
The available rates supported by this operating mode.
Definition: MultiSenseTypes.hh:1598
crl::multisense::details::wire::SysDeviceInfo::nominalBaseline
float nominalBaseline
Definition: SysDeviceInfoMessage.hh:150
multisense::MultiSenseInfo::DeviceInfo::imager_type
ImagerType imager_type
The type of the imager.
Definition: MultiSenseTypes.hh:1421
crl::multisense::details::wire::VersionResponse::firmwareVersion
VersionType firmwareVersion
Definition: VersionResponseMessage.hh:56
multisense::MultiSenseInfo::NetworkInfo::ip_address
std::string ip_address
The ip address of the camera (i.e.
Definition: MultiSenseTypes.hh:1272
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::MONOCAM
@ MONOCAM
multisense::MultiSenseInfo::DeviceInfo::LightingType::EXTERNAL
@ EXTERNAL
Drive lights via an external output.
crl::multisense::details
Definition: BufferStream.hh:53
check_equal
void check_equal(const crl::multisense::details::wire::SysDeviceInfo &wire, const multisense::MultiSenseInfo::DeviceInfo &info, const std::string &key)
Definition: info_test.cc:193
create_network_info
multisense::MultiSenseInfo::NetworkInfo create_network_info(const std::string &ip_address)
Definition: info_test.cc:188
multisense::MultiSenseInfo::DeviceInfo::camera_name
std::string camera_name
The name of the MultiSense variant.
Definition: MultiSenseTypes.hh:1387
multisense::MultiSenseInfo::DeviceInfo::ImagerType::CMV4000_COLOR
@ CMV4000_COLOR
crl::multisense::details::wire::SysDeviceModes
Definition: SysDeviceModesMessage.hh:69
multisense::MultiSenseInfo::DeviceInfo::number_of_lights
uint32_t number_of_lights
The number of lights the MultiSense controls.
Definition: MultiSenseTypes.hh:1468
multisense::MultiSenseInfo::DeviceInfo::ImagerType::CMV4000_GREY
@ CMV4000_GREY
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::S7
@ S7
multisense::MultiSenseInfo::NetworkInfo::gateway
std::string gateway
The gateway of the camera (i.e.
Definition: MultiSenseTypes.hh:1277
multisense::MultiSenseInfo::DeviceInfo::LightingType::INTERNAL
@ INTERNAL
Lights driven internally.
multisense::MultiSenseInfo::ImuInfo::Source::device
std::string device
The name of the IMU chip.
Definition: MultiSenseTypes.hh:1593
crl::multisense::details::wire::PcbInfo::revision
uint32_t revision
Definition: SysDeviceInfoMessage.hh:57
multisense::MultiSenseInfo::DeviceInfo::ImagerType::FLIR_TAU2
@ FLIR_TAU2
crl::multisense::details::wire::imu::RateType
Definition: ImuInfoMessage.hh:50
crl::multisense::details::wire::imu::RateType::sampleRate
float sampleRate
Definition: ImuInfoMessage.hh:54
multisense::MultiSenseInfo::DeviceInfo::nominal_relative_aperture
float nominal_relative_aperture
The nominal relative aperture for the primary camera modules in f-stop.
Definition: MultiSenseTypes.hh:1458
crl::multisense::details::wire::SysDeviceModes::modes
std::vector< DeviceMode > modes
Definition: SysDeviceModesMessage.hh:77
multisense::MultiSenseInfo::DeviceInfo::nominal_focal_length
float nominal_focal_length
The nominal focal length for the primary lens in meters.
Definition: MultiSenseTypes.hh:1453
multisense::MultiSenseInfo::NetworkInfo
The network configuration for the MultiSense.
Definition: MultiSenseTypes.hh:1267
multisense::MultiSenseInfo::DeviceInfo::hardware_revision
HardwareRevision hardware_revision
The hardware revision of the MultiSense.
Definition: MultiSenseTypes.hh:1404
crl::multisense::details::wire::PcbInfo
Definition: SysDeviceInfoMessage.hh:52
crl::multisense::details::wire::SysDeviceInfo
Definition: SysDeviceInfoMessage.hh:69
multisense::MultiSenseInfo::DeviceInfo::nominal_stereo_baseline
float nominal_stereo_baseline
The nominal stereo baseline in meters.
Definition: MultiSenseTypes.hh:1448
crl::multisense::details::wire::imu::RateType::bandwidthCutoff
float bandwidthCutoff
Definition: ImuInfoMessage.hh:55
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21
@ KS21
crl::multisense::details::wire::imu::RangeType::range
float range
Definition: ImuInfoMessage.hh:71
crl::multisense::details::wire::DeviceMode::width
uint32_t width
Definition: SysDeviceModesMessage.hh:49
multisense::MultiSenseInfo::NetworkInfo::netmask
std::string netmask
The netmask of the camera (i.e.
Definition: MultiSenseTypes.hh:1282
multisense::MultiSenseInfo::DeviceInfo::ImagerType::AR0239_COLOR
@ AR0239_COLOR
crl::multisense::details::wire::imu::RangeType::resolution
float resolution
Definition: ImuInfoMessage.hh:72
multisense::MultiSenseInfo::DeviceInfo::ImagerType::CMV2000_GREY
@ CMV2000_GREY
multisense::MultiSenseInfo::ImuInfo::Source::ranges
std::vector< ImuRange > ranges
The available ranges supported by this operating mode.
Definition: MultiSenseTypes.hh:1603
multisense::MultiSenseInfo::DeviceInfo::LightingType::OUTPUT_TRIGGER
@ OUTPUT_TRIGGER
A GPIO line is used to trigger an external light.
crl::multisense::details::wire::SysDeviceInfo::pcbs
PcbInfo pcbs[MAX_PCBS]
Definition: SysDeviceInfoMessage.hh:141
crl::multisense::details::wire::SysDeviceInfo::nominalFocalLength
float nominalFocalLength
Definition: SysDeviceInfoMessage.hh:151
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::S30
@ S30
crl::multisense::details::wire::DeviceMode::height
uint32_t height
Definition: SysDeviceModesMessage.hh:50
multisense::MultiSenseInfo::DeviceInfo::imager_name
std::string imager_name
The name of the imager used by the primary camera.
Definition: MultiSenseTypes.hh:1416
crl::multisense::details::wire::SOURCE_DISPARITY
static CRL_CONSTEXPR SourceType SOURCE_DISPARITY
Definition: Protocol.hh:262
crl::multisense::details::wire::VersionResponse
Definition: VersionResponseMessage.hh:50
multisense::MultiSenseInfo::ImuInfo::Source
Info about the available IMU configurations.
Definition: MultiSenseTypes.hh:1583
crl::multisense::details::wire::SysDeviceInfo::numberOfPcbs
uint8_t numberOfPcbs
Definition: SysDeviceInfoMessage.hh:140
crl::multisense::details::wire::SysDeviceInfo::name
std::string name
Definition: SysDeviceInfoMessage.hh:135
crl::multisense::details::wire::ImuInfo::details
std::vector< imu::Details > details
Definition: ImuInfoMessage.hh:118
create_version
crl::multisense::details::wire::VersionResponse create_version()
Definition: info_test.cc:75
crl::multisense::details::wire::SysDeviceInfo::numberOfLights
uint32_t numberOfLights
Definition: SysDeviceInfoMessage.hh:155
create_device_modes
crl::multisense::details::wire::SysDeviceModes create_device_modes(int64_t sources, int32_t imager_width, int32_t imager_height)
Definition: info_test.cc:89
multisense::MultiSenseInfo::DeviceInfo::imager_width
uint32_t imager_width
The native width of the primary imager.
Definition: MultiSenseTypes.hh:1426
crl::multisense::details::wire::SysDeviceInfo::imagerName
std::string imagerName
Definition: SysDeviceInfoMessage.hh:143
TEST
TEST(convert, wire_to_info)
Definition: info_test.cc:313
crl::multisense::details::wire::SysDeviceInfo::lightingType
uint32_t lightingType
Definition: SysDeviceInfoMessage.hh:154
multisense::MultiSenseInfo::DeviceInfo::serial_number
std::string serial_number
The unique serial number of the MultiSense This value can store at most 32 characters.
Definition: MultiSenseTypes.hh:1399
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST25
@ ST25
crl::multisense::details::wire::SysDeviceInfo::serialNumber
std::string serialNumber
Definition: SysDeviceInfoMessage.hh:137
crl::multisense::details::wire::SysDeviceInfo::lensName
std::string lensName
Definition: SysDeviceInfoMessage.hh:148
crl::multisense::details::wire::VersionResponse::hardwareMagic
uint64_t hardwareMagic
Definition: VersionResponseMessage.hh:58
crl::multisense::details::wire::PcbInfo::name
std::string name
Definition: SysDeviceInfoMessage.hh:56
crl::multisense::details::wire::DeviceMode::disparities
uint32_t disparities
Definition: SysDeviceModesMessage.hh:52
crl::multisense::details::wire::SysDeviceInfo::nominalRelativeAperture
float nominalRelativeAperture
Definition: SysDeviceInfoMessage.hh:152
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST21
@ ST21
crl::multisense::details::wire::imu::Details::units
std::string units
Definition: ImuInfoMessage.hh:90
crl::multisense::details::wire::DeviceMode::supportedDataSources
uint32_t supportedDataSources
Definition: SysDeviceModesMessage.hh:51
create_wire_info
crl::multisense::details::wire::SysDeviceInfo create_wire_info(const std::string &name, const std::string &key)
Definition: info_test.cc:44
multisense::MultiSenseInfo::DeviceInfo::pcb_info
std::vector< PcbInfo > pcb_info
Information about each PCB.
Definition: MultiSenseTypes.hh:1409
crl::multisense::details::wire::SOURCE_LUMA_RECT_RIGHT
static CRL_CONSTEXPR SourceType SOURCE_LUMA_RECT_RIGHT
Definition: Protocol.hh:258
multisense::MultiSenseInfo::DeviceInfo::imager_height
uint32_t imager_height
The native height of the primary imager.
Definition: MultiSenseTypes.hh:1431
multisense::MultiSenseInfo::ImuInfo::Source::name
std::string name
The name of the IMU sensor.
Definition: MultiSenseTypes.hh:1588
multisense::MultiSenseInfo::DeviceInfo::build_date
std::string build_date
The date the MultiSense was manufactured This value can store at most 32 characters.
Definition: MultiSenseTypes.hh:1393
crl::multisense::details::wire::ImuInfo
Definition: ImuInfoMessage.hh:109
crl::multisense::details::wire::SysDeviceInfo::buildDate
std::string buildDate
Definition: SysDeviceInfoMessage.hh:136
multisense::MultiSenseInfo::DeviceInfo::lens_name
std::string lens_name
The name of the lens used for the primary camera For stereo cameras this is the Left/Right stereo pai...
Definition: MultiSenseTypes.hh:1438
crl::multisense::details::wire::SysDeviceInfo::imagerType
uint32_t imagerType
Definition: SysDeviceInfoMessage.hh:144
crl::multisense::details::wire::imu::RangeType
Definition: ImuInfoMessage.hh:67
multisense::MultiSenseInfo::DeviceInfo
The Device information associated with the MultiSense.
Definition: MultiSenseTypes.hh:1290
crl::multisense::details::wire::imu::Details::rates
std::vector< RateType > rates
Definition: ImuInfoMessage.hh:91
multisense::MultiSenseInfo::DeviceInfo::PcbInfo
Info for the PCBs contained in the unit.
Definition: MultiSenseTypes.hh:1295
crl::multisense::details::wire::imu::Details
Definition: ImuInfoMessage.hh:84
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::S27
@ S27
multisense::MultiSenseInfo::DeviceInfo::LightingType::PATTERN_PROJECTOR
@ PATTERN_PROJECTOR
A pattern projector.
crl::multisense::details::wire::SysDeviceInfo::hardwareRevision
uint32_t hardwareRevision
Definition: SysDeviceInfoMessage.hh:138
multisense
Definition: MultiSenseChannel.hh:44
multisense::MultiSenseInfo::DeviceInfo::lighting_type
LightingType lighting_type
The type of lighting used in the MultiSense.
Definition: MultiSenseTypes.hh:1463
CRL_EXCEPTION
#define CRL_EXCEPTION(fmt,...)
Definition: Exception.hh:85
crl::multisense::details::wire::SOURCE_LUMA_LEFT
static CRL_CONSTEXPR SourceType SOURCE_LUMA_LEFT
Definition: Protocol.hh:255
crl::multisense::details::wire::DeviceMode
Definition: SysDeviceModesMessage.hh:47
multisense::MultiSenseInfo::DeviceInfo::ImagerType::CMV2000_COLOR
@ CMV2000_COLOR
crl::multisense::details::wire::imu::Details::ranges
std::vector< RangeType > ranges
Definition: ImuInfoMessage.hh:92
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i
@ KS21i
crl::multisense::details::wire::SysDeviceInfo::imagerHeight
uint32_t imagerHeight
Definition: SysDeviceInfoMessage.hh:146
crl::multisense::details::wire::VersionResponse::hardwareVersion
uint64_t hardwareVersion
Definition: VersionResponseMessage.hh:57
multisense::MultiSenseInfo::DeviceInfo::LightingType::PATTERN_PROJECTOR_OUTPUT_TRIGGER
@ PATTERN_PROJECTOR_OUTPUT_TRIGGER
A pattern projector with a GPIO line used to trigger a external light.
crl::multisense::details::wire::ImuInfo::maxSamplesPerMessage
uint32_t maxSamplesPerMessage
Definition: ImuInfoMessage.hh:117
multisense::MultiSenseInfo::DeviceInfo::LightingType::NONE
@ NONE
No lights.
crl::multisense::details::wire::imu::Details::device
std::string device
Definition: ImuInfoMessage.hh:89
crl::multisense::details::wire::SysDeviceInfo::key
std::string key
Definition: SysDeviceInfoMessage.hh:134
crl::multisense::details::wire::imu::Details::name
std::string name
Definition: ImuInfoMessage.hh:88
crl::multisense::details::wire::IdType
uint16_t IdType
Definition: Protocol.hh:136
crl::multisense::details::wire::VersionResponse::fpgaDna
uint64_t fpgaDna
Definition: VersionResponseMessage.hh:59
crl::multisense::details::wire::SysDeviceInfo::imagerWidth
uint32_t imagerWidth
Definition: SysDeviceInfoMessage.hh:145
create_info
multisense::MultiSenseInfo::DeviceInfo create_info(const std::string &name)
Definition: info_test.cc:165
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::S21
@ S21
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21_SILVER
@ KS21_SILVER
crl::multisense::details::wire::VersionResponse::firmwareBuildDate
std::string firmwareBuildDate
Definition: VersionResponseMessage.hh:55
create_imu_info
crl::multisense::details::wire::ImuInfo create_imu_info()
Definition: info_test.cc:121
multisense::MultiSenseInfo::DeviceInfo::ImagerType::AR0234_GREY
@ AR0234_GREY