From eb609c851486109b5adc135b2301bb4cc4aca73c Mon Sep 17 00:00:00 2001 From: hanxudong159 <42986190+han-xudong@users.noreply.github.com> Date: Tue, 27 Oct 2026 14:28:09 +0800 Subject: [PATCH] docs: document legacy device compatibility patches --- data/ecosystem.json | 10 ++--- data/reference/cli.json | 8 ++-- data/reference/cpp.json | 8 ++-- data/reference/python.json | 8 ++-- data/reference/ros.json | 8 ++-- data/reference/versions.json | 40 ++++++++++---------- docs/get-started/installation.md | 18 ++++----- docs/references/compatibility.mdx | 2 +- docs/references/cpp-api/overview.mdx | 2 +- docs/references/python-api/overview.mdx | 2 +- docs/tutorials/cli/inspect-and-validate.md | 2 +- docs/tutorials/ros/standalone.md | 4 +- docs/tutorials/sdks/cpp.md | 2 +- docs/tutorials/sdks/python.md | 4 +- docs/tutorials/troubleshooting/index.md | 4 ++ docs/tutorials/viewer/connect-and-inspect.md | 4 +- 16 files changed, 66 insertions(+), 60 deletions(-) diff --git a/data/ecosystem.json b/data/ecosystem.json index 9f34aad..ecf9d41 100644 --- a/data/ecosystem.json +++ b/data/ecosystem.json @@ -12,7 +12,7 @@ "audience": "Operators and automation", "docsPath": "tutorials/cli/inspect-and-validate", "repository": "https://github.com/netft/netft-cli", - "version": "0.3.0", + "version": "0.3.1", "platforms": ["Linux", "macOS", "Windows"], "installMethods": ["release", "source"], "documentationOwner": "netft-docs", @@ -26,7 +26,7 @@ "audience": "Lab and field users", "docsPath": "tutorials/viewer/connect-and-inspect", "repository": "https://github.com/netft/netft-viewer", - "version": "0.2.2", + "version": "0.2.3", "platforms": ["Linux", "macOS", "Windows"], "installMethods": ["release", "source"], "documentationOwner": "netft-docs", @@ -47,7 +47,7 @@ "audience": "C++ developers", "docsPath": "tutorials/sdks/cpp", "repository": "https://github.com/netft/netft-cpp", - "version": "0.3.4", + "version": "0.3.5", "platforms": ["Linux", "macOS", "Windows"], "installMethods": ["source"], "documentationOwner": "netft-docs", @@ -61,7 +61,7 @@ "audience": "Python developers", "docsPath": "tutorials/sdks/python", "repository": "https://github.com/netft/pyNetFT", - "version": "2.1.2", + "version": "2.1.3", "platforms": ["Linux", "macOS", "Windows"], "installMethods": ["PyPI", "source"], "documentationOwner": "netft-docs", @@ -82,7 +82,7 @@ "audience": "Robotics developers", "docsPath": "tutorials/ros/standalone", "repository": "https://github.com/netft/ros-netft", - "version": "0.4.0", + "version": "0.4.1", "platforms": ["Linux"], "installMethods": ["ROS", "source"], "documentationOwner": "netft-docs", diff --git a/data/reference/cli.json b/data/reference/cli.json index 1af0a66..e89185d 100644 --- a/data/reference/cli.json +++ b/data/reference/cli.json @@ -2,8 +2,8 @@ "schemaVersion": 1, "kind": "cli", "component": "netft-cli", - "version": "0.3.0", - "sourceCommit": "ed946edcf31d4a6fab06dadaa3826afc7522f161", + "version": "0.3.1", + "sourceCommit": "8565dfbf6a5cf3d1db00723928de561c581db62d", "options": [ { "id": "format", @@ -341,6 +341,6 @@ } ], "publication": "released", - "sourceTag": "v0.3.0", - "sourceUrl": "https://github.com/netft/netft-cli/tree/v0.3.0" + "sourceTag": "v0.3.1", + "sourceUrl": "https://github.com/netft/netft-cli/tree/v0.3.1" } diff --git a/data/reference/cpp.json b/data/reference/cpp.json index 32ca150..57147d7 100644 --- a/data/reference/cpp.json +++ b/data/reference/cpp.json @@ -2,11 +2,11 @@ "schemaVersion": 1, "kind": "cpp-api", "component": "netft-cpp", - "version": "0.3.4", - "sourceCommit": "1ce68a08a9387d9a36d22c3c259e44533199c347", + "version": "0.3.5", + "sourceCommit": "d2ea470267d9fb5dc4d1ee53b9ce268a831c60dc", "publication": "released", - "sourceTag": "v0.3.4", - "sourceUrl": "https://github.com/netft/netft-cpp/tree/v0.3.4", + "sourceTag": "v0.3.5", + "sourceUrl": "https://github.com/netft/netft-cpp/tree/v0.3.5", "symbols": [ { "id": "netft.Calibration", diff --git a/data/reference/python.json b/data/reference/python.json index db50721..26265c2 100644 --- a/data/reference/python.json +++ b/data/reference/python.json @@ -2,11 +2,11 @@ "schemaVersion": 1, "kind": "python-api", "component": "pyNetFT", - "version": "2.1.2", - "sourceCommit": "7d7b9fb2bfb53e2cfc362c3d76d5a0222d385464", + "version": "2.1.3", + "sourceCommit": "da585a9c494ad76057e72fd0d9027d535c5c0afd", "publication": "released", - "sourceTag": "v2.1.2", - "sourceUrl": "https://github.com/netft/pyNetFT/tree/v2.1.2", + "sourceTag": "v2.1.3", + "sourceUrl": "https://github.com/netft/pyNetFT/tree/v2.1.3", "symbols": [ { "id": "pynetft.Calibration", diff --git a/data/reference/ros.json b/data/reference/ros.json index e562161..200a2ea 100644 --- a/data/reference/ros.json +++ b/data/reference/ros.json @@ -2,11 +2,11 @@ "schemaVersion": 1, "kind": "ros", "component": "ros-netft", - "version": "0.4.0", - "sourceCommit": "e272550080e10a1f1bc71c2ce6499c556ecd538c", + "version": "0.4.1", + "sourceCommit": "4f92181ba61ccc530d6424d4d593991720f8cbe8", "publication": "released", - "sourceTag": "0.4.0", - "sourceUrl": "https://github.com/netft/ros-netft/tree/0.4.0", + "sourceTag": "0.4.1", + "sourceUrl": "https://github.com/netft/ros-netft/tree/0.4.1", "pluginClass": "netft_driver/NetFTHardwareInterface", "standaloneParameters": [ { diff --git a/data/reference/versions.json b/data/reference/versions.json index a0c1384..1d16e39 100644 --- a/data/reference/versions.json +++ b/data/reference/versions.json @@ -2,39 +2,39 @@ "schemaVersion": 1, "components": { "netft-cpp": { - "version": "0.3.4", - "sourceTag": "v0.3.4", + "version": "0.3.5", + "sourceTag": "v0.3.5", "repository": "https://github.com/netft/netft-cpp", - "sourceUrl": "https://github.com/netft/netft-cpp/tree/v0.3.4", - "sourceCommit": "1ce68a08a9387d9a36d22c3c259e44533199c347" + "sourceUrl": "https://github.com/netft/netft-cpp/tree/v0.3.5", + "sourceCommit": "d2ea470267d9fb5dc4d1ee53b9ce268a831c60dc" }, "pyNetFT": { - "version": "2.1.2", - "sourceTag": "v2.1.2", + "version": "2.1.3", + "sourceTag": "v2.1.3", "repository": "https://github.com/netft/pyNetFT", - "sourceUrl": "https://github.com/netft/pyNetFT/tree/v2.1.2", - "sourceCommit": "7d7b9fb2bfb53e2cfc362c3d76d5a0222d385464" + "sourceUrl": "https://github.com/netft/pyNetFT/tree/v2.1.3", + "sourceCommit": "da585a9c494ad76057e72fd0d9027d535c5c0afd" }, "netft-cli": { - "version": "0.3.0", - "sourceTag": "v0.3.0", + "version": "0.3.1", + "sourceTag": "v0.3.1", "repository": "https://github.com/netft/netft-cli", - "sourceUrl": "https://github.com/netft/netft-cli/tree/v0.3.0", - "sourceCommit": "ed946edcf31d4a6fab06dadaa3826afc7522f161" + "sourceUrl": "https://github.com/netft/netft-cli/tree/v0.3.1", + "sourceCommit": "8565dfbf6a5cf3d1db00723928de561c581db62d" }, "ros-netft": { - "version": "0.4.0", - "sourceTag": "0.4.0", + "version": "0.4.1", + "sourceTag": "0.4.1", "repository": "https://github.com/netft/ros-netft", - "sourceUrl": "https://github.com/netft/ros-netft/tree/0.4.0", - "sourceCommit": "e272550080e10a1f1bc71c2ce6499c556ecd538c" + "sourceUrl": "https://github.com/netft/ros-netft/tree/0.4.1", + "sourceCommit": "4f92181ba61ccc530d6424d4d593991720f8cbe8" }, "netft-viewer": { - "version": "0.2.2", - "sourceTag": "v0.2.2", + "version": "0.2.3", + "sourceTag": "v0.2.3", "repository": "https://github.com/netft/netft-viewer", - "sourceUrl": "https://github.com/netft/netft-viewer/tree/v0.2.2", - "sourceCommit": "a7c8068a25aa6ac5b2dcd87271b477af283267bc", + "sourceUrl": "https://github.com/netft/netft-viewer/tree/v0.2.3", + "sourceCommit": "588064abfa09f21486d97689ee45bdc37fe2e5b5", "releaseChannel": "stable" } } diff --git a/docs/get-started/installation.md b/docs/get-started/installation.md index 7c3655f..d983c73 100644 --- a/docs/get-started/installation.md +++ b/docs/get-started/installation.md @@ -6,17 +6,17 @@ sidebar_position: 2 Choose one interface for the first connection. The CLI is the recommended commissioning tool because it can inspect configuration and run a bounded health check without a GUI, programming environment, or ROS graph. -Viewer 0.2.2 is a stable release. Its Windows installers are unsigned; macOS packages use ad hoc signatures for code integrity and are not notarized. Operating-system policy may require explicit approval before opening the application. Publisher signing is optional and does not determine the release channel. +Viewer 0.2.3 is a stable release. Its Windows installers are unsigned; macOS packages use ad hoc signatures for code integrity and are not notarized. Operating-system policy may require explicit approval before opening the application. Publisher signing is optional and does not determine the release channel. ## Supported releases | Interface | Version | Preferred install | Platforms | | -------------- | ------- | ----------------------------------- | ------------------------------------------ | -| Net F/T CLI | 0.3.0 | GitHub release executable | Linux, macOS, Windows | -| Net F/T Viewer | 0.2.2 | GitHub release installer or archive | Linux, macOS, Windows | -| netft-cpp | 0.3.4 | CMake source build | Linux, macOS, Windows | -| pyNetFT | 2.1.2 | PyPI wheel | CPython 3.10–3.14 on Linux, macOS, Windows | -| ros-netft | 0.4.0 | ROS workspace source build | Supported ROS environments on Linux | +| Net F/T CLI | 0.3.1 | GitHub release executable | Linux, macOS, Windows | +| Net F/T Viewer | 0.2.3 | GitHub release installer or archive | Linux, macOS, Windows | +| netft-cpp | 0.3.5 | CMake source build | Linux, macOS, Windows | +| pyNetFT | 2.1.3 | PyPI wheel | CPython 3.10–3.14 on Linux, macOS, Windows | +| ros-netft | 0.4.1 | ROS workspace source build | Supported ROS environments on Linux | Check the [compatibility reference](../references/compatibility.mdx) before installing a later release. @@ -54,7 +54,7 @@ No ROS installation is needed. The application is self-contained; host firewall Install the supported wheel: ```bash -python -m pip install pynetft==2.1.2 +python -m pip install pynetft==2.1.3 python -c "import pynetft; print(pynetft.__version__)" ``` @@ -65,7 +65,7 @@ Wheels include the native core and required curl implementation, so users do not Build and install netft-cpp with CMake: ```bash -git clone --branch v0.3.4 https://github.com/netft/netft-cpp.git +git clone --branch v0.3.5 https://github.com/netft/netft-cpp.git cd netft-cpp cmake -S . -B build/release \ -DCMAKE_BUILD_TYPE=Release \ @@ -85,7 +85,7 @@ Replace `lyrical` with another supported distribution when required: ```bash source /opt/ros/lyrical/setup.bash mkdir -p ~/netft_ws/src -git clone --branch 0.4.0 https://github.com/netft/ros-netft.git \ +git clone --branch 0.4.1 https://github.com/netft/ros-netft.git \ ~/netft_ws/src/netft_driver cd ~/netft_ws rosdep install --from-paths src --ignore-src -r -y diff --git a/docs/references/compatibility.mdx b/docs/references/compatibility.mdx index a2e3550..429ca08 100644 --- a/docs/references/compatibility.mdx +++ b/docs/references/compatibility.mdx @@ -4,7 +4,7 @@ import {ComponentVersions} from '@site/src/components/ReferenceTables'; -The listed application and integration releases use the netft-cpp 0.3.4 protocol core snapshot where applicable. They remain independently installable and versioned; users do not install netft-cpp separately for CLI, Viewer, pyNetFT wheels, or ros-netft. +The listed application and integration releases use the netft-cpp 0.3.5 protocol core snapshot where applicable. They remain independently installable and versioned; users do not install netft-cpp separately for CLI, Viewer, pyNetFT wheels, or ros-netft. The snapshot version identifies shared protocol behavior, not a runtime package dependency. Updating netft-cpp does not update an installed application automatically. Use the release notes of the interface you install to determine when a newer snapshot was adopted. diff --git a/docs/references/cpp-api/overview.mdx b/docs/references/cpp-api/overview.mdx index 6a4c061..7cbaa4d 100644 --- a/docs/references/cpp-api/overview.mdx +++ b/docs/references/cpp-api/overview.mdx @@ -4,7 +4,7 @@ sidebar_position: 1 # C++ API -This reference covers the complete public API of netft-cpp 0.3.4. Include only headers under `include/netft` and link the installed target `netft::netft`. Other headers, namespaces, worker types, and embedded copies in applications are private implementation details. +This reference covers the complete public API of netft-cpp 0.3.5. Include only headers under `include/netft` and link the installed target `netft::netft`. Other headers, namespaces, worker types, and embedded copies in applications are private implementation details. ## Entry points diff --git a/docs/references/python-api/overview.mdx b/docs/references/python-api/overview.mdx index ef06c67..ebb0e64 100644 --- a/docs/references/python-api/overview.mdx +++ b/docs/references/python-api/overview.mdx @@ -7,7 +7,7 @@ sidebar_position: 1 import pythonManifest from '@site/data/reference/python.json'; import {ApiType} from '@site/src/components/Reference'; -This reference covers the public names exported by pyNetFT 2.1.2. Import them from `pynetft`; `pynetft._native` is private and is not a compatibility surface. +This reference covers the public names exported by pyNetFT 2.1.3. Import them from `pynetft`; `pynetft._native` is private and is not a compatibility surface. | Need | API | | -------------------------------------- | ---------------------------------------------------- | diff --git a/docs/tutorials/cli/inspect-and-validate.md b/docs/tutorials/cli/inspect-and-validate.md index dfc4230..521a70f 100644 --- a/docs/tutorials/cli/inspect-and-validate.md +++ b/docs/tutorials/cli/inspect-and-validate.md @@ -1,6 +1,6 @@ # Inspect and validate a sensor -Net F/T CLI 0.3.0 is the preferred tool for commissioning, bounded health checks, scripting, live observation, loss-aware recording, and explicit bias. +Net F/T CLI 0.3.1 is the preferred tool for commissioning, bounded health checks, scripting, live observation, loss-aware recording, and explicit bias. ## Inspect and check diff --git a/docs/tutorials/ros/standalone.md b/docs/tutorials/ros/standalone.md index d328a16..fe120a7 100644 --- a/docs/tutorials/ros/standalone.md +++ b/docs/tutorials/ros/standalone.md @@ -1,6 +1,6 @@ # ROS standalone driver -ros-netft 0.4.0 provides a standalone wrench driver for current ROS 2 distributions and legacy source support for ROS 1 Noetic. The ROS package name is `netft_driver`. +ros-netft 0.4.1 provides a standalone wrench driver for current ROS 2 distributions and legacy source support for ROS 1 Noetic. The ROS package name is `netft_driver`. ## Support and installation @@ -85,7 +85,7 @@ RDT does not acknowledge the bias command. A successful service response means t ```bash source /opt/ros/noetic/setup.bash mkdir -p ~/netft_ws/src -git clone --branch 0.4.0 https://github.com/netft/ros-netft.git \ +git clone --branch 0.4.1 https://github.com/netft/ros-netft.git \ ~/netft_ws/src/netft_driver cd ~/netft_ws rosdep update --include-eol-distros diff --git a/docs/tutorials/sdks/cpp.md b/docs/tutorials/sdks/cpp.md index 3ba1ebe..fc74204 100644 --- a/docs/tutorials/sdks/cpp.md +++ b/docs/tutorials/sdks/cpp.md @@ -1,6 +1,6 @@ # C++ SDK tutorial -netft-cpp 0.3.4 is a standalone C++17 SDK for configuration discovery, RDT acquisition, calibrated samples, health, and explicit recovery. +netft-cpp 0.3.5 is a standalone C++17 SDK for configuration discovery, RDT acquisition, calibrated samples, health, and explicit recovery. ## Build and consume diff --git a/docs/tutorials/sdks/python.md b/docs/tutorials/sdks/python.md index d672285..675de85 100644 --- a/docs/tutorials/sdks/python.md +++ b/docs/tutorials/sdks/python.md @@ -1,11 +1,11 @@ # Python SDK tutorial -pyNetFT 2.1.2 is a synchronous typed Python interface to the shared native core. Supported wheels cover CPython 3.10–3.14 on Linux and macOS x86_64/ARM64 and Windows x86_64. They include curl and require no NumPy. +pyNetFT 2.1.3 is a synchronous typed Python interface to the shared native core. Supported wheels cover CPython 3.10–3.14 on Linux and macOS x86_64/ARM64 and Windows x86_64. They include curl and require no NumPy. ## Install and read ```bash -python -m pip install pynetft==2.1.2 +python -m pip install pynetft==2.1.3 ``` ```python diff --git a/docs/tutorials/troubleshooting/index.md b/docs/tutorials/troubleshooting/index.md index cd306dc..5fcccb2 100644 --- a/docs/tutorials/troubleshooting/index.md +++ b/docs/tutorials/troubleshooting/index.md @@ -12,6 +12,10 @@ Diagnose the boundary that fails before changing calibration, repeatedly biasing A failed ping alone is inconclusive because ICMP may be blocked. A failed HTTP request points to power, addressing, routing, firewall, or the configuration service—not RDT parsing. +## Connect reports missing `prodname` + +Some legacy firmware omits the product name from `netftapi2.xml` even though its calibration is valid. Upgrade to Viewer 0.2.3, CLI 0.3.1, pyNetFT 2.1.3, ros-netft 0.4.1, or netft-cpp 0.3.5. These releases display `ATI Net F/T` for an absent name and continue to use the device's actual calibration scales and units. Missing or invalid calibration still causes an error; this fix does not require changing sensor settings. + ## HTTP works but no samples arrive Stop every other RDT client. Confirm the configured RDT port, host firewall UDP return path, and selected local interface. Remove VPNs or ambiguous routes temporarily. Run a bounded CLI check rather than an indefinite monitor. diff --git a/docs/tutorials/viewer/connect-and-inspect.md b/docs/tutorials/viewer/connect-and-inspect.md index 4d6563d..c3d446f 100644 --- a/docs/tutorials/viewer/connect-and-inspect.md +++ b/docs/tutorials/viewer/connect-and-inspect.md @@ -1,6 +1,6 @@ # Connect and inspect live data -Net F/T Viewer 0.2.2 is a cross-platform desktop application for one sensor. It combines raw counts, calibrated values, units, connection health, charts, bias, and buffered CSV recording without requiring ROS. +Net F/T Viewer 0.2.3 is a cross-platform desktop application for one sensor. It combines raw counts, calibrated values, units, connection health, charts, bias, and buffered CSV recording without requiring ROS. ![Net F/T Viewer showing connection controls, status, live values, and six chart panels.](/img/netft-viewer.png) @@ -10,6 +10,8 @@ Download the installer or portable archive from [GitHub Releases](https://github The Status section reports connection state, product, receive and delivery rates, packet loss, device status, latest error, recording progress, and buffer use. Live data reports Fx through Tz as integer counts and calibrated values. Units come from the sensor configuration, not Viewer defaults. +Legacy firmware may omit the product name from its XML. Viewer 0.2.3 accepts that configuration and displays `ATI Net F/T`, while still requiring the sensor's calibration scales and units. Upgrade an older Viewer if Connect reports a missing `prodname` field. + Read the interface from left to right: 1. **Sensor** owns the address and Connect/Disconnect action.