39 #include <nlohmann/json.hpp>
47 struct adl_serializer<std::chrono::microseconds>
49 static void to_json(json& j,
const std::chrono::microseconds &d)
54 static void from_json(
const json& j, std::chrono::microseconds &d)
56 d = std::chrono::microseconds(j.get<std::chrono::microseconds::rep>());
61 struct adl_serializer<std::chrono::milliseconds>
63 static void to_json(json& j,
const std::chrono::milliseconds &d)
68 static void from_json(
const json& j, std::chrono::milliseconds &d)
70 d = std::chrono::milliseconds(j.get<std::chrono::milliseconds::rep>());
75 struct adl_serializer<std::chrono::nanoseconds>
77 static void to_json(json& j,
const std::chrono::nanoseconds &d)
82 static void from_json(
const json& j, std::chrono::nanoseconds &d)
84 d = std::chrono::nanoseconds(j.get<std::chrono::nanoseconds::rep>());
92 struct adl_serializer<std::optional<T>>
94 static void to_json(json& j,
const std::optional<T> &opt)
106 static void from_json(
const json& j, std::optional<T> &opt)
225 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(CameraCalibration,
232 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(StereoCalibration,
237 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::StereoConfig,
240 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ManualExposureConfig,
244 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::AutoExposureRoiConfig,
250 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::AutoExposureConfig,
258 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ManualWhiteBalanceConfig,
262 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::AutoWhiteBalanceConfig,
266 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ImageConfig,
268 auto_exposure_enabled,
271 auto_white_balance_enabled,
272 manual_white_balance,
275 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::AuxConfig,
278 sharpening_percentage,
281 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::TimeConfig,
284 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::NetworkTransmissionConfig,
285 packet_delay_enabled)
287 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(ImuRate,
291 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(ImuRange,
295 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ImuConfig::OperatingMode,
300 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::LightingConfig::InternalConfig,
304 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::LightingConfig::ExternalConfig,
310 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::LightingConfig,
314 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ImuConfig,
320 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig,
333 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::PtpStatus,
338 steps_from_local_to_grandmaster)
340 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::CameraStatus,
342 processing_pipeline_ok)
344 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::TemperatureStatus,
346 left_imager_temperature,
347 right_imager_temperature,
348 power_supply_temperature)
350 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::PowerStatus,
355 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::ClientNetworkStatus,
360 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::TimeStatus,
365 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus,
374 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::NetworkInfo,
379 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::DeviceInfo::PcbInfo,
383 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::DeviceInfo,
395 nominal_stereo_baseline,
396 nominal_focal_length,
397 nominal_relative_aperture,
401 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::Version,
406 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::SensorVersion,
411 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::SupportedOperatingMode,
417 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::ImuInfo::Source,
423 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::ImuInfo,
428 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo,
435 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Channel::ReceiveBufferConfig,
441 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Channel::Config,
447 receive_buffer_configuration)