37 #include <gtest/gtest.h>
39 #include <details/legacy/info.hh>
40 #include <details/legacy/utilities.hh>
42 using namespace multisense::legacy;
62 info.
imagerType = wire::SysDeviceInfo::IMAGER_TYPE_AR0239_COLOR;
69 info.
lightingType = wire::SysDeviceInfo::LIGHTING_TYPE_EXTERNAL;
96 mode0.
width = imager_width;
97 mode0.
height = imager_height;
98 mode0.
height = imager_height;
103 mode1.
width = imager_width / 2;
104 mode1.
height = imager_height / 2;
114 modes.
modes.push_back(mode0);
115 modes.
modes.push_back(mode1);
116 modes.
modes.push_back(mode2);
138 range0.
range = 10.2f;
142 detail0.
name =
"accelerometer";
143 detail0.
device =
"device0";
144 detail0.
units =
"units0";
146 detail0.
rates.push_back(rate0);
147 detail0.
rates.push_back(rate1);
148 detail0.
ranges.push_back(range0);
151 detail1.
name =
"gyroscope";
152 detail1.
device =
"device1";
153 detail1.
units =
"units1";
155 detail1.
rates.push_back(rate0);
156 detail1.
rates.push_back(rate1);
157 detail1.
ranges.push_back(range0);
159 output.
details.push_back(detail0);
160 output.
details.push_back(detail1);
195 const std::string &key)
200 ASSERT_EQ(wire.
key, key);
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:
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:
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:
290 ASSERT_EQ(wire.
rates.size(), info.
rates.size());
291 for (
size_t i = 0 ; i < info.
rates.size() ; ++i)
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);
298 for (
size_t i = 0 ; i < info.
ranges.size() ; ++i)
300 ASSERT_FLOAT_EQ(wire.
ranges[i].range, info.
ranges[i].range);
301 ASSERT_FLOAT_EQ(wire.
ranges[i].resolution, info.
ranges[i].resolution);
328 const auto version = convert(version_wire);
330 const auto converted_version = get_version(version_wire.firmwareVersion);
332 ASSERT_EQ(version.firmware_build_date, version_wire.firmwareBuildDate);
337 ASSERT_FALSE(version.firmware_version < converted_version);
338 ASSERT_FALSE(converted_version < version.firmware_version);
340 ASSERT_EQ(version.hardware_version, version_wire.hardwareVersion);
350 constexpr uint32_t imager_width = 1920;
351 constexpr uint32_t imager_height = 1200;
354 const auto modes = convert(wire_modes);
356 ASSERT_EQ(modes.size(), wire_modes.modes.size());
358 for(
size_t i = 0 ; i < modes.size() ; ++i)
360 ASSERT_EQ(modes[i].width, wire_modes.modes[i].width);
361 ASSERT_EQ(modes[i].height, wire_modes.modes[i].height);
363 ASSERT_EQ(modes[i].disparities, get_disparities(wire_modes.modes[i].disparities));
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);
376 const auto info = convert(wire_info);
378 for (
size_t i = 0 ; i < wire_info.details.size() ; ++i)
380 const auto &detail = wire_info.details[i];
382 if (info.accelerometer && info.accelerometer->name == detail.name)
386 else if (info.gyroscope && info.gyroscope->name == detail.name)
390 else if (info.magnetometer && info.magnetometer->name == detail.name)
401 TEST(convert, network_info_round_trip)
405 const auto round_trip = convert(convert(network_info));