From 727a746fecbcd5d1b084d5b59dd55dd993096d3a Mon Sep 17 00:00:00 2001 From: alex-luxonis Date: Fri, 23 Jan 2026 17:36:59 +0200 Subject: [PATCH] RVC2 crashdump improvements, bindings for Device getState, Sync + MessageDemux get/setProcessor --- depthai-core | 2 +- src/DeviceBindings.cpp | 1 + src/pipeline/node/MessageDemuxBindings.cpp | 9 ++++++++- src/pipeline/node/SyncBindings.cpp | 3 +++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/depthai-core b/depthai-core index 1f36d9f90..562985775 160000 --- a/depthai-core +++ b/depthai-core @@ -1 +1 @@ -Subproject commit 1f36d9f90931c95bae56caa1f55400dc8f6c29a7 +Subproject commit 562985775fa5ba04cc8dfdf02d9fca6772387aea diff --git a/src/DeviceBindings.cpp b/src/DeviceBindings.cpp index ac4d10e4a..85a827dd5 100644 --- a/src/DeviceBindings.cpp +++ b/src/DeviceBindings.cpp @@ -485,6 +485,7 @@ void DeviceBindings::bind(pybind11::module& m, void* pCallstack){ .def("getSystemInformationLoggingRate", [](DeviceBase& d) { py::gil_scoped_release release; return d.getSystemInformationLoggingRate(); }, DOC(dai, DeviceBase, getSystemInformationLoggingRate)) .def("getCrashDump", [](DeviceBase& d, bool clearCrashDump) { py::gil_scoped_release release; return d.getCrashDump(clearCrashDump); }, py::arg("clearCrashDump") = true, DOC(dai, DeviceBase, getCrashDump)) .def("hasCrashDump", [](DeviceBase& d) { py::gil_scoped_release release; return d.hasCrashDump(); }, DOC(dai, DeviceBase, hasCrashDump)) + .def("getState", [](DeviceBase& d) { py::gil_scoped_release release; return d.getState(); }, DOC(dai, DeviceBase, getState)) .def("getConnectedCameras", [](DeviceBase& d) { py::gil_scoped_release release; return d.getConnectedCameras(); }, DOC(dai, DeviceBase, getConnectedCameras)) .def("getConnectionInterfaces", [](DeviceBase& d) { py::gil_scoped_release release; return d.getConnectionInterfaces(); }, DOC(dai, DeviceBase, getConnectionInterfaces)) .def("getConnectedCameraFeatures", [](DeviceBase& d) { py::gil_scoped_release release; return d.getConnectedCameraFeatures(); }, DOC(dai, DeviceBase, getConnectedCameraFeatures)) diff --git a/src/pipeline/node/MessageDemuxBindings.cpp b/src/pipeline/node/MessageDemuxBindings.cpp index 84f83aaf8..3201144d5 100644 --- a/src/pipeline/node/MessageDemuxBindings.cpp +++ b/src/pipeline/node/MessageDemuxBindings.cpp @@ -30,13 +30,20 @@ void bind_messagedemux(pybind11::module &m, void *pCallstack) { /////////////////////////////////////////////////////////////////////// // Properties + messageDemuxProperties + .def_readwrite("processor", &MessageDemuxProperties::processor, + DOC(dai, MessageDemuxProperties, processor)); // Node messageDemux .def_readonly("outputs", &MessageDemux::outputs, DOC(dai, node, MessageDemux, outputs)) .def_readonly("input", &MessageDemux::input, - DOC(dai, node, MessageDemux, input)); + DOC(dai, node, MessageDemux, input)) + .def("setProcessor", &MessageDemux::setProcessor, + DOC(dai, node, MessageDemux, setProcessor)) + .def("getProcessor", &MessageDemux::getProcessor, + DOC(dai, node, MessageDemux, getProcessor)); daiNodeModule.attr("MessageDemux").attr("Properties") = messageDemuxProperties; } diff --git a/src/pipeline/node/SyncBindings.cpp b/src/pipeline/node/SyncBindings.cpp index 10f384d5a..3f952b67b 100644 --- a/src/pipeline/node/SyncBindings.cpp +++ b/src/pipeline/node/SyncBindings.cpp @@ -32,6 +32,7 @@ void bind_sync(pybind11::module& m, void* pCallstack){ syncProperties .def_readwrite("syncThresholdNs", &SyncProperties::syncThresholdNs) .def_readwrite("syncAttempts", &SyncProperties::syncAttempts) + .def_readwrite("processor", &SyncProperties::processor, DOC(dai, SyncProperties, processor)) ; // Node @@ -40,6 +41,8 @@ void bind_sync(pybind11::module& m, void* pCallstack){ .def_readonly("inputs", &Sync::inputs, DOC(dai, node, Sync, inputs)) .def("setSyncThreshold", &Sync::setSyncThreshold, py::arg("syncThreshold"), DOC(dai, node, Sync, setSyncThreshold)) .def("setSyncAttempts", &Sync::setSyncAttempts, py::arg("maxDataSize"), DOC(dai, node, Sync, setSyncAttempts)) + .def("setProcessor", &Sync::setProcessor, DOC(dai, node, Sync, setProcessor)) + .def("getProcessor", &Sync::getProcessor, DOC(dai, node, Sync, getProcessor)) .def("getSyncThreshold", &Sync::getSyncThreshold, DOC(dai, node, Sync, getSyncThreshold)) .def("getSyncAttempts", &Sync::getSyncAttempts, DOC(dai, node, Sync, getSyncAttempts)) ;