Skip to content

Telemetry

Synchronous telemetry reader for a single drone.

Drains up to 50 buffered MAVLink messages per call, updating the drone's position, heading, battery, and heartbeat timestamp.

Designed to be called from asyncio.loop.run_in_executor() so it does not block the event loop on serial I/O.

Async coroutine that continuously reads telemetry from all drones.

Handles heartbeat-timeout detection (marks drones as LOST) and auto-RTL on low battery. Yields control via asyncio.sleep so other coroutines run freely.