Skip to content

fix: support legacy firmware without prodname (SDK 0.3.5) - #31

Merged
han-xudong merged 1 commit into
mainfrom
fix/legacy-missing-prodname
Oct 27, 2026
Merged

han-xudong merged 1 commit into
mainfrom
fix/legacy-missing-prodname

Conversation

@han-xudong

@han-xudong han-xudong commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Summary

A valid legacy sensor configuration without <prodname> currently faults before StartRealtime, so Connect fails even when calibration scales and units are present. Treat only an absent product name as optional and display the generic ATI Net F/T label; preserve the sensor calibration and all present-name, required-calibration and XML validation. No public layout or ABI changes.

Prepare SDK 0.3.5 as a stable compatibility patch. Credit Inigo Moreno's original compatibility fix in ros-netft #20, which remains untouched as requested.

Verification

  • Red: the missing-name parser cases throw the reported prodname error, and the loopback client never starts RDT.
  • Green: 77 discovery/parser tests and 9 client-stream tests passed; the four missing-calibration cases additionally verify rejection with both present and absent product names.
  • The loopback regression starts RDT, checks exact six-axis calibration and units, and confirms no bias command.
  • git diff --check: passed. The locked formatter was applied to the affected C++ files.
  • Initial regression was run with the sensor disconnected. The user subsequently connected the Nano25; the physical verification below supplements the synthetic tests.

Downstream delivery

After the SDK release, synchronize the exact tagged source into CLI, Python, ROS and Viewer using their existing snapshot tools; preserve CLI's private adaptation and manifests. Release verified downstream patches so installed applications receive the fix. ROS #20 itself remains deferred and is not merged, closed or modified.

Hardware follow-up (2026-10-27): A Nano25 connected at 192.168.1.1 was then verified with the fixed SDK: firmware 2.2.56, no prodname in its real XML, 3,483 received records and 50 calibrated samples, zero invalid samples/status/errors/loss/reconnects. All 64 compared configuration fields were unchanged; no bias or configuration write was performed. The real Viewer 0.2.3 companion also completed Connect, 1,184 calibrated samples and Disconnect; its embedded SDK identity matched the released source, and all 64 configuration fields remained unchanged.

Preserve required calibration and malformed-name checks; prepare SDK 0.3.5 and verify HTTP-to-RDT startup with a nameless loopback device.

Co-authored-by: Inigo Moreno <[email protected]>
@coderabbitai

coderabbitai Bot commented Oct 27, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: eb369fe0-c903-4be3-b71d-5426974e167c
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@han-xudong
han-xudong merged commit d2ea470 into main Oct 27, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant