Skip to content

Commit 709900b

Browse files
authored
PROTOCOL_VERSION - deprecate in mav guide (#651)
1 parent d40996d commit 709900b

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

en/guide/mavlink_version.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ A library's MAVLink support can be determined in a number of ways:
3131

3232
- [HEARTBEAT](../messages/common.md#HEARTBEAT)`.mavlink_version` field contains the minor version number.
3333
This is the `<version>` field defined in the [Message Definitions](../messages/index.md) (`version` in [common.xml](../messages/common.md) for dialects that depend on the common message set).
34-
- [PROTOCOL_VERSION](../messages/common.md#PROTOCOL_VERSION).`version` contains the MAVLink version number multiplied by 100: v1.0 is 100, <!-- v2.0 is 200, --> v2.3 is 203 etc.
35-
Note that the message allows for additional version information, but is not supported on all flight stacks.
3634

3735
::: tip
3836
While messages do not contain version information, an extra CRC is used to ensure that a library will only process compatible messages (see [Serialization > CRC_EXTRA](../guide/serialization.md)).
@@ -44,41 +42,43 @@ Support for _MAVLink 2_ is indicated in the [AUTOPILOT_VERSION](../messages/comm
4442
It can also be inferred from the packet start marker byte.
4543

4644
This is sufficient if the communication link between autopilot and GCS is completely transparent.
47-
However, some communication links are not completely transparent as they include:
45+
Most flight stacks now assume MAVLink 2 support based on the protocol capability or packet start marker.
46+
This is reasonable because the majority of systems and communication links now reliably support MAVLink 2.
47+
48+
### Non-transparent communication links
49+
50+
Most flight stacks assume communication links are transparent.
51+
Possible causes of links not being transparent are:
4852

4953
- Routing, which can can change or reserialize MAVLink packets (for example, there might be an intermediate router that converts between versions).
5054
- Wireless links that rely on fixed length packetization may distort or truncate variable-length MAVLink 2 frames.
55+
For example, older SiK Radios may consume MAVLink 2 messages.
5156

52-
::: info
53-
Some flight stacks assume MAVLink 2 support based on the protocol capability or packet start marker.
54-
This is reasonable because the majority of systems and communication links now reliably support MAVLink 2.
55-
:::
56-
57-
To be certain that a link supports _MAVLink 2_ transparently, a GCS or other component can use the _MAVLink 2_ handshake protocol to test the link.
58-
This is done by sending the [MAV_CMD_REQUEST_MESSAGE](../messages/common.md#MAV_CMD_REQUEST_MESSAGE) command with `param1=300` ([PROTOCOL_VERSION](../messages/common.md#PROTOCOL_VERSION)).
59-
If the system supports _MAVLink 2_ and the handshake it will respond with [PROTOCOL_VERSION](../messages/common.md#PROTOCOL_VERSION) **encoded as MAVLink 2 packet**.
57+
To be certain that a link supports _MAVLink 2_ transparently, a GCS or other component might send the [MAV_CMD_REQUEST_MESSAGE](../messages/common.md#MAV_CMD_REQUEST_MESSAGE) command with `param1` set to the id of a _MAVLink 2_ message (with `id > 256`) that is supported by the flight stack.
58+
If the system supports _MAVLink 2_ and the handshake it will respond with the message **encoded as MAVLink 2 packet**.
6059
If it does not support _MAVLink 2_ it should `NACK` the command.
6160
The GCS should fall back to a timeout in case the command interface is not implemented properly.
6261

63-
::: tip
64-
If the target system does not support `PROTOCOL_VERSION` you can request any other message that it is able to emit.
65-
:::
66-
67-
The diagram below illustrates the complete sequence.
62+
The diagram below illustrates the sequence.
6863

69-
[![Mermaid sequence: Request protocol version](https://mermaid.ink/img/pako:eNptkG1rwjAQx79KuFcbOEkftJoxQWoRma6bdb4YBQntVcNs4mK6J_G7L1bcxmZeHLn_3f93x-0gUzkCgy2-VCgzHAi-1Ly8TiWxb8O1EZnYcGnIMEz-iwOtJB5lW7_q9WqBkUl_vggng8U0eniMktliEiVJfxhdWC8vnRuP0svfLhsZSYwFEyNKVJU5VmvaqX4_jWdxGI8X82iajOI7IuRhzljIZ-KSwoKFXJ7ZZVSQfnhr-W_CZCvcEqN-fGfmnO0jShKNGYpXhAYstciBGV1hA0rUJT-ksDvAUjArLDEFZr85FrxamxRSubc2e7InpcqTU6tquQJW8PXWZtUm5-Z0_z9qlAuj9LeoUeaoQ1VJAyzwazCwHbwDa9NW02tT2mlRt931g6ABH8Achzbdju90A-p4vuN3g30DPutVaLPjUK_luY5tdtuuu_8CvZ-j_w?type=png)](https://mermaid.live/edit#pako:eNptkG1rwjAQx79KuFcbOEkftJoxQWoRma6bdb4YBQntVcNs4mK6J_G7L1bcxmZeHLn_3f93x-0gUzkCgy2-VCgzHAi-1Ly8TiWxb8O1EZnYcGnIMEz-iwOtJB5lW7_q9WqBkUl_vggng8U0eniMktliEiVJfxhdWC8vnRuP0svfLhsZSYwFEyNKVJU5VmvaqX4_jWdxGI8X82iajOI7IuRhzljIZ-KSwoKFXJ7ZZVSQfnhr-W_CZCvcEqN-fGfmnO0jShKNGYpXhAYstciBGV1hA0rUJT-ksDvAUjArLDEFZr85FrxamxRSubc2e7InpcqTU6tquQJW8PXWZtUm5-Z0_z9qlAuj9LeoUeaoQ1VJAyzwazCwHbwDa9NW02tT2mlRt931g6ABH8Achzbdju90A-p4vuN3g30DPutVaLPjUK_luY5tdtuuu_8CvZ-j_w)
64+
[![Mermaid sequence: Check protocol version](https://mermaid.ink/img/pako:eNptUV1rwjAU_SvhPm3QiU0_dBkTpBYR7cbWbQ-jUEJ7W8Ns4mK6L_G_Lyq6sZmHS-4595xzSdZQqBKBwQpfW5QFjgSvNW-uMknsWXJtRCGWXBoyjtL_4EgriXvY8heDwQ5gJBk-5VEyyu_ju8c4fciTOE2H4_jMannjkmsiSqIqkt4mcW5nZ5ObKT0Mnf_2s5WR1NhIYkSDqjV7dpdz5E_ZECG3a8yEfCGUVDZXyPrEqpOKDKOpNXkXppjjihj1ozsVdmqOKEk0FijeEByotSiBGd2iAw3qhm9bWG_NMjBzbDADZq8lVrxdmAwyubEy-6LPSjUHpVZtPQdW8cXKdu2y5ObwPX_QuBRG6SOoUZaoI9VKA8yj3Z0zsDV8APMvw06v5_Wp6_X8IHCpA5_AbNfxe37Xp7RLA9f1Ng587VbpdkLfC_t-2A-oZ7nA3XwDTR6tNw?type=png)](https://mermaid.live/edit#pako:eNptUV1rwjAU_SvhPm3QiU0_dBkTpBYR7cbWbQ-jUEJ7W8Ns4mK6L_G_Lyq6sZmHS-4595xzSdZQqBKBwQpfW5QFjgSvNW-uMknsWXJtRCGWXBoyjtL_4EgriXvY8heDwQ5gJBk-5VEyyu_ju8c4fciTOE2H4_jMannjkmsiSqIqkt4mcW5nZ5ObKT0Mnf_2s5WR1NhIYkSDqjV7dpdz5E_ZECG3a8yEfCGUVDZXyPrEqpOKDKOpNXkXppjjihj1ozsVdmqOKEk0FijeEByotSiBGd2iAw3qhm9bWG_NMjBzbDADZq8lVrxdmAwyubEy-6LPSjUHpVZtPQdW8cXKdu2y5ObwPX_QuBRG6SOoUZaoI9VKA8yj3Z0zsDV8APMvw06v5_Wp6_X8IHCpA5_AbNfxe37Xp7RLA9f1Ng587VbpdkLfC_t-2A-oZ7nA3XwDTR6tNw)
7065

7166
<!-- Original sequence
7267
sequenceDiagram;
7368
participant GCS
7469
participant Drone
75-
GCS->>Drone: MAV_CMD_REQUEST_MESSAGE(param1=300)
70+
GCS->>Drone: MAV_CMD_REQUEST_MESSAGE(param1 = id of SOME_MAVLINK2_MESSAGE)
7671
GCS->>GCS: Start timeout
77-
Drone->>GCS: PROTOCOL_VERSION in MAVLink 2 framing
72+
Drone->>GCS: SOME_MAVLINK2_MESSAGE in MAVLink 2 framing
7873
GCS->>Drone: If ACK: Switches to MAVLink 2
7974
Drone->>GCS: Switches to MAVLink 2 on receive
8075
-->
8176

77+
::: tip
78+
Historically the message used for testing was `PROTOCOL_VERSION`, which is now deprecated.
79+
The protocol should work with any other MAVLink 2 telemetry message supported by the flight stack.
80+
:::
81+
8282
### Semi-Transparent Legacy Radios
8383

8484
Some popular legacy radios (e.g. the SiK radio series) operate in semi-transparent mode by injecting [RADIO_STATUS](../messages/common.md#RADIO_STATUS) messages into the MAVLink message stream.

0 commit comments

Comments
 (0)