ArduPilot / ArduPilot/MissionPlanner
Add support for hash-checked local device parameter cache
- Dominant language
- C#
- Stars
- 2.4k
- Forks
- 2.9k
- Avg merge
- 19h 16m
- Merged PRs (30d)
- 4
Description
This is the corresponding groundstation feature for [ardupilot parameter hash](https://github.com/diydrones/ardupilot/issues/3070), implemented on QGroundControl [here](https://github.com/mavlink/qgroundcontrol/pull/1965) for PX4.
The premise is to save a local copy of connected device parameters (ideally in a table based on device ID) that is checked when a new device connects. If a locally saved copy of parameters exists MP should perform a CRC32 hash over the parameter table and request the value of the magic parameter _HASH_CHECK from the connected device. From that request there are three possible outcomes:
1. The device responds with a CRC32 hash that matches the locally stored copy of parameters; the local copy is used in place of requesting the full list of parameters+values from the remote device and connect initialization continues quickly
2. The device responds with a negative acknowledge or nonmatching CRC32 hash, the locally cached parameters are thrown out, and the normal PARAM_REQUEST_LIST message is used to retrieve a copy of all params+values from the remote device as normal.
3. The device never responds to the _HASH_VALUE parameter request and a timer expires, triggering the normal PARAM_REQUEST_LIST message to retrieve a copy of all params+values from the remote device as normal.
The benefit is obviously that most of the time parameters are not expected to change and we can skip the bandwidth and time-intensive process of syncing everything over the data link at initial connect.
Contributor guide
No contributing guide indexed for this repository
Research direction
No files or tests are named. Start by tracing Mission Planner's device connection initialization and the existing PARAM_REQUEST_LIST flow; define completion around device-ID-based cached parameters, hash matching, cache invalidation, and timeout fallback to normal synchronization.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- desktop, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100