Peter Barker 7ceb7c31c7 global: fix whitespace issues in markdown files
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>
2026-02-04 11:37:38 +11:00

2.8 KiB
Raw Permalink Blame History

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 ArduPilots 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
May 2025