Microservices
The MAVLink "microservices" define higher-level protocols that MAVLink systems can adopt in order to better inter-operate. For example, QGroundControl, ArduPilot and PX4 autopilots all share a common Command Protocol for sending point-to-point messages that require an acknowledgment.
The microservices are used to exchange many types of data, including: parameters, missions, trajectories, images, other files. If the data can be far larger than can be fit into a single message, services will define how the data is split and re-assembled, and how to ensure that any lost data is re-transmitted. Other services provide command acknowledgment and/or error reporting.
Most services use the client-server pattern, such that the GCS (client) initiates a request and the vehicle (server) responds with data.
The main microservices are shown in the sidebar (most are listed below):
- Heartbeat/Connection Protocol
- Mission Protocol
- Parameter Protocol
- Extended Parameter Protocol
- Command Protocol
- Manual Control (Joystick) Protocol
- Camera Protocol
- Camera Protocol v1 (Simple Trigger Protocol)
- Gimbal Protocol v2
- Arm Authorization Protocol
- Illuminator Protocol
- Image Transmission Protocol
- Offboard Control Protocol
- File Transfer Protocol (FTP)
- Landing Target Protocol
- Ping Protocol
- Path Planning Protocol (Trajectory Interface)
- Battery Protocol
- Terrain Protocol
- Tunnel Protocol
- Open Drone ID Protocol (WIP)
- High Latency Protocol
- Component Metadata Protocol (WIP)
- MAVLink Id Assignment (sysid, compid)
- Payload Protocol
- Traffic Management (UTM/ADS-B)
- Events Interface (WIP)
- Standard Flight Modes (WIP)
- Time Synchronization
- Illuminator Protocol