From 262304875e31327969e0d0e264c9fc916904b24c Mon Sep 17 00:00:00 2001 From: Lotus Li Date: Wed, 7 Oct 2026 01:10:28 +0000 Subject: [PATCH 1/2] [merge-to-it] manus: log one "start streaming" line when a glove connects A connecting glove now logs " glove connected (ID n); start streaming." when the landscape assigns it. The calibration success line moves to debug and the once-per-run " sensors=on" line is removed. Signed-off-by: Lotus Li --- .../core/inc/manus/manus_hand_tracking_plugin.hpp | 1 - src/plugins/manus/core/manus_hand_tracking_plugin.cpp | 10 +++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/plugins/manus/core/inc/manus/manus_hand_tracking_plugin.hpp b/src/plugins/manus/core/inc/manus/manus_hand_tracking_plugin.hpp index fc51d6a87d..8370414af8 100644 --- a/src/plugins/manus/core/inc/manus/manus_hand_tracking_plugin.hpp +++ b/src/plugins/manus/core/inc/manus/manus_hand_tracking_plugin.hpp @@ -150,7 +150,6 @@ class __attribute__((visibility("default"))) ManusTracker mutable std::mutex m_sensor_mutex; std::array m_sensor_count{ { 0, 0 } }; std::array, 2> m_sensor_transforms{}; - std::array m_sensors_logged_on{ { false, false } }; // OpenXR State std::shared_ptr m_session; diff --git a/src/plugins/manus/core/manus_hand_tracking_plugin.cpp b/src/plugins/manus/core/manus_hand_tracking_plugin.cpp index 0fcfbe4774..eb266ffc79 100644 --- a/src/plugins/manus/core/manus_hand_tracking_plugin.cpp +++ b/src/plugins/manus/core/manus_hand_tracking_plugin.cpp @@ -665,7 +665,7 @@ bool ManusTracker::apply_glove_calibration(uint32_t glove_id, bool is_left) return false; } - m_logger->info("Applied {} glove calibration file to glove id={}", is_left ? "left" : "right", glove_id); + m_logger->debug("Applied {} glove calibration file to glove id={}", is_left ? "left" : "right", glove_id); return true; } @@ -765,6 +765,7 @@ void ManusTracker::OnLandscapeStream(const Landscape* landscape) { tracker.left_glove_id = glove.id; tracker.m_calibration_failed[0] = !tracker.apply_glove_calibration(glove.id, true); + tracker.m_logger->info("Left glove connected (ID {}); start streaming.", glove.id); } // Fetch bone topology once on connect uint32_t nc = 0; @@ -784,6 +785,7 @@ void ManusTracker::OnLandscapeStream(const Landscape* landscape) { tracker.right_glove_id = glove.id; tracker.m_calibration_failed[1] = !tracker.apply_glove_calibration(glove.id, false); + tracker.m_logger->info("Right glove connected (ID {}); start streaming.", glove.id); } uint32_t nc = 0; if (get_raw_skeleton_node_count(glove.id, nc) == SDKReturnCode::SDKReturnCode_Success && nc > 0) @@ -1018,12 +1020,6 @@ void ManusTracker::push_sensor_side(bool is_left, core::SchemaPusher& pusher) return; } - if (!m_sensors_logged_on[side]) - { - m_sensors_logged_on[side] = true; - m_logger->info("{} sensors=on", is_left ? "left" : "right"); - } - std::vector joints; joints.reserve(static_cast(kManusSensorCount)); for (int sensor = 0; sensor < kManusSensorCount; ++sensor) From 7ece3b181487b3470a9bbc7b407531708588929b Mon Sep 17 00:00:00 2001 From: Lotus Li Date: Thu, 8 Oct 2026 14:54:49 -0700 Subject: [PATCH 2/2] [merge-to-it] docs: drop the removed Manus sensors=on log line manus.rst still said the plugin logs sensors=on once per side. Remove that sentence, and point the "No data received" row at the " glove connected (ID n); start streaming." line instead. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Lotus Li --- docs/source/device/manus.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/source/device/manus.rst b/docs/source/device/manus.rst index 42a27eb87c..19d04b42ed 100644 --- a/docs/source/device/manus.rst +++ b/docs/source/device/manus.rst @@ -221,8 +221,7 @@ Manus flex transforms; hosts that mask against a re-framed skeleton must apply their own sensor-pose processing. This path requires CloudXR tensor **push** extensions -(``XR_NVX1_push_tensor`` and ``XR_NVX1_tensor_data``). When sensors first become -available the plugin logs ``sensors=on`` once per side. +(``XR_NVX1_push_tensor`` and ``XR_NVX1_tensor_data``). Host-side consumption example: @@ -300,6 +299,9 @@ Troubleshooting building, set ``LD_LIBRARY_PATH`` to its ``lib/`` directory. * - No data received - Ensure MANUS Core is running and the gloves are connected and calibrated. + The plugin logs ``Left glove connected (ID ); start streaming.`` (or + ``Right ...``) when MANUS Core reports a glove; without that line it has + no glove to stream. * - CloudXR runtime errors - Check that a runtime is serving with ``python -m isaaccapture.cloudxr.service status``, and that ``~/.cloudxr/run/cloudxr.env`` has been sourced in the same