Skip to content

feat: ArduPilot param docs links and MP/QGC param file I/O#114

Open
davidbitton wants to merge 1 commit into
rubenCodeforges:masterfrom
davidbitton:feat/ados-53-param-docs-ergonomics
Open

feat: ArduPilot param docs links and MP/QGC param file I/O#114
davidbitton wants to merge 1 commit into
rubenCodeforges:masterfrom
davidbitton:feat/ados-53-param-docs-ergonomics

Conversation

@davidbitton

Copy link
Copy Markdown

I have read and agree to the ArduDeck Contributor License Agreement (CLA.md).

Summary

Port of ADOS Mission Control #53 parameter ergonomics into ArduDeck (adapted to Electron/desktop patterns; not a verbatim copy).

  • Docs links: version-aware ArduPilot wiki URLs from vehicle type + firmware (stable Vmajor.minor.patch Sphinx pages when known; unversioned parameters.html fallback; never …-stable-latest; tracker → antennatracker). ArduPilot-only; non-AP gets no link.
  • UI: portalled ParamNameTooltip (not clipped by virtualized rows) + ExternalLink on live and offline param tables; hover-only name trigger (keyboard docs via row ExternalLink).
  • Enum display: non-edit cells show value — Label / bitmask summaries with float32-aware matching; editors unchanged.
  • File I/O: hardened Mission Planner .param and QGroundControl .params (headers, comments, BOM, CRLF); explicit Export QGC; empty/unrecognized file feedback (no silent empty diffs); compare modal only when value diffs exist.
  • Plumbing: ConnectionState.firmwareVersion from AUTOPILOT_VERSION (official stable tags only).

Scope guard

  • Does not replace online param-metadata fetch/cache
  • No new metadata snapshot system

Verification

Check Result
vitest run on parameter-metadata.test.ts, param-display.test.ts, param-file-parser.test.ts 77 passed

Test plan

  • Connect ArduPilot craft (or SITL) → Parameters → hover names → tooltip description + ArduPilot docs link
  • Link uses versioned Sphinx page when official firmware version known; otherwise parameters.html#…
  • Non-ArduPilot / MSP: no docs link
  • Enum params show value — Label when not editing
  • Export MP .param and QGC .params; re-import/compare; empty/garbage file → clear error
  • Offline param file open: tooltips/docs when vehicle type known; QGC types preserved on load

Port ADOS Mission Control rubenCodeforges#53 parameter ergonomics to ArduDeck:

- Version-aware ArduPilot docs URLs (stable V*.*.* Sphinx pages; unversioned
  parameters.html fallback; never …-stable-latest; tracker → antennatracker)
- Portalled ParamNameTooltip + ExternalLink on live and offline param tables
- Enum/bitmask non-edit display (f32-aware) via formatParamDisplayValue
- Hardened Mission Planner .param and QGroundControl .params parse/serialize
- Explicit QGC export; clear empty/unrecognized file feedback
- firmwareVersion from AUTOPILOT_VERSION (official stable tags only)
- Unit tests for docs URLs, display helpers, and file parser (77 tests)

Does not replace online param-metadata fetch/cache.
@rubenCodeforges

Copy link
Copy Markdown
Owner

@davidbitton hey thanks for the pr , but we have to postpone it , a big release is underway and we are on code freeze

@davidbitton

Copy link
Copy Markdown
Author

@davidbitton hey thanks for the pr , but we have to postpone it , a big release is underway and we are on code freeze

copy that

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.

2 participants