Skip to content

Complete MAVLink dataclass migration, receiver idiom cleanup, and Python 3.12 alignment#15

Merged
mcroomp merged 1 commit into
mainfrom
feature/mavlink-message-cleanup
Jul 18, 2026
Merged

Complete MAVLink dataclass migration, receiver idiom cleanup, and Python 3.12 alignment#15
mcroomp merged 1 commit into
mainfrom
feature/mavlink-message-cleanup

Conversation

@mcroomp

@mcroomp mcroomp commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • finish migrating MAVLink send/receive callsites in ground station, simulation, calibrate tooling, and tests to dataclass-driven message APIs
  • standardize receiver loops around decode_message(...) and typed branching (match/isinstance) where appropriate
  • add/expand MAVLink dataclass coverage and decode registry in groundstation/gcs.py
  • align repository Python baseline to 3.12 in project metadata, CI, and agent guidance
  • clean remaining Python/Pylance warnings in touched surfaces

Key Changes

  • groundstation/gcs.py
    • expanded message dataclasses and centralized decode/send helpers
    • refined connection typing with Protocols instead of broad Any
  • simulation/rawes_lua_harness.py
    • added generic send_message(...) support for dataclass messages
  • groundstation/rawes_modes.py
    • updated anchor send path to prefer send_message(...)
  • migrated additional send/receive callsites in:
    • calibrate/*
    • simulation/mediator.py
    • scripts/query_hardware.py
    • tests/unit/*, tests/simtests/*, tests/sitl/*, tests/hil/*
  • baseline/config updates:
    • pyproject.toml (Python >= 3.12)
    • .github/workflows/ci.yml (3.12)
    • AGENTS.md guidance for modern Python and 3.12 floor

Validation

  • unit tests: 467 passed
  • simtests: 14 passed, 5 skipped
  • SITL stack (bash test.sh stack -n 4): 7 passed, 0 failed

Notes

  • remaining diagnostics are limited to Lua analyzer warnings in scripts/rawes_test_surface.lua (outside Python warning cleanup scope).

@mcroomp
mcroomp merged commit 092af85 into main Jul 18, 2026
28 of 30 checks passed
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.

1 participant