Repository navigation
[merge-to-it] sharpa_avatar: detect a silent glove by new sample stamps - #1197
Conversation
fetch_data() keeps returning a silent glove's last sample, so a glove that stopped sending data still counted as fetched and the data timeout never fired. Only a sample whose stamp advances now counts as data, and the timeout drops from 10 s to 3 s. Signed-off-by: Lotus Li <lotusl@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review. 📝 WalkthroughWalkthroughThe plugin now tracks the newest sample timestamp for each glove. A successful fetch counts as new data only when its sample timestamp advances. Reset clears the stored timestamp, and the data timeout is reduced from 10 seconds to 3 seconds. Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The change makes cached samples stop refreshing glove liveness, with a three-second cutoff. Available evidence establishes no concrete regression or actionable merge blocker; the external SDK behavior behind the freshness check remains unverified. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
* [merge-to-it] sharpa_avatar: pin only the primary APT signing key fingerprint (#1196) install_avatar_sdk.sh failed its key check because it also required F9A50A81FE8797F953DB24E1938548788D899BCC, which is the encryption subkey of the Sharpa signing key, while the check reads primary fingerprints only. Pin the primary key alone. Signed-off-by: Lotus Li <lotusl@nvidia.com> * [merge-to-it] sharpa_avatar: detect a silent glove by new sample stamps (#1197) fetch_data() keeps returning a silent glove's last sample, so a glove that stopped sending data still counted as fetched and the data timeout never fired. Only a sample whose stamp advances now counts as data, and the timeout drops from 10 s to 3 s. Signed-off-by: Lotus Li <lotusl@nvidia.com> * [merge-to-it] sharpa_avatar: judge glove liveness by fetched data, not the online flag (#1181) (#1198) * [merge-to-it] sharpa_avatar: judge glove liveness by fetched data, not the online flag AvatarDevice::get_device_info().online stays false for a glove first discovered offline and powered on later, so such a glove was started and then stopped every 2 s. refresh_data() no longer checks that flag; a glove is disconnected only after the data timeout. Workaround for #1181. Signed-off-by: Lotus Li <lotusl@nvidia.com> * [merge-to-it] sharpa_avatar: time out a haptic-only glove by its RAW stamps With --datasets=haptic nothing dropped a glove's handle once the online reset was removed: the data timeout was gated on a data dataset and set_task() failures only log. A power-cycled glove kept its dead handle, which blocked reconnection. A haptic-only glove now fetches RAW so the same stamp-based data timeout applies to every configuration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lotus Li <lotusl@nvidia.com> --------- Signed-off-by: Lotus Li <lotusl@nvidia.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> --------- Signed-off-by: Lotus Li <lotusl@nvidia.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
[merge-to-it]
Summary
fetch_data()keeps returning a silent glove's last sample, so a glove that stopped sending data kept refreshinglast_successful_fetchand the data timeout never fired. A fetch now counts as data only when the sample stamp advances (GloveState::last_sample_stamp), and the timeout drops from 10 s to 3 s.Stacked below #1198 (liveness from fetched data, #1181), which relies on this timeout once the
onlineflag is no longer consulted.Testing
clang-format-14 --dry-run --Werroron touched C++; pre-commit (see note on the pre-existing svg failure).avatar_hand_tracking_plugin.cppagainst the pinned Avatar SDK 1.7.3-17 headers (-fsyntax-only); the plugin is not built in CI and has no unit tests.🤖 Generated with Claude Code
Summary by CodeRabbit