mirror of
https://github.com/ArduPilot/ardupilot.git
synced 2026-02-04 21:14:59 -06:00
global: fix MD007 unordered list indentation in markdown files Normalize unordered list indentation to use 2-space multiples: - Top-level list items start at column 0 - Nested list items use 2 additional spaces per level Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> global: fix MD009 trailing whitespace in markdown files Remove trailing whitespace from all affected markdown files. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> global: fix MD010 hard tabs in markdown files Replace hard tab characters with 4 spaces. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> global: fix MD012 multiple consecutive blank lines in markdown Collapse multiple consecutive blank lines to single blank lines across all markdown files (excluding vendored code). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> global: fix MD007 list indentation base level in markdown Shift list indentation left by 2 spaces so top-level list items start at column 0 instead of column 2. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD022 blank lines around headings in markdown Ensure headings are surrounded by blank lines as required by markdownlint MD022 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD032 blank lines around lists in markdown Ensure lists are surrounded by blank lines as required by markdownlint MD032 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD031 blank lines around code blocks in markdown Ensure fenced code blocks are surrounded by blank lines as required by markdownlint MD031 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD047 files should end with single newline Ensure all markdown files end with exactly one newline character as required by markdownlint MD047 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD023 headings must start at beginning of line Remove leading whitespace from heading lines as required by markdownlint MD023 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD007 remaining list indentation in markdown Fix unordered list indentation to use correct spacing as required by markdownlint MD007 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD030 spaces after list markers in markdown Reduce multiple spaces after list markers to single space as required by markdownlint MD030 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD022 blank lines around setext headings Ensure setext-style headings (underlined with === or ---) are surrounded by blank lines as required by markdownlint MD022 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD018 missing space after hash in headings Add space after hash marks in atx-style headings as required by markdownlint MD018 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD019 multiple spaces after hash in headings Reduce multiple spaces after hash marks to single space in atx-style headings as required by markdownlint MD019 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD012 multiple consecutive blank lines in markdown Remove multiple consecutive blank lines and ensure files end with exactly one newline as required by markdownlint MD012 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD023 headings with leading whitespace Remove leading whitespace from setext-style heading text lines as required by markdownlint MD023 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD022 blank line after heading in markdown Add missing blank line after heading as required by markdownlint MD022 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD009 trailing non-breaking space in markdown Remove trailing non-breaking space (U+00A0) as required by markdownlint MD009 rule. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Tools/scripts: fix MD012 remaining multiple blank lines in markdown Remove leading blank lines and whitespace-only lines that create multiple consecutive blank lines. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
77 lines
2.8 KiB
Markdown
77 lines
2.8 KiB
Markdown
# Parameter Set Filter Script
|
||
|
||
## Description
|
||
|
||
This Lua script adds a safty-focused layer to MAVLink parameter setting. When enabled, it intercepts all incoming `PARAM_SET` messages and only allows modification of a predefined whitelist of parameters.
|
||
|
||
This is especially useful in scenarios where parameter integrity is critical (e.g., automated testing, payload-hosted GCS systems, or shared telemetry environments).
|
||
|
||
When enabled, the script disables ArduPilot's default GCS handling for parameter writes and takes over that responsibility with additional filtering.
|
||
|
||
## How It Works
|
||
|
||
- Intercepts MAVLink `PARAM_SET` messages targeted at the vehicle.
|
||
- Validates that the parameter ID is in the whitelist.
|
||
- Only whitelisted parameters will be updated.
|
||
- Dynamically toggles ArduPilot’s `gcs:set_allow_param_set()` based on enable state.
|
||
|
||
## Requirements
|
||
|
||
- ArduPilot 4.7 or later with Lua scripting enabled (`SCR_ENABLE = 1`)
|
||
- copy the script to the vehicle autopilot's "scripts" directory
|
||
- The script must be placed in appropriate directories:
|
||
|
||
## Parameters
|
||
|
||
This script introduces a new parameter table named `PARAM_SET_`. It includes:
|
||
|
||
| Name | Type | Default | Description |
|
||
|-------------------|--------|---------|----------------------------------------|
|
||
| `ENABLE` | `int` | `1` | Enables (1) or disables (0) the script |
|
||
|
||
You can disable the script by setting `PARAM_SET_ENABLE = 0`. **Note:** disabling `SCR_ENABLE` while this script is actively blocking parameter sets is not recommended.
|
||
|
||
## Whitelisted Parameters
|
||
|
||
Only the following parameters are allowed to be set when the script is enabled:
|
||
|
||
- `MAV_OPTIONS`
|
||
- `PARAM_SET_ENABLE`
|
||
- Battery parameters (e.g., `BATT_ARM_MAH`, `BATT_FS_CRT_ACT`, etc.)
|
||
- `BRD_OPTIONS`
|
||
- `COMPASS_USE3`
|
||
- Geofence and RTL parameters (e.g., `FENCE_TYPE`, `RTL_ALT_M`)
|
||
- `LOG_*`, `LIGHTS_ON`
|
||
|
||
(See the full script for the complete whitelist.)
|
||
|
||
## Usage
|
||
|
||
1. Copy the script into the SD card's scripts directory.
|
||
2. Ensure `SCR_ENABLE` and `PARAM_SET_ENABLE` are both set to `1`.
|
||
3. Reboot the autopilot or reload the script if necessary.
|
||
|
||
## Logging & Debugging
|
||
|
||
The script sends diagnostic messages to the GCS:
|
||
|
||
- Allowed parameter updates show a `param set received` message.
|
||
- Blocked updates show a `param set denied` message with the offending parameter name.
|
||
|
||
Example output:
|
||
|
||
[param-set] param set received
|
||
[param-set] param set denied (LOG_BACKEND_TYPE)
|
||
|
||
## Limitations
|
||
|
||
- Only handles `PARAM_SET` messages (not `PARAM_REQUEST_*`).
|
||
- The parameter whitelist is hardcoded; changes require script edits.
|
||
- ArduPilot must support the `gcs:set_allow_param_set()` interface.
|
||
- parameter upload via FTP is denied when this script is running
|
||
|
||
## Author
|
||
|
||
[Contributed via PR #29989](https://github.com/ArduPilot/ardupilot/pull/29989)
|
||
May 2025
|