From 7a6eb2eab638a99155256e9c70fc923a22a844f7 Mon Sep 17 00:00:00 2001 From: psmithcrl Date: Mon, 1 Jun 2026 12:26:04 -0400 Subject: [PATCH 1/8] Added hardware revisions for st25i --- python/bindings.cc | 1 + source/Legacy/details/channel.cc | 2 ++ source/Legacy/include/MultiSense/MultiSenseTypes.hh | 1 + source/LibMultiSense/details/legacy/info.cc | 4 ++++ .../include/MultiSense/MultiSenseSerialization.hh | 3 ++- source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh | 3 ++- source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh | 1 + 7 files changed, 13 insertions(+), 2 deletions(-) diff --git a/python/bindings.cc b/python/bindings.cc index 645d937e..644059d7 100644 --- a/python/bindings.cc +++ b/python/bindings.cc @@ -626,6 +626,7 @@ PYBIND11_MODULE(_libmultisense, m) { .value("KS21_SILVER", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21_SILVER) .value("ST25", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST25) .value("KS21i", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i); + .value("ST25i", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST25i); // MultiSenseInfo::DeviceInfo::ImagerType py::enum_(m, "ImagerType") diff --git a/source/Legacy/details/channel.cc b/source/Legacy/details/channel.cc index c28ae00e..0d19c2eb 100644 --- a/source/Legacy/details/channel.cc +++ b/source/Legacy/details/channel.cc @@ -578,6 +578,7 @@ uint32_t impl::hardwareApiToWire(uint32_t a) case system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER; case system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25; case system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21i: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i; + case system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25i: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25i; default: CRL_DEBUG("unknown API hardware type \"%d\"\n", a); return a; // pass through @@ -605,6 +606,7 @@ uint32_t impl::hardwareWireToApi(uint32_t w) case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER; case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25; case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21i; + case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25i: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25i; default: CRL_DEBUG("unknown WIRE hardware type \"%d\"\n", w); return w; // pass through diff --git a/source/Legacy/include/MultiSense/MultiSenseTypes.hh b/source/Legacy/include/MultiSense/MultiSenseTypes.hh index fb1004f5..323e63da 100644 --- a/source/Legacy/include/MultiSense/MultiSenseTypes.hh +++ b/source/Legacy/include/MultiSense/MultiSenseTypes.hh @@ -3266,6 +3266,7 @@ public: static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21_SILVER = 15; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25 = 16; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21i = 17; + static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25i = 18; static CRL_CONSTEXPR uint32_t HARDWARE_REV_BCAM = 100; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MONO = 101; diff --git a/source/LibMultiSense/details/legacy/info.cc b/source/LibMultiSense/details/legacy/info.cc index 0ae84f78..608b4451 100644 --- a/source/LibMultiSense/details/legacy/info.cc +++ b/source/LibMultiSense/details/legacy/info.cc @@ -72,6 +72,8 @@ MultiSenseInfo::DeviceInfo convert(const crl::multisense::details::wire::SysDevi {output.hardware_revision = MultiSenseInfo::DeviceInfo::HardwareRevision::ST25; break;} case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i: {output.hardware_revision = MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i; break;} + case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25i: + {output.hardware_revision = MultiSenseInfo::DeviceInfo::HardwareRevision::ST25i; break;} default: {CRL_EXCEPTION("Unsupported hardware revision");} } @@ -177,6 +179,8 @@ crl::multisense::details::wire::SysDeviceInfo convert(const MultiSenseInfo::Devi {output.hardwareRevision = wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25; break;} case MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i: {output.hardwareRevision = wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i; break;} + case MultiSenseInfo::DeviceInfo::HardwareRevision::ST25i: + {output.hardwareRevision = wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25i; break;} default: {CRL_EXCEPTION("Unsupported hardware revision");} } diff --git a/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh b/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh index ab90d520..9cf52580 100644 --- a/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh +++ b/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh @@ -209,7 +209,8 @@ NLOHMANN_JSON_SERIALIZE_ENUM(MultiSenseInfo::DeviceInfo::HardwareRevision, { {MultiSenseInfo::DeviceInfo::HardwareRevision::MONOCAM, "MONOCAM"}, {MultiSenseInfo::DeviceInfo::HardwareRevision::KS21_SILVER, "KS21_SILVER"}, {MultiSenseInfo::DeviceInfo::HardwareRevision::ST25, "ST25"}, - {MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i, "KS21i"} + {MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i, "KS21i"}, + {MultiSenseInfo::DeviceInfo::HardwareRevision::ST25i, "ST25i"} }) NLOHMANN_JSON_SERIALIZE_ENUM(MultiSenseInfo::DeviceInfo::ImagerType, { diff --git a/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh b/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh index 70f46c84..97bc9c83 100644 --- a/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh +++ b/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh @@ -1539,7 +1539,8 @@ struct MultiSenseInfo MONOCAM, KS21_SILVER, ST25, - KS21i + KS21i, + ST25i }; /// diff --git a/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh b/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh index e70f90fe..0fdd044d 100644 --- a/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh +++ b/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh @@ -104,6 +104,7 @@ public: static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21_SILVER = 15; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25 = 16; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21i = 17; + static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25i = 18; static CRL_CONSTEXPR uint32_t HARDWARE_REV_BCAM = 100; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MONO = 101; From 77436753483c0b29e2ccb552791d4675ae2276c0 Mon Sep 17 00:00:00 2001 From: psmithcrl Date: Mon, 1 Jun 2026 12:39:33 -0400 Subject: [PATCH 2/8] Change name from ST25i, to STLC --- python/bindings.cc | 2 +- source/Legacy/details/channel.cc | 4 ++-- source/Legacy/include/MultiSense/MultiSenseTypes.hh | 2 +- source/LibMultiSense/details/legacy/info.cc | 8 ++++---- .../include/MultiSense/MultiSenseSerialization.hh | 2 +- .../LibMultiSense/include/MultiSense/MultiSenseTypes.hh | 2 +- .../Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/python/bindings.cc b/python/bindings.cc index 644059d7..4da9bd67 100644 --- a/python/bindings.cc +++ b/python/bindings.cc @@ -626,7 +626,7 @@ PYBIND11_MODULE(_libmultisense, m) { .value("KS21_SILVER", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21_SILVER) .value("ST25", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST25) .value("KS21i", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i); - .value("ST25i", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST25i); + .value("STLC", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::STLC); // MultiSenseInfo::DeviceInfo::ImagerType py::enum_(m, "ImagerType") diff --git a/source/Legacy/details/channel.cc b/source/Legacy/details/channel.cc index 0d19c2eb..ccd611de 100644 --- a/source/Legacy/details/channel.cc +++ b/source/Legacy/details/channel.cc @@ -578,7 +578,7 @@ uint32_t impl::hardwareApiToWire(uint32_t a) case system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER; case system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25; case system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21i: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i; - case system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25i: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25i; + case system::DeviceInfo::HARDWARE_REV_MULTISENSE_STLC: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC; default: CRL_DEBUG("unknown API hardware type \"%d\"\n", a); return a; // pass through @@ -606,7 +606,7 @@ uint32_t impl::hardwareWireToApi(uint32_t w) case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER; case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25; case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21i; - case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25i: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25i; + case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_STLC; default: CRL_DEBUG("unknown WIRE hardware type \"%d\"\n", w); return w; // pass through diff --git a/source/Legacy/include/MultiSense/MultiSenseTypes.hh b/source/Legacy/include/MultiSense/MultiSenseTypes.hh index 323e63da..42495ec2 100644 --- a/source/Legacy/include/MultiSense/MultiSenseTypes.hh +++ b/source/Legacy/include/MultiSense/MultiSenseTypes.hh @@ -3266,7 +3266,7 @@ public: static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21_SILVER = 15; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25 = 16; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21i = 17; - static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25i = 18; + static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_STLC = 18; static CRL_CONSTEXPR uint32_t HARDWARE_REV_BCAM = 100; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MONO = 101; diff --git a/source/LibMultiSense/details/legacy/info.cc b/source/LibMultiSense/details/legacy/info.cc index 608b4451..b4551dc2 100644 --- a/source/LibMultiSense/details/legacy/info.cc +++ b/source/LibMultiSense/details/legacy/info.cc @@ -72,8 +72,8 @@ MultiSenseInfo::DeviceInfo convert(const crl::multisense::details::wire::SysDevi {output.hardware_revision = MultiSenseInfo::DeviceInfo::HardwareRevision::ST25; break;} case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i: {output.hardware_revision = MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i; break;} - case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25i: - {output.hardware_revision = MultiSenseInfo::DeviceInfo::HardwareRevision::ST25i; break;} + case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC: + {output.hardware_revision = MultiSenseInfo::DeviceInfo::HardwareRevision::STLC; break;} default: {CRL_EXCEPTION("Unsupported hardware revision");} } @@ -179,8 +179,8 @@ crl::multisense::details::wire::SysDeviceInfo convert(const MultiSenseInfo::Devi {output.hardwareRevision = wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25; break;} case MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i: {output.hardwareRevision = wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i; break;} - case MultiSenseInfo::DeviceInfo::HardwareRevision::ST25i: - {output.hardwareRevision = wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25i; break;} + case MultiSenseInfo::DeviceInfo::HardwareRevision::STLC: + {output.hardwareRevision = wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC; break;} default: {CRL_EXCEPTION("Unsupported hardware revision");} } diff --git a/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh b/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh index 9cf52580..c33fe6cd 100644 --- a/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh +++ b/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh @@ -210,7 +210,7 @@ NLOHMANN_JSON_SERIALIZE_ENUM(MultiSenseInfo::DeviceInfo::HardwareRevision, { {MultiSenseInfo::DeviceInfo::HardwareRevision::KS21_SILVER, "KS21_SILVER"}, {MultiSenseInfo::DeviceInfo::HardwareRevision::ST25, "ST25"}, {MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i, "KS21i"}, - {MultiSenseInfo::DeviceInfo::HardwareRevision::ST25i, "ST25i"} + {MultiSenseInfo::DeviceInfo::HardwareRevision::STLC, "STLC"} }) NLOHMANN_JSON_SERIALIZE_ENUM(MultiSenseInfo::DeviceInfo::ImagerType, { diff --git a/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh b/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh index 97bc9c83..9fe45586 100644 --- a/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh +++ b/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh @@ -1540,7 +1540,7 @@ struct MultiSenseInfo KS21_SILVER, ST25, KS21i, - ST25i + STLC }; /// diff --git a/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh b/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh index 0fdd044d..17f04de6 100644 --- a/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh +++ b/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh @@ -104,7 +104,7 @@ public: static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21_SILVER = 15; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25 = 16; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21i = 17; - static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25i = 18; + static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_STLC = 18; static CRL_CONSTEXPR uint32_t HARDWARE_REV_BCAM = 100; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MONO = 101; From 0dbc365db7336e17453fcff34fa5f2f786ecc3ff Mon Sep 17 00:00:00 2001 From: psmithcrl Date: Mon, 1 Jun 2026 13:21:41 -0400 Subject: [PATCH 3/8] Added TURA640 IMAGER typ --- python/bindings.cc | 3 ++- source/Legacy/details/channel.cc | 6 ++++-- source/Legacy/include/MultiSense/MultiSenseTypes.hh | 3 ++- source/LibMultiSense/details/legacy/info.cc | 4 ++++ .../include/MultiSense/MultiSenseSerialization.hh | 3 ++- source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh | 3 ++- source/LibMultiSense/test/info_test.cc | 2 ++ source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh | 3 ++- 8 files changed, 20 insertions(+), 7 deletions(-) diff --git a/python/bindings.cc b/python/bindings.cc index 4da9bd67..3c6903a7 100644 --- a/python/bindings.cc +++ b/python/bindings.cc @@ -638,7 +638,8 @@ PYBIND11_MODULE(_libmultisense, m) { .value("FLIR_TAU2", multisense::MultiSenseInfo::DeviceInfo::ImagerType::FLIR_TAU2) .value("AR0234_GREY", multisense::MultiSenseInfo::DeviceInfo::ImagerType::AR0234_GREY) .value("AR0239_COLOR", multisense::MultiSenseInfo::DeviceInfo::ImagerType::AR0239_COLOR) - .value("TENUM1280", multisense::MultiSenseInfo::DeviceInfo::ImagerType::TENUM1280); + .value("TENUM1280", multisense::MultiSenseInfo::DeviceInfo::ImagerType::TENUM1280) + .value("TURA640", multisense::MultiSenseInfo::DeviceInfo::ImagerType::TURA640); // MultiSenseInfo::DeviceInfo::LightingType py::enum_(m, "LightingType") diff --git a/source/Legacy/details/channel.cc b/source/Legacy/details/channel.cc index ccd611de..3366e4f3 100644 --- a/source/Legacy/details/channel.cc +++ b/source/Legacy/details/channel.cc @@ -578,7 +578,7 @@ uint32_t impl::hardwareApiToWire(uint32_t a) case system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER; case system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25; case system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21i: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i; - case system::DeviceInfo::HARDWARE_REV_MULTISENSE_STLC: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC; + case system::DeviceInfo::HARDWARE_REV_MULTISENSE_STLC: return wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC; default: CRL_DEBUG("unknown API hardware type \"%d\"\n", a); return a; // pass through @@ -606,7 +606,7 @@ uint32_t impl::hardwareWireToApi(uint32_t w) case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21_SILVER; case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_ST25; case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_KS21i; - case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_STLC; + case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC: return system::DeviceInfo::HARDWARE_REV_MULTISENSE_STLC; default: CRL_DEBUG("unknown WIRE hardware type \"%d\"\n", w); return w; // pass through @@ -624,6 +624,7 @@ uint32_t impl::imagerApiToWire(uint32_t a) case system::DeviceInfo::IMAGER_TYPE_AR0239_COLOR: return wire::SysDeviceInfo::IMAGER_TYPE_AR0239_COLOR; case system::DeviceInfo::IMAGER_TYPE_FLIR_TAU2: return wire::SysDeviceInfo::IMAGER_TYPE_FLIR_TAU2; case system::DeviceInfo::IMAGER_TYPE_TENUM1280: return wire::SysDeviceInfo::IMAGER_TYPE_TENUM1280; + case system::DeviceInfo::IMAGER_TYPE_TURA640: return wire::SysDeviceInfo::IMAGER_TYPE_TURA640; default: CRL_DEBUG("unknown API imager type \"%d\"\n", a); return a; // pass through @@ -641,6 +642,7 @@ uint32_t impl::imagerWireToApi(uint32_t w) case wire::SysDeviceInfo::IMAGER_TYPE_AR0239_COLOR: return system::DeviceInfo::IMAGER_TYPE_AR0239_COLOR; case wire::SysDeviceInfo::IMAGER_TYPE_FLIR_TAU2: return system::DeviceInfo::IMAGER_TYPE_FLIR_TAU2; case wire::SysDeviceInfo::IMAGER_TYPE_TENUM1280: return system::DeviceInfo::IMAGER_TYPE_TENUM1280; + case wire::SysDeviceInfo::IMAGER_TYPE_TURA640: return system::DeviceInfo::IMAGER_TYPE_TURA640; default: CRL_DEBUG("unknown WIRE imager type \"%d\"\n", w); return w; // pass through diff --git a/source/Legacy/include/MultiSense/MultiSenseTypes.hh b/source/Legacy/include/MultiSense/MultiSenseTypes.hh index 42495ec2..5a6efae3 100644 --- a/source/Legacy/include/MultiSense/MultiSenseTypes.hh +++ b/source/Legacy/include/MultiSense/MultiSenseTypes.hh @@ -3266,7 +3266,7 @@ public: static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21_SILVER = 15; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25 = 16; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21i = 17; - static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_STLC = 18; + static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_STLC = 18; static CRL_CONSTEXPR uint32_t HARDWARE_REV_BCAM = 100; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MONO = 101; @@ -3280,6 +3280,7 @@ public: static CRL_CONSTEXPR uint32_t IMAGER_TYPE_AR0234_GREY = 200; static CRL_CONSTEXPR uint32_t IMAGER_TYPE_AR0239_COLOR = 202; static CRL_CONSTEXPR uint32_t IMAGER_TYPE_TENUM1280 = 300; + static CRL_CONSTEXPR uint32_t IMAGER_TYPE_TURA640 = 301; static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_NONE = 0; static CRL_CONSTEXPR uint32_t LIGHTING_TYPE_INTERNAL = 1; diff --git a/source/LibMultiSense/details/legacy/info.cc b/source/LibMultiSense/details/legacy/info.cc index b4551dc2..6dc2390f 100644 --- a/source/LibMultiSense/details/legacy/info.cc +++ b/source/LibMultiSense/details/legacy/info.cc @@ -103,6 +103,8 @@ MultiSenseInfo::DeviceInfo convert(const crl::multisense::details::wire::SysDevi {output.imager_type = MultiSenseInfo::DeviceInfo::ImagerType::AR0239_COLOR; break;} case wire::SysDeviceInfo::IMAGER_TYPE_TENUM1280: {output.imager_type = MultiSenseInfo::DeviceInfo::ImagerType::TENUM1280; break;} + case wire::SysDeviceInfo::IMAGER_TYPE_TURA640: + {output.imager_type = MultiSenseInfo::DeviceInfo::ImagerType::TURA640; break;} default: {CRL_EXCEPTION("Unsupported imager type");} } @@ -210,6 +212,8 @@ crl::multisense::details::wire::SysDeviceInfo convert(const MultiSenseInfo::Devi {output.imagerType = wire::SysDeviceInfo::IMAGER_TYPE_AR0239_COLOR; break;} case MultiSenseInfo::DeviceInfo::ImagerType::TENUM1280: {output.imagerType = wire::SysDeviceInfo::IMAGER_TYPE_TENUM1280; break;} + case MultiSenseInfo::DeviceInfo::ImagerType::TURA640: + {output.imagerType = wire::SysDeviceInfo::IMAGER_TYPE_TURA640; break;} default: {CRL_EXCEPTION("Unsupported hardware revision");} } diff --git a/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh b/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh index c33fe6cd..257a9458 100644 --- a/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh +++ b/source/LibMultiSense/include/MultiSense/MultiSenseSerialization.hh @@ -222,7 +222,8 @@ NLOHMANN_JSON_SERIALIZE_ENUM(MultiSenseInfo::DeviceInfo::ImagerType, { {MultiSenseInfo::DeviceInfo::ImagerType::FLIR_TAU2, "FLIR_TAU2"}, {MultiSenseInfo::DeviceInfo::ImagerType::AR0234_GREY, "AR0234_GREY"}, {MultiSenseInfo::DeviceInfo::ImagerType::AR0239_COLOR, "AR0239_COLOR"}, - {MultiSenseInfo::DeviceInfo::ImagerType::TENUM1280, "TENUM1280"} + {MultiSenseInfo::DeviceInfo::ImagerType::TENUM1280, "TENUM1280"}, + {MultiSenseInfo::DeviceInfo::ImagerType::TURA640, "TURA640"} }) NLOHMANN_JSON_SERIALIZE_ENUM(MultiSenseInfo::DeviceInfo::LightingType, { diff --git a/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh b/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh index 9fe45586..c549a88c 100644 --- a/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh +++ b/source/LibMultiSense/include/MultiSense/MultiSenseTypes.hh @@ -1556,7 +1556,8 @@ struct MultiSenseInfo FLIR_TAU2, AR0234_GREY, AR0239_COLOR, - TENUM1280 + TENUM1280, + TURA640 }; /// diff --git a/source/LibMultiSense/test/info_test.cc b/source/LibMultiSense/test/info_test.cc index ec4375f3..edb75791 100644 --- a/source/LibMultiSense/test/info_test.cc +++ b/source/LibMultiSense/test/info_test.cc @@ -254,6 +254,8 @@ void check_equal(const crl::multisense::details::wire::SysDeviceInfo &wire, ASSERT_EQ(info.imager_type, MultiSenseInfo::DeviceInfo::ImagerType::AR0239_COLOR); break; case wire::SysDeviceInfo::IMAGER_TYPE_TENUM1280: ASSERT_EQ(info.imager_type, MultiSenseInfo::DeviceInfo::ImagerType::TENUM1280); break; + case wire::SysDeviceInfo::IMAGER_TYPE_TURA640: + ASSERT_EQ(info.imager_type, MultiSenseInfo::DeviceInfo::ImagerType::TURA640); break; default: {CRL_EXCEPTION("Unsupported imager type");} } ASSERT_EQ(wire.imagerWidth, info.imager_width); diff --git a/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh b/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh index 17f04de6..e0d79ede 100644 --- a/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh +++ b/source/Wire/include/MultiSense/wire/SysDeviceInfoMessage.hh @@ -104,7 +104,7 @@ public: static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21_SILVER = 15; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_ST25 = 16; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_KS21i = 17; - static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_STLC = 18; + static CRL_CONSTEXPR uint32_t HARDWARE_REV_MULTISENSE_STLC = 18; static CRL_CONSTEXPR uint32_t HARDWARE_REV_BCAM = 100; static CRL_CONSTEXPR uint32_t HARDWARE_REV_MONO = 101; @@ -117,6 +117,7 @@ public: static CRL_CONSTEXPR uint32_t IMAGER_TYPE_AR0234_GREY = 200; static CRL_CONSTEXPR uint32_t IMAGER_TYPE_AR0239_COLOR = 202; static CRL_CONSTEXPR uint32_t IMAGER_TYPE_TENUM1280 = 300; + static CRL_CONSTEXPR uint32_t IMAGER_TYPE_TURA640 = 301; static CRL_CONSTEXPR uint32_t LENS_TYPE_STANDARD = 1; static CRL_CONSTEXPR uint32_t LENS_TYPE_FISHEYE = 2; From c9c4cc776a0e4017e47286ce699b3e5a2770204e Mon Sep 17 00:00:00 2001 From: psmithcrl Date: Fri, 12 Jun 2026 11:51:53 -0400 Subject: [PATCH 4/8] removed semicolon --- python/bindings.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/bindings.cc b/python/bindings.cc index 3c6903a7..c664fc74 100644 --- a/python/bindings.cc +++ b/python/bindings.cc @@ -625,7 +625,7 @@ PYBIND11_MODULE(_libmultisense, m) { .value("MONOCAM", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::MONOCAM) .value("KS21_SILVER", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21_SILVER) .value("ST25", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST25) - .value("KS21i", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i); + .value("KS21i", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i) .value("STLC", multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::STLC); // MultiSenseInfo::DeviceInfo::ImagerType From 7afdb1bd76a6b50809b6f6c3d53737a8a6cdc100 Mon Sep 17 00:00:00 2001 From: psmithcrl Date: Tue, 16 Jun 2026 11:32:46 -0400 Subject: [PATCH 5/8] added test for tenum1280 and tura640 --- source/LibMultiSense/test/info_test.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/LibMultiSense/test/info_test.cc b/source/LibMultiSense/test/info_test.cc index edb75791..44c36b26 100644 --- a/source/LibMultiSense/test/info_test.cc +++ b/source/LibMultiSense/test/info_test.cc @@ -320,6 +320,20 @@ TEST(convert, wire_to_info) check_equal(info, convert(info), "key"); } +TEST(convert, wire_to_info_tenum) +{ + auto info = create_wire_info("test", "key"); + info.imagerType = crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_TENUM1280; + check_equal(info, convert(info), "key"); +} + +TEST(convert, wire_to_info_tura) +{ + auto info = create_wire_info("test", "key"); + info.imagerType = crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_TURA640; + check_equal(info, convert(info), "key"); +} + TEST(convert, info_to_wire) { const auto info = create_info("test"); From 70fe892a65b6b794c97ad38875df16ab40dc330b Mon Sep 17 00:00:00 2001 From: psmithcrl Date: Tue, 16 Jun 2026 11:48:08 -0400 Subject: [PATCH 6/8] Added test for stlc hardware revision --- source/LibMultiSense/test/info_test.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/LibMultiSense/test/info_test.cc b/source/LibMultiSense/test/info_test.cc index 44c36b26..17103d15 100644 --- a/source/LibMultiSense/test/info_test.cc +++ b/source/LibMultiSense/test/info_test.cc @@ -224,6 +224,8 @@ void check_equal(const crl::multisense::details::wire::SysDeviceInfo &wire, ASSERT_EQ(info.hardware_revision, MultiSenseInfo::DeviceInfo::HardwareRevision::ST25); break; case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i: ASSERT_EQ(info.hardware_revision, MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i); break; + case wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC: + ASSERT_EQ(info.hardware_revision, MultiSenseInfo::DeviceInfo::HardwareRevision::STLC); break; default: {CRL_EXCEPTION("Unsupported hardware revision");} } @@ -334,6 +336,13 @@ TEST(convert, wire_to_info_tura) check_equal(info, convert(info), "key"); } +TEST(convert, wire_to_info_stlc) +{ + auto info = create_wire_info("test", "key"); + info.hardwareRevision = crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_STLC; + check_equal(info, convert(info), "key"); +} + TEST(convert, info_to_wire) { const auto info = create_info("test"); From 0f20bbd4b738fdc08031f783a7297a03e2aebce7 Mon Sep 17 00:00:00 2001 From: psmithcrl Date: Tue, 16 Jun 2026 12:04:07 -0400 Subject: [PATCH 7/8] added some new info tests --- source/LibMultiSense/test/info_test.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/source/LibMultiSense/test/info_test.cc b/source/LibMultiSense/test/info_test.cc index 17103d15..f73e99d1 100644 --- a/source/LibMultiSense/test/info_test.cc +++ b/source/LibMultiSense/test/info_test.cc @@ -349,6 +349,27 @@ TEST(convert, info_to_wire) check_equal(convert(info, "key"), info, "key"); } +TEST(convert, info_to_wire_stlc) +{ + auto info = create_info("test"); + info.hardware_revision = multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::STLC; + check_equal(convert(info, "key"), info, "key"); +} + +TEST(convert, info_to_wire_tura640) +{ + auto info = create_info("test"); + info.imager_type = multisense::MultiSenseInfo::DeviceInfo::ImagerType::TURA640; + check_equal(convert(info, "key"), info, "key"); +} + +TEST(convert, info_to_wire_tenum1280) +{ + auto info = create_info("test"); + info.imager_type = multisense::MultiSenseInfo::DeviceInfo::ImagerType::TENUM1280; + check_equal(convert(info, "key"), info, "key"); +} + TEST(convert, version) { const auto version_wire = create_version(); From 6ff1596861b429faf490f98f914f8711c8f83d18 Mon Sep 17 00:00:00 2001 From: psmithcrl Date: Tue, 16 Jun 2026 12:11:37 -0400 Subject: [PATCH 8/8] Added tests --- source/LibMultiSense/test/info_test.cc | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/source/LibMultiSense/test/info_test.cc b/source/LibMultiSense/test/info_test.cc index f73e99d1..25433fe7 100644 --- a/source/LibMultiSense/test/info_test.cc +++ b/source/LibMultiSense/test/info_test.cc @@ -336,6 +336,20 @@ TEST(convert, wire_to_info_tura) check_equal(info, convert(info), "key"); } +TEST(convert, wire_to_info_234) +{ + auto info = create_wire_info("test", "key"); + info.imagerType = crl::multisense::details::wire::SysDeviceInfo::IMAGER_TYPE_AR0234_GREY; + check_equal(info, convert(info), "key"); +} + +TEST(convert, wire_to_info_ks21i) +{ + auto info = create_wire_info("test", "key"); + info.hardwareRevision = crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_KS21i; + check_equal(info, convert(info), "key"); +} + TEST(convert, wire_to_info_stlc) { auto info = create_wire_info("test", "key"); @@ -343,12 +357,26 @@ TEST(convert, wire_to_info_stlc) check_equal(info, convert(info), "key"); } +TEST(convert, wire_to_info_st25) +{ + auto info = create_wire_info("test", "key"); + info.hardwareRevision = crl::multisense::details::wire::SysDeviceInfo::HARDWARE_REV_MULTISENSE_ST25; + check_equal(info, convert(info), "key"); +} + TEST(convert, info_to_wire) { const auto info = create_info("test"); check_equal(convert(info, "key"), info, "key"); } +TEST(convert, info_to_wire_ks21i) +{ + auto info = create_info("test"); + info.hardware_revision = multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i; + check_equal(convert(info, "key"), info, "key"); +} + TEST(convert, info_to_wire_stlc) { auto info = create_info("test"); @@ -356,6 +384,20 @@ TEST(convert, info_to_wire_stlc) check_equal(convert(info, "key"), info, "key"); } +TEST(convert, info_to_wire_st25) +{ + auto info = create_info("test"); + info.hardware_revision = multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST25; + check_equal(convert(info, "key"), info, "key"); +} + +TEST(convert, info_to_wire_234) +{ + auto info = create_info("test"); + info.imager_type = multisense::MultiSenseInfo::DeviceInfo::ImagerType::AR0234_GREY; + check_equal(convert(info, "key"), info, "key"); +} + TEST(convert, info_to_wire_tura640) { auto info = create_info("test");