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)
226NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(CameraCalibration,
233NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(StereoCalibration,
238NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::StereoConfig,
241NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ManualExposureConfig,
245NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::AutoExposureRoiConfig,
251NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::AutoExposureConfig,
259NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ManualWhiteBalanceConfig,
263NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::AutoWhiteBalanceConfig,
267NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ImageConfig,
269 auto_exposure_enabled,
272 auto_white_balance_enabled,
273 manual_white_balance,
276NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::AuxConfig,
279 sharpening_percentage,
282NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::TimeConfig,
285NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::NetworkTransmissionConfig,
286 packet_delay_enabled)
288NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(ImuRate,
292NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(ImuRange,
296NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ImuConfig::OperatingMode,
301NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::LightingConfig::InternalConfig,
305NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::LightingConfig::ExternalConfig,
311NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::LightingConfig,
315NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig::ImuConfig,
321NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseConfig,
334NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::PtpStatus,
339 steps_from_local_to_grandmaster)
341NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::CameraStatus,
343 processing_pipeline_ok)
345NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::TemperatureStatus,
348 left_imager_temperature,
349 right_imager_temperature)
351NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::PowerStatus,
356NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::ClientNetworkStatus,
361NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus::TimeStatus,
366NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseStatus,
375NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::NetworkInfo,
380NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::DeviceInfo::PcbInfo,
384NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::DeviceInfo,
396 nominal_stereo_baseline,
397 nominal_focal_length,
398 nominal_relative_aperture,
402NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::Version,
407NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::SensorVersion,
412NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::SupportedOperatingMode,
418NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::ImuInfo::Source,
424NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo::ImuInfo,
429NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(MultiSenseInfo,
436NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Channel::ReceiveBufferConfig,
442NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Channel::Config,
448 receive_buffer_configuration)
Copyright 2013-2025 Carnegie Robotics, LLC 4501 Hatfield Street, Pittsburgh, PA 15201 http://www....
Copyright 2013-2025 Carnegie Robotics, LLC 4501 Hatfield Street, Pittsburgh, PA 15201 http://www....
ChannelImplementation
Identifiers for the different Channel implementations.
@ LEGACY
Use the Legacy MultiSense wire protocol implemented as part of LibMultiSense.
DataSource
Identifies which camera or data source the image is from.
@ AUX_RECTIFIED_COMPRESSED
@ LEFT_RECTIFIED_COMPRESSED
@ AUX_CHROMA_RECTIFIED_RAW
@ RIGHT_RECTIFIED_COMPRESSED
@ LEFT_DISPARITY_COMPRESSED
NLOHMANN_JSON_SERIALIZE_ENUM(Status, { {Status::UNKNOWN, "UNKNOWN"}, {Status::OK, "OK"}, {Status::TIMEOUT, "TIMEOUT"}, {Status::INTERNAL_ERROR, "INTERNAL_ERROR"}, {Status::FAILED, "FAILED"}, {Status::UNSUPPORTED, "UNSUPPORTED"}, {Status::EXCEPTION, "EXCEPTION"}, {Status::UNINITIALIZED, "UNINITIALIZED"}, {Status::INCOMPLETE_APPLICATION, "INCOMPLETE_APPLICATION"} }) NLOHMANN_JSON_SERIALIZE_ENUM(DataSource
DistortionType
Distortion type.
FlashMode
Different flash modes for the camera.
MaxDisparities
Predefined disparity pixel search windows.
LensType
MultiSense lens types.
HardwareRevision
MultiSense Hardware revisions.
ImagerType
Different imager types.
LightingType
MultiSense lighting types.
@ OUTPUT_TRIGGER
A GPIO line is used to trigger an external light.
@ PATTERN_PROJECTOR
A pattern projector.
@ INTERNAL
Lights driven internally.
@ PATTERN_PROJECTOR_OUTPUT_TRIGGER
A pattern projector with a GPIO line used to trigger a external light.
@ EXTERNAL
Drive lights via an external output.
static void from_json(const json &j, std::chrono::microseconds &d)
static void to_json(json &j, const std::chrono::microseconds &d)
static void to_json(json &j, const std::chrono::milliseconds &d)
static void from_json(const json &j, std::chrono::milliseconds &d)
static void from_json(const json &j, std::chrono::nanoseconds &d)
static void to_json(json &j, const std::chrono::nanoseconds &d)
static void to_json(json &j, const std::optional< T > &opt)
static void from_json(const json &j, std::optional< T > &opt)