From 6e906e1fde817cf8e0b30a9c56c2bd5ae2b97fe3 Mon Sep 17 00:00:00 2001 From: PX4 Build Bot Date: Fri, 12 Jun 2026 11:34:58 +1000 Subject: [PATCH] New Crowdin updates (#714) * New translations xml_schema.md (Korean) [ci skip] * New translations xml_schema.md (Chinese Simplified) [ci skip] * New translations offboard_control.md (Korean) [ci skip] * New translations parameter.md (Korean) [ci skip] * New translations component_metadata.md (Korean) [ci skip] * New translations offboard_control.md (Chinese Simplified) [ci skip] * New translations parameter.md (Chinese Simplified) [ci skip] * New translations component_metadata.md (Chinese Simplified) [ci skip] * New translations parameter.md (Korean) [ci skip] * New translations component_metadata.md (Korean) [ci skip] * New translations parameter.md (Chinese Simplified) [ci skip] * New translations component_metadata.md (Chinese Simplified) [ci skip] * New translations faq.md (Korean) [ci skip] * New translations index.md (Korean) [ci skip] * New translations illuminator.md (Korean) [ci skip] * New translations image_transmission.md (Korean) [ci skip] * New translations mavlink_id_assignment.md (Korean) [ci skip] * New translations parameter_ext.md (Korean) [ci skip] * New translations arm_authorization.md (Korean) [ci skip] * New translations camera.md (Korean) [ci skip] * New translations camera_def.md (Korean) [ci skip] * New translations gimbal_v2.md (Korean) [ci skip] * New translations faq.md (Chinese Simplified) [ci skip] * New translations index.md (Chinese Simplified) [ci skip] * New translations illuminator.md (Chinese Simplified) [ci skip] * New translations image_transmission.md (Chinese Simplified) [ci skip] * New translations mavlink_id_assignment.md (Chinese Simplified) [ci skip] * New translations parameter_ext.md (Chinese Simplified) [ci skip] * New translations arm_authorization.md (Chinese Simplified) [ci skip] * New translations camera.md (Chinese Simplified) [ci skip] * New translations camera_def.md (Chinese Simplified) [ci skip] * New translations gimbal_v2.md (Chinese Simplified) [ci skip] * New translations development.md (Korean) [ci skip] * New translations matrixpilot.md (Korean) [ci skip] * New translations ardupilotmega.md (Korean) [ci skip] * New translations asluav.md (Korean) [ci skip] * New translations common.md (Korean) [ci skip] * New translations dialects.md (Korean) [ci skip] * New translations development.md (Chinese Simplified) [ci skip] * New translations matrixpilot.md (Chinese Simplified) [ci skip] * New translations ardupilotmega.md (Chinese Simplified) [ci skip] * New translations asluav.md (Chinese Simplified) [ci skip] * New translations common.md (Chinese Simplified) [ci skip] * New translations dialects.md (Chinese Simplified) [ci skip] * New translations minimal.md (Korean) [ci skip] * New translations minimal.md (Chinese Simplified) [ci skip] * New translations standard.md (Korean) [ci skip] * New translations stemstudios.md (Korean) [ci skip] * New translations standard.md (Chinese Simplified) [ci skip] * New translations stemstudios.md (Chinese Simplified) [ci skip] * New translations uavionix.md (Korean) [ci skip] * New translations uavionix.md (Chinese Simplified) [ci skip] * New translations development.md (Korean) [ci skip] * New translations matrixpilot.md (Korean) [ci skip] * New translations ardupilotmega.md (Korean) [ci skip] * New translations asluav.md (Korean) [ci skip] * New translations common.md (Korean) [ci skip] * New translations mission.md (Korean) [ci skip] * New translations development.md (Chinese Simplified) [ci skip] * New translations matrixpilot.md (Chinese Simplified) [ci skip] * New translations ardupilotmega.md (Chinese Simplified) [ci skip] * New translations asluav.md (Chinese Simplified) [ci skip] * New translations common.md (Chinese Simplified) [ci skip] * New translations mission.md (Chinese Simplified) [ci skip] * New translations minimal.md (Korean) [ci skip] * New translations minimal.md (Chinese Simplified) [ci skip] * New translations standard.md (Korean) [ci skip] * New translations stemstudios.md (Korean) [ci skip] * New translations standard.md (Chinese Simplified) [ci skip] * New translations stemstudios.md (Chinese Simplified) [ci skip] * New translations uavionix.md (Korean) [ci skip] * New translations uavionix.md (Chinese Simplified) [ci skip] * New translations dialects.md (Korean) [ci skip] * New translations dialects.md (Chinese Simplified) [ci skip] * New translations common.md (Korean) [ci skip] * New translations dialects.md (Korean) [ci skip] * New translations common.md (Chinese Simplified) [ci skip] * New translations dialects.md (Chinese Simplified) [ci skip] --- ko/about/faq.md | 14 +-- ko/guide/xml_schema.md | 2 +- ko/mavgen_c/index.md | 2 +- ko/messages/common.md | 44 +++++--- ko/messages/dialects.md | 17 ++- ko/services/arm_authorization.md | 8 +- ko/services/camera.md | 2 +- ko/services/camera_def.md | 148 +++++++++++++++++---------- ko/services/component_metadata.md | 4 +- ko/services/gimbal_v2.md | 8 +- ko/services/illuminator.md | 2 +- ko/services/image_transmission.md | 2 +- ko/services/mavlink_id_assignment.md | 2 +- ko/services/mission.md | 32 ++++-- ko/services/offboard_control.md | 2 +- ko/services/parameter.md | 6 +- ko/services/parameter_ext.md | 4 +- zh/about/faq.md | 14 +-- zh/guide/xml_schema.md | 2 +- zh/mavgen_c/index.md | 2 +- zh/messages/common.md | 44 +++++--- zh/messages/dialects.md | 17 ++- zh/messages/matrixpilot.md | 18 ++-- zh/messages/standard.md | 2 +- zh/messages/uAvionix.md | 52 +++++----- zh/services/arm_authorization.md | 8 +- zh/services/camera.md | 2 +- zh/services/camera_def.md | 148 +++++++++++++++++---------- zh/services/component_metadata.md | 4 +- zh/services/gimbal_v2.md | 8 +- zh/services/illuminator.md | 2 +- zh/services/image_transmission.md | 2 +- zh/services/mavlink_id_assignment.md | 2 +- zh/services/mission.md | 32 ++++-- zh/services/offboard_control.md | 2 +- zh/services/parameter.md | 6 +- zh/services/parameter_ext.md | 4 +- 37 files changed, 392 insertions(+), 278 deletions(-) diff --git a/ko/about/faq.md b/ko/about/faq.md index 8f65d651..d4d36a64 100644 --- a/ko/about/faq.md +++ b/ko/about/faq.md @@ -21,8 +21,8 @@
What version of MAVLink should I use?
-
You should use the MAVLink 2 protocol where at all possible (it fixes a number of limitations of earlier versions). - The MAVLink 2 libraries also support MAVLink 1, so you can use them to communicate with legacy systems if needed. +
You should use the MAVLink 2 protocol where at all possible (it fixes a number of limitations of earlier versions). + The MAVLink 2 libraries also support MAVLink 1, so you can use them to communicate with legacy systems if needed.
How often is MAVLink updated/released?
@@ -58,12 +58,14 @@
MAVLink는 무인 항공 시스템의 안전에 중요한 구성 요소의 일부입니다. 많은 패킷을 버리는 나쁜 통신 링크는 비행체의 안전을 위협할 수 있고, 모니터링이 필요합니다. 헤더에 시퀀스를 가지는 것은 MAVLink가 패킷 손실률에 관한 피드백을 지속적으로 제공할 수 있도록 하여 비행체나 관제국이 조치를 취할수 있도록 합니다.
왜 CRC_EXTRA가 패킷 무결성 체크섬에 필요한가요?
-
CRC_EXTRA의 CRC는 송수신자 각자가 지정 메시지의 유선 형식을 이해하는지 검증하는 용도로 활용합니다 (프로토콜 구조가 단순하여 메시지 구조에 페이로드가 들어있지 않기 때문에 필요함). - MAVLink 0.9에서는 CRC를 사용하지 않았습니다(다만 길이 검사는 진행했습니다). - 메시지를 설명하는 XML이 메시지 길이 변화 없이 변경되는 소수의 케이스가 있었는데, 이것은 메시지를 읽을 때 심각하게 손상된 필드로 이어졌습니다.
+
The CRC_EXTRA CRC is used to verify that the sender and receiver have a shared understanding of the over-the-wire format of a particular message + (required because as a lightweight protocol, the message structure isn't included in the payload). + MAVLink 0.9에서는 CRC를 사용하지 않았습니다(다만 길이 검사는 진행했습니다). + There were a small number of cases where XML describing a message changed without changing the message length, + leading to badly corrupted fields when messages were read.
디코딩/인코딩 루틴이나 다른 요소들을 개선하는데 도움을 주고 싶습니다. MAVLink가 바뀔 수도 있나요?
-
매우 엄밀한 안전 테스트를 거치는 경우에 그럴 수 있습니다. +
매우 엄밀한 안전 테스트를 거치는 경우에 그럴 수 있습니다. MAVLink는 많은 autopilot 시스템에서 중요한 안전 요소로 사용되기 때문에 다년간의 시험을 거칩니다. Please suggest new features on the MAVLink support channels.
How can I further reduce the generated C library size?
diff --git a/ko/guide/xml_schema.md b/ko/guide/xml_schema.md index d3d0eda7..1e97816a 100644 --- a/ko/guide/xml_schema.md +++ b/ko/guide/xml_schema.md @@ -391,7 +391,7 @@ The tag is usually applied like this (including the comment): Attributes: - `since` (optional): A datestamp indicating when the corresponding element was proposed. - This should be formatted as such as `YYYYMM` + This should be formatted as such as `YYYY-MM` This hints to the maintainer team when WIP elements should be reviewed for addition or removal. Nested elements diff --git a/ko/mavgen_c/index.md b/ko/mavgen_c/index.md index de16a1d3..82925f29 100644 --- a/ko/mavgen_c/index.md +++ b/ko/mavgen_c/index.md @@ -44,7 +44,7 @@ If you generate your own headers, you will have to add their output location to When compiling the project, make sure to add the include directory: ```sh -$ gcc ... -I generated/include ... +gcc ... -I generated/include ... ``` ## Adding Library to Cmake Project diff --git a/ko/messages/common.md b/ko/messages/common.md index 200735d9..e169daae 100644 --- a/ko/messages/common.md +++ b/ko/messages/common.md @@ -4611,23 +4611,33 @@ Indicates the severity level, generally used for status messages to indicate the [SERIAL_CONTROL](#SERIAL_CONTROL) device types -| Value | Name | Description | -| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------- | -| 0 | [SERIAL_CONTROL_DEV_TELEM1](#SERIAL_CONTROL_DEV_TELEM1) | First telemetry port | -| 1 | [SERIAL_CONTROL_DEV_TELEM2](#SERIAL_CONTROL_DEV_TELEM2) | Second telemetry port | -| 2 | [SERIAL_CONTROL_DEV_GPS1](#SERIAL_CONTROL_DEV_GPS1) | First GPS port | -| 3 | [SERIAL_CONTROL_DEV_GPS2](#SERIAL_CONTROL_DEV_GPS2) | Second GPS port | -| 10 | [SERIAL_CONTROL_DEV_SHELL](#SERIAL_CONTROL_DEV_SHELL) | system shell | -| 100 | [SERIAL_CONTROL_SERIAL0](#SERIAL_CONTROL_SERIAL0) | SERIAL0 | -| 101 | [SERIAL_CONTROL_SERIAL1](#SERIAL_CONTROL_SERIAL1) | SERIAL1 | -| 102 | [SERIAL_CONTROL_SERIAL2](#SERIAL_CONTROL_SERIAL2) | SERIAL2 | -| 103 | [SERIAL_CONTROL_SERIAL3](#SERIAL_CONTROL_SERIAL3) | SERIAL3 | -| 104 | [SERIAL_CONTROL_SERIAL4](#SERIAL_CONTROL_SERIAL4) | SERIAL4 | -| 105 | [SERIAL_CONTROL_SERIAL5](#SERIAL_CONTROL_SERIAL5) | SERIAL5 | -| 106 | [SERIAL_CONTROL_SERIAL6](#SERIAL_CONTROL_SERIAL6) | SERIAL6 | -| 107 | [SERIAL_CONTROL_SERIAL7](#SERIAL_CONTROL_SERIAL7) | SERIAL7 | -| 108 | [SERIAL_CONTROL_SERIAL8](#SERIAL_CONTROL_SERIAL8) | SERIAL8 | -| 109 | [SERIAL_CONTROL_SERIAL9](#SERIAL_CONTROL_SERIAL9) | SERIAL9 | +| Value | Name | Description | +| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------- | +| 0 | [SERIAL_CONTROL_DEV_TELEM1](#SERIAL_CONTROL_DEV_TELEM1) | First telemetry port | +| 1 | [SERIAL_CONTROL_DEV_TELEM2](#SERIAL_CONTROL_DEV_TELEM2) | Second telemetry port | +| 2 | [SERIAL_CONTROL_DEV_GPS1](#SERIAL_CONTROL_DEV_GPS1) | First GPS port | +| 3 | [SERIAL_CONTROL_DEV_GPS2](#SERIAL_CONTROL_DEV_GPS2) | Second GPS port | +| 4 | [SERIAL_CONTROL_DEV_TELEM3](#SERIAL_CONTROL_DEV_TELEM3) | Third telemetry port | +| 5 | [SERIAL_CONTROL_DEV_TELEM4](#SERIAL_CONTROL_DEV_TELEM4) | Fourth telemetry port | +| 10 | [SERIAL_CONTROL_DEV_SHELL](#SERIAL_CONTROL_DEV_SHELL) | system shell | +| 20 | [SERIAL_CONTROL_DEV_ESC0](#SERIAL_CONTROL_DEV_ESC0) | Electronic Speed Controller 0 | +| 21 | [SERIAL_CONTROL_DEV_ESC1](#SERIAL_CONTROL_DEV_ESC1) | Electronic Speed Controller 1 | +| 22 | [SERIAL_CONTROL_DEV_ESC2](#SERIAL_CONTROL_DEV_ESC2) | Electronic Speed Controller 2 | +| 23 | [SERIAL_CONTROL_DEV_ESC3](#SERIAL_CONTROL_DEV_ESC3) | Electronic Speed Controller 3 | +| 24 | [SERIAL_CONTROL_DEV_ESC4](#SERIAL_CONTROL_DEV_ESC4) | Electronic Speed Controller 4 | +| 25 | [SERIAL_CONTROL_DEV_ESC5](#SERIAL_CONTROL_DEV_ESC5) | Electronic Speed Controller 5 | +| 26 | [SERIAL_CONTROL_DEV_ESC6](#SERIAL_CONTROL_DEV_ESC6) | Electronic Speed Controller 6 | +| 27 | [SERIAL_CONTROL_DEV_ESC7](#SERIAL_CONTROL_DEV_ESC7) | Electronic Speed Controller 7 | +| 100 | [SERIAL_CONTROL_SERIAL0](#SERIAL_CONTROL_SERIAL0) | SERIAL0 | +| 101 | [SERIAL_CONTROL_SERIAL1](#SERIAL_CONTROL_SERIAL1) | SERIAL1 | +| 102 | [SERIAL_CONTROL_SERIAL2](#SERIAL_CONTROL_SERIAL2) | SERIAL2 | +| 103 | [SERIAL_CONTROL_SERIAL3](#SERIAL_CONTROL_SERIAL3) | SERIAL3 | +| 104 | [SERIAL_CONTROL_SERIAL4](#SERIAL_CONTROL_SERIAL4) | SERIAL4 | +| 105 | [SERIAL_CONTROL_SERIAL5](#SERIAL_CONTROL_SERIAL5) | SERIAL5 | +| 106 | [SERIAL_CONTROL_SERIAL6](#SERIAL_CONTROL_SERIAL6) | SERIAL6 | +| 107 | [SERIAL_CONTROL_SERIAL7](#SERIAL_CONTROL_SERIAL7) | SERIAL7 | +| 108 | [SERIAL_CONTROL_SERIAL8](#SERIAL_CONTROL_SERIAL8) | SERIAL8 | +| 109 | [SERIAL_CONTROL_SERIAL9](#SERIAL_CONTROL_SERIAL9) | SERIAL9 | ### SERIAL_CONTROL_FLAG {#SERIAL_CONTROL_FLAG} diff --git a/ko/messages/dialects.md b/ko/messages/dialects.md index fe9e7663..9084f712 100644 --- a/ko/messages/dialects.md +++ b/ko/messages/dialects.md @@ -17,20 +17,19 @@ Dialects are not managed by this project! The dialect definitions are: -- [csAirLink.xml](csAirLink.md) +- [storm32.xml](storm32.md) +- [paparazzi.xml](paparazzi.md) +- [stemstudios.xml](stemstudios.md) +- [AVSSUAS.xml](AVSSUAS.md) +- [uAvionix.xml](uAvionix.md) - [loweheiser.xml](loweheiser.md) -- [cubepilot.xml](cubepilot.md) - [ASLUAV.xml](ASLUAV.md) - [ardupilotmega.xml](ardupilotmega.md) -- [matrixpilot.xml](matrixpilot.md) - [marsh.xml](marsh.md) -- [uAvionix.xml](uAvionix.md) -- [AVSSUAS.xml](AVSSUAS.md) -- [storm32.xml](storm32.md) -- [ualberta.xml](ualberta.md) -- [paparazzi.xml](paparazzi.md) +- [csAirLink.xml](csAirLink.md) - [icarous.xml](icarous.md) -- [stemstudios.xml](stemstudios.md) +- [cubepilot.xml](cubepilot.md) +- [ualberta.xml](ualberta.md) Note that dialects may `include` [MAVLink-Standard Definitions](index.md) or other dialects. Up to 5 levels of XML file nesting are allowed - see `MAXIMUM_INCLUDE_FILE_NESTING` in [mavgen.py](https://github.com/ArduPilot/pymavlink/blob/master/generator/mavgen.py#L44). diff --git a/ko/services/arm_authorization.md b/ko/services/arm_authorization.md index cd934d88..1268ef32 100644 --- a/ko/services/arm_authorization.md +++ b/ko/services/arm_authorization.md @@ -7,7 +7,7 @@ This is required to comply with [NASA UTM](https://utm.arc.nasa.gov/), but may a ## Authorization Flow -[![Mermaid Squence: Authorization Flow](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtO1xuICAgIHBhcnRpY2lwYW50IERyb25lXG4gICAgcGFydGljaXBhbnQgUmVtb3RlIGNvbnRyb2wvUUNTXG4gICAgcGFydGljaXBhbnQgQXJtIGF1dGhvcml6ZXJcbiAgICBwYXJ0aWNpcGFudCBJbnRlcm5ldFxuXG4gICAgUmVtb3RlIGNvbnRyb2wvUUNTLT4-RHJvbmU6IFJlcXVlc3QgYXJtXG4gICAgRHJvbmUtPj5Bcm0gYXV0aG9yaXplcjogQ09NTUFORF9MT05HIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUXG4gICAgQXJtIGF1dGhvcml6ZXItPj5Ecm9uZTogQ09NTUFORF9BQ0sgcmVzdWx0PU1BVl9SRVNVTFRfSU5fUFJPR1JFU1NcbiAgICBBcm0gYXV0aG9yaXplci0-PkRyb25lOiAob3B0aW9uYWwpUmVxdWVzdCBpbmZvcm1hdGlvbiBhYm91dCBtaXNzaW9uLCBiYXR0ZXJ5IGxldmVsIGFuZCBldGMuXG4gICAgQXJtIGF1dGhvcml6ZXItPj5JbnRlcm5ldDogKG9wdGlvbmFsKVJlcXVlc3QgaW5mb3JtYXRpb24gYWJvdXQgd2VhdGhlciwgYWVyb3NwYWNlIHRyYWZpYyBhbmQgZXRjLlxuICAgIEFybSBhdXRob3JpemVyLT4-RHJvbmU6IENPTU1BTkRfQUNLIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUIHJlc3VsdD1BQ0NFUFRFRCwgVEVNUE9SQVJJTFlfUkVKRUNURUQgb3IgREVOSUVEXG4gICAgRHJvbmUtPj5SZW1vdGUgY29udHJvbC9RQ1M6IFFDUyBDT01NQU5EX0FDSyBjb21tYW5kPU1BVl9DTURfQ09NUE9ORU5UX0FSTV9ESVNBUk0gcmVzdWx0PUFDQ0VQVEVELCBURU1QT1JBUklMWV9SRUpFQ1RFRCBvciBERU5JRUQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtO1xuICAgIHBhcnRpY2lwYW50IERyb25lXG4gICAgcGFydGljaXBhbnQgUmVtb3RlIGNvbnRyb2wvUUNTXG4gICAgcGFydGljaXBhbnQgQXJtIGF1dGhvcml6ZXJcbiAgICBwYXJ0aWNpcGFudCBJbnRlcm5ldFxuXG4gICAgUmVtb3RlIGNvbnRyb2wvUUNTLT4-RHJvbmU6IFJlcXVlc3QgYXJtXG4gICAgRHJvbmUtPj5Bcm0gYXV0aG9yaXplcjogQ09NTUFORF9MT05HIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUXG4gICAgQXJtIGF1dGhvcml6ZXItPj5Ecm9uZTogQ09NTUFORF9BQ0sgcmVzdWx0PU1BVl9SRVNVTFRfSU5fUFJPR1JFU1NcbiAgICBBcm0gYXV0aG9yaXplci0-PkRyb25lOiAob3B0aW9uYWwpUmVxdWVzdCBpbmZvcm1hdGlvbiBhYm91dCBtaXNzaW9uLCBiYXR0ZXJ5IGxldmVsIGFuZCBldGMuXG4gICAgQXJtIGF1dGhvcml6ZXItPj5JbnRlcm5ldDogKG9wdGlvbmFsKVJlcXVlc3QgaW5mb3JtYXRpb24gYWJvdXQgd2VhdGhlciwgYWVyb3NwYWNlIHRyYWZpYyBhbmQgZXRjLlxuICAgIEFybSBhdXRob3JpemVyLT4-RHJvbmU6IENPTU1BTkRfQUNLIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUIHJlc3VsdD1BQ0NFUFRFRCwgVEVNUE9SQVJJTFlfUkVKRUNURUQgb3IgREVOSUVEXG4gICAgRHJvbmUtPj5SZW1vdGUgY29udHJvbC9RQ1M6IFFDUyBDT01NQU5EX0FDSyBjb21tYW5kPU1BVl9DTURfQ09NUE9ORU5UX0FSTV9ESVNBUk0gcmVzdWx0PUFDQ0VQVEVELCBURU1QT1JBUklMWV9SRUpFQ1RFRCBvciBERU5JRUQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ) +[![Mermaid Sequence: Authorization Flow](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtO1xuICAgIHBhcnRpY2lwYW50IERyb25lXG4gICAgcGFydGljaXBhbnQgUmVtb3RlIGNvbnRyb2wvUUNTXG4gICAgcGFydGljaXBhbnQgQXJtIGF1dGhvcml6ZXJcbiAgICBwYXJ0aWNpcGFudCBJbnRlcm5ldFxuXG4gICAgUmVtb3RlIGNvbnRyb2wvUUNTLT4-RHJvbmU6IFJlcXVlc3QgYXJtXG4gICAgRHJvbmUtPj5Bcm0gYXV0aG9yaXplcjogQ09NTUFORF9MT05HIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUXG4gICAgQXJtIGF1dGhvcml6ZXItPj5Ecm9uZTogQ09NTUFORF9BQ0sgcmVzdWx0PU1BVl9SRVNVTFRfSU5fUFJPR1JFU1NcbiAgICBBcm0gYXV0aG9yaXplci0-PkRyb25lOiAob3B0aW9uYWwpUmVxdWVzdCBpbmZvcm1hdGlvbiBhYm91dCBtaXNzaW9uLCBiYXR0ZXJ5IGxldmVsIGFuZCBldGMuXG4gICAgQXJtIGF1dGhvcml6ZXItPj5JbnRlcm5ldDogKG9wdGlvbmFsKVJlcXVlc3QgaW5mb3JtYXRpb24gYWJvdXQgd2VhdGhlciwgYWVyb3NwYWNlIHRyYWZpYyBhbmQgZXRjLlxuICAgIEFybSBhdXRob3JpemVyLT4-RHJvbmU6IENPTU1BTkRfQUNLIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUIHJlc3VsdD1BQ0NFUFRFRCwgVEVNUE9SQVJJTFlfUkVKRUNURUQgb3IgREVOSUVEXG4gICAgRHJvbmUtPj5SZW1vdGUgY29udHJvbC9RQ1M6IFFDUyBDT01NQU5EX0FDSyBjb21tYW5kPU1BVl9DTURfQ09NUE9ORU5UX0FSTV9ESVNBUk0gcmVzdWx0PUFDQ0VQVEVELCBURU1QT1JBUklMWV9SRUpFQ1RFRCBvciBERU5JRUQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtO1xuICAgIHBhcnRpY2lwYW50IERyb25lXG4gICAgcGFydGljaXBhbnQgUmVtb3RlIGNvbnRyb2wvUUNTXG4gICAgcGFydGljaXBhbnQgQXJtIGF1dGhvcml6ZXJcbiAgICBwYXJ0aWNpcGFudCBJbnRlcm5ldFxuXG4gICAgUmVtb3RlIGNvbnRyb2wvUUNTLT4-RHJvbmU6IFJlcXVlc3QgYXJtXG4gICAgRHJvbmUtPj5Bcm0gYXV0aG9yaXplcjogQ09NTUFORF9MT05HIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUXG4gICAgQXJtIGF1dGhvcml6ZXItPj5Ecm9uZTogQ09NTUFORF9BQ0sgcmVzdWx0PU1BVl9SRVNVTFRfSU5fUFJPR1JFU1NcbiAgICBBcm0gYXV0aG9yaXplci0-PkRyb25lOiAob3B0aW9uYWwpUmVxdWVzdCBpbmZvcm1hdGlvbiBhYm91dCBtaXNzaW9uLCBiYXR0ZXJ5IGxldmVsIGFuZCBldGMuXG4gICAgQXJtIGF1dGhvcml6ZXItPj5JbnRlcm5ldDogKG9wdGlvbmFsKVJlcXVlc3QgaW5mb3JtYXRpb24gYWJvdXQgd2VhdGhlciwgYWVyb3NwYWNlIHRyYWZpYyBhbmQgZXRjLlxuICAgIEFybSBhdXRob3JpemVyLT4-RHJvbmU6IENPTU1BTkRfQUNLIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUIHJlc3VsdD1BQ0NFUFRFRCwgVEVNUE9SQVJJTFlfUkVKRUNURUQgb3IgREVOSUVEXG4gICAgRHJvbmUtPj5SZW1vdGUgY29udHJvbC9RQ1M6IFFDUyBDT01NQU5EX0FDSyBjb21tYW5kPU1BVl9DTURfQ09NUE9ORU5UX0FSTV9ESVNBUk0gcmVzdWx0PUFDQ0VQVEVELCBURU1QT1JBUklMWV9SRUpFQ1RFRCBvciBERU5JRUQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ) @@ -41,7 +41,7 @@ sequenceDiagram; Drone->>Arm authorizer: COMMAND_LONG command=MAV_CMD_ARM_AUTHORIZATION_REQUEST Arm authorizer->>Drone: COMMAND_ACK result=MAV_RESULT_IN_PROGRESS Arm authorizer->>Drone: (optional)Request information about mission, battery level and etc. - Arm authorizer->>Internet: (optional)Request information about weather, aerospace trafic and etc. + Arm authorizer->>Internet: (optional)Request information about weather, aerospace traffic and etc. Arm authorizer->>Drone: COMMAND_ACK command=MAV_CMD_ARM_AUTHORIZATION_REQUEST result=ACCEPTED, TEMPORARILY_REJECTED or DENIED Drone->>Remote control/QCS: QCS STATUSTEXT text=Arm authorization was approved or denied @@ -65,7 +65,7 @@ COMMAND_ACK command=MAV_CMD_ARM_AUTHORIZATION_REQUEST result=ACCEPTED, TEMPORARILY_REJECTED or DENIED progress/result_param1=if result is TEMPORARILY_REJECTED or DENIED the reason should be set MAV_ARM_AUTH_DENIED_REASON otherwise it should be set as 0 -result_param2=if result is ACCEPTED the it should be set with the time in seconds that this authorization is valid otherwise an aditional information about why it was denied should be set. example: for result_param1=MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT or MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE it may have the index of the waypoint that caused it to be denied. +result_param2=if result is ACCEPTED the it should be set with the time in seconds that this authorization is valid otherwise an additional information about why it was denied should be set. example: for result_param1=MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT or MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE it may have the index of the waypoint that caused it to be denied. target_system=system id of the drone target_component=component id of the drone ``` diff --git a/ko/services/camera.md b/ko/services/camera.md index a1b8b85c..2728a618 100644 --- a/ko/services/camera.md +++ b/ko/services/camera.md @@ -510,7 +510,7 @@ Other components like a GCS will typically only use the camera `BATTERY_STATUS.b | [MAV_CMD_VIDEO_STOP_CAPTURE](../messages/common.md#MAV_CMD_VIDEO_STOP_CAPTURE) | Send command to stop video capture. | | [MAV_CMD_VIDEO_START_STREAMING](../messages/common.md#MAV_CMD_VIDEO_START_STREAMING) | Send command to start video streaming for the given Stream ID (`stream_id`.) This is mostly for streaming protocols that _push_ a stream. If your camera uses a connection based streaming configuration (RTSP, TCP, etc.), you may ignore it if you don't need it but note that you still must ACK the command, like all `MAV_CMD_XXX` commands. When using a connection based streaming configuration, the GCS will connect the stream from its side. When a camera offers more than one stream and the user switches from one stream to another, the GCS will send a [MAV_CMD_VIDEO_STOP_STREAMING](../messages/common.md#MAV_CMD_VIDEO_STOP_STREAMING) command targeting the current Stream ID followed by a [MAV_CMD_VIDEO_START_STREAMING](../messages/common.md#MAV_CMD_VIDEO_START_STREAMING) targeting the newly selected Stream ID. | | [MAV_CMD_VIDEO_STOP_STREAMING](../messages/common.md#MAV_CMD_VIDEO_STOP_STREAMING) | Send command to stop video streaming for the given Stream ID (`stream_id`.) This is mostly for streaming protocols that _push_ a stream. If your camera uses a connection based streaming configuration (RTSP, TCP, etc.), you may ignore it if you don't need it but note that you still must ACK the command, like all `MAV_CMD_XXX` commands. When using a connection based streaming configuration, the GCS will disconnect the stream from its side. When a camera offers more than one stream and the user switches from one stream to another, the GCS will send a [MAV_CMD_VIDEO_STOP_STREAMING](../messages/common.md#MAV_CMD_VIDEO_STOP_STREAMING) command targeting the current Stream ID followed by a [MAV_CMD_VIDEO_START_STREAMING](../messages/common.md#MAV_CMD_VIDEO_START_STREAMING) targeting the newly selected Stream ID. | -| [MAV_CMD_CAMERA_TRACK_POINT](../messages/common.md#MAV_CMD_CAMERA_TRACK_POINT) | Initate visual point tracking, if supported by the camera ([CAMERA_CAP_FLAGS_HAS_TRACKING_POINT](#CAMERA_CAP_FLAGS) is set). | +| [MAV_CMD_CAMERA_TRACK_POINT](../messages/common.md#MAV_CMD_CAMERA_TRACK_POINT) | Initiate visual point tracking, if supported by the camera ([CAMERA_CAP_FLAGS_HAS_TRACKING_POINT](#CAMERA_CAP_FLAGS) is set). | | [MAV_CMD_CAMERA_TRACK_RECTANGLE](../messages/common.md#MAV_CMD_CAMERA_TRACK_RECTANGLE) | Initiate visual rectangle tracking, if supported by the camera ([CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE](#CAMERA_CAP_FLAGS) is set). | | [MAV_CMD_CAMERA_STOP_TRACKING](../messages/common.md#MAV_CMD_CAMERA_STOP_TRACKING) | Stop camera tracking (as initiated using `MAV_CMD_CAMERA_TRACK_POINT` or `MAV_CMD_CAMERA_TRACK_RECTANGLE`). | diff --git a/ko/services/camera_def.md b/ko/services/camera_def.md index 6a62375d..bf321c94 100644 --- a/ko/services/camera_def.md +++ b/ko/services/camera_def.md @@ -1,30 +1,31 @@ # Camera Definition File -A GCS will build a Camera Controller UI for image capture, video capture and video streaming using information provided by the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message. -For simple cameras, the information in the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message itself is sufficient to construct the UI. -For more advanced cameras (with settings and options) the information required to build the UI can be supplied in a _Camera Definition File_ that is located at the URI specified in the message's `cam_definition_uri` field. +A GCS will build a Camera Controller UI for image capture, video capture and video streaming using information provided +by the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message. For simple cameras, the information in +the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message itself is sufficient to construct the UI. For +more advanced cameras (with settings and options) the information required to build the UI can be supplied in a _Camera +Definition File_ that is located at the URI specified in the message's `cam_definition_uri` field. -The _Camera Definition File_ contains all the camera settings, the options for each setting, and exclusion lists (options that invalidate or are conditional on other settings). -In addition, it may contain localisations of GUI strings for display to the user. +The _Camera Definition File_ contains all the camera settings, the options for each setting, and exclusion lists +(options that invalidate or are conditional on other settings). In addition, it may contain localisations of GUI strings +for display to the user. At the bottom of this page, you can find a [full example](#full_example) of a _Camera Definition File_. -:::info -A _Camera Definition File_ is required because the camera options differ so greatly between cameras. -It is not reasonable to create specific MAVLink messages for each and every possible option and to tell the GCS the valid options for each camera setting. -::: +::: info A _Camera Definition File_ is required because the camera options differ so greatly between cameras. It is not +reasonable to create specific MAVLink messages for each and every possible option and to tell the GCS the valid options +for each camera setting. ::: ## File Compression -Camera definition files may be **.xz** compressed (this is recommended for files that are hosted on the camera component/device). +Camera definition files may be **.xz** compressed (this is recommended for files that are hosted on the camera +component/device). -:::warning -Systems that _request_ camera definition files **must** support extraction of **.xz**-compressed definition files. -::: +::: warning Systems that _request_ camera definition files **must** support extraction of **.xz**-compressed definition +files. ::: -:::tip -The [Tukaani Project XZ Embedded](https://tukaani.org/xz/embedded.html) library is an easy-to-use XZ compression library for embedded systems. -::: +::: tip The [Tukaani Project XZ Embedded](https://tukaani.org/xz/embedded.html) library is an easy-to-use XZ compression +library for embedded systems. ::: ## Schema @@ -47,21 +48,20 @@ All fields are self explanatory: ### Parameters -An extended set of parameter messages is used to define settings and options. -These minimally have a parameter name, type and default value (types can be predefined or arbitrary - though arbitrary types are only supported by custom camera controllers). -They will also have a description that is displayed to the user and the set of possible options. +An extended set of parameter messages is used to define settings and options. These minimally have a parameter name, +type and default value (types can be predefined or arbitrary - though arbitrary types are only supported by custom +camera controllers). They will also have a description that is displayed to the user and the set of possible options. Parameters can be simple or quite complex, depending on the behavior they change. -:::info -The parameter `CAM_MODE` must be part of the parameter list. -It maps to the command [MAV_CMD_SET_CAMERA_MODE](../messages/common.md#MAV_CMD_SET_CAMERA_MODE). -It enables exposure of different settings based on the mode, so photo settings in photo mode and video settings in video mode. -::: +::: info The parameter `CAM_MODE` must be part of the parameter list. It maps to the command +[MAV_CMD_SET_CAMERA_MODE](../messages/common.md#MAV_CMD_SET_CAMERA_MODE). It enables exposure of different settings +based on the mode, so photo settings in photo mode and video settings in video mode. ::: #### Parameter Types -The type of the parameter follows the enum [MAV_PARAM_EXT_TYPE](../messages/common.md#MAV_PARAM_EXT_TYPE_UINT8). Within the XML file, these are defined as: +The type of the parameter follows the enum [MAV_PARAM_EXT_TYPE](../messages/common.md#MAV_PARAM_EXT_TYPE_UINT8). Within +the XML file, these are defined as: - bool (internally treated as a uint8) - uint8 @@ -76,7 +76,9 @@ The type of the parameter follows the enum [MAV_PARAM_EXT_TYPE](../messages/comm - double - custom -The `custom` type is a special case that allows for arbitrary data structures of up to 128 bytes. However these are not supported by default - you would need to extend or write your own camera controller within the GCS to interpret this type. +The `custom` type is a special case that allows for arbitrary data structures of up to 128 bytes. However these are not +supported by default - you would need to extend or write your own camera controller within the GCS to interpret this +type. #### Parameter Definition @@ -88,8 +90,8 @@ The simplest parameter would be a boolean type, which inherently (and automatica ``` -The `name` attribute is the name of the parameter. This is the name used when requesting or setting the parameter's value using the extended parameter messages. -The `description` is what is shown to the user. +The `name` attribute is the name of the parameter. This is the name used when requesting or setting the parameter's +value using the extended parameter messages. The `description` is what is shown to the user. More common are parameters that provide options: @@ -108,16 +110,17 @@ More common are parameters that provide options: ``` In this case, the GCS will automatically build a drop down list with the options defined within the `options` group. -When sending/receiving the options, the `value` field is used and it is not in any way interpreted by the GCS. -The `name` field is used for display only. In other words, using the example above, when the user selects _Sunset_, the GCS will send a [PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) message with the id `CAM_WBMODE` and a uint32 value of 3. +When sending/receiving the options, the `value` field is used and it is not in any way interpreted by the GCS. The +`name` field is used for display only. In other words, using the example above, when the user selects _Sunset_, the GCS +will send a [PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) message with the id `CAM_WBMODE` and a uint32 value +of 3. #### Common Parameters -_Common Parameters_ are reserved parameter names for which the GCS can build specific UI controls (if found in a camera definition). +_Common Parameters_ are reserved parameter names for which the GCS can build specific UI controls (if found in a camera +definition). -:::info -These parameters are common to many cameras (though their valid options vary considerably). -::: +::: info These parameters are common to many cameras (though their valid options vary considerably). ::: | Parameter | Description | | ------------------------------------- | ------------------------------------------------------------------------------------------------------ | @@ -146,9 +149,10 @@ These parameters are common to many cameras (though their valid options vary con #### Exclusion Rules -Some parameters are only relevant when some other parameter is set to some specific option. -For example, shutter speed, aperture and ISO would only be available when the camera is set to _manual_ exposure mode and not shown when the camera is set to _auto_ exposure mode. -Conversely, _EV_ (Exposure Compensation) is only used when the camera is set to _auto_ and hidden otherwise. To specify this behavior, you would use the `exclusion` element: +Some parameters are only relevant when some other parameter is set to some specific option. For example, shutter speed, +aperture and ISO would only be available when the camera is set to _manual_ exposure mode and not shown when the camera +is set to _auto_ exposure mode. Conversely, _EV_ (Exposure Compensation) is only used when the camera is set to _auto_ +and hidden otherwise. To specify this behavior, you would use the `exclusion` element: ```XML @@ -170,11 +174,17 @@ Conversely, _EV_ (Exposure Compensation) is only used when the camera is set to ``` -The above example describes an _Exposure Mode_ parameter and its two options: _Auto_ and _Manual_. When the option is set to _Auto_, the `CAM_APERTURE`, `CAM_ISO` and `CAM_SHUTTERSPD` parameters (defined elsewhere in the parameter list) are hidden from the UI as they are not applicable. On the other hand, if the option is set to _Manual_, the `CAM_EV` parameter is hidden as it is not applicable while the camera is in _Manual Exposure Mode_. +The above example describes an _Exposure Mode_ parameter and its two options: _Auto_ and _Manual_. When the option is +set to _Auto_, the `CAM_APERTURE`, `CAM_ISO` and `CAM_SHUTTERSPD` parameters (defined elsewhere in the parameter list) +are hidden from the UI as they are not applicable. On the other hand, if the option is set to _Manual_, the `CAM_EV` +parameter is hidden as it is not applicable while the camera is in _Manual Exposure Mode_. #### Required Option Updates -There are cases where an option change requires a parameter to be updated. For example, using the example above, when the camera is set to _Auto Exposure Mode_, it internally might change the Aperture, ISO and Shutter speed. When the user switches back to _Manual Exposure Mode_, the GCS must request an update for the current Aperture, ISO and Shutter speed as they may have changed. To do this, you would use the `update` element: +There are cases where an option change requires a parameter to be updated. For example, using the example above, when +the camera is set to _Auto Exposure Mode_, it internally might change the Aperture, ISO and Shutter speed. When the user +switches back to _Manual Exposure Mode_, the GCS must request an update for the current Aperture, ISO and Shutter speed +as they may have changed. To do this, you would use the `update` element: ```XML @@ -201,7 +211,8 @@ There are cases where an option change requires a parameter to be updated. For e ``` -This tells the GCS that when the `CAM_EXPMODE` parameter changes, the `CAM_APERTURE`, `CAM_SHUTTERSPD` and the `CAM_ISO` parameters must be updated (requested from the camera). +This tells the GCS that when the `CAM_EXPMODE` parameter changes, the `CAM_APERTURE`, `CAM_SHUTTERSPD` and the `CAM_ISO` +parameters must be updated (requested from the camera). #### Option Range Limit @@ -226,7 +237,8 @@ Suppose your camera has the following ISO options: ``` -But this full range is only available when in _Photo Mode_. For whatever reason, when the camera is set to _Video Mode_, only a subset of the above range is valid. In this case, you would use the `parameterrange` element: +But this full range is only available when in _Photo Mode_. For whatever reason, when the camera is set to _Video Mode_, +only a subset of the above range is valid. In this case, you would use the `parameterrange` element: ```XML @@ -252,13 +264,19 @@ But this full range is only available when in _Photo Mode_. For whatever reason, ``` -This indicates to the GCS that when the `CAM_MODE` parameter is set to _Video_, only the given range for the `CAM_ISO` parameter is valid. It additionally gives a condition that this is only the case when the `CAM_EXPOSURE` mode is set to _Manual_ (1). +This indicates to the GCS that when the `CAM_MODE` parameter is set to _Video_, only the given range for the `CAM_ISO` +parameter is valid. It additionally gives a condition that this is only the case when the `CAM_EXPOSURE` mode is set to +_Manual_ (1). -This example also tells the GCS not to display this parameter to the user (`control=“0”`). Camera Mode is a standard parameter defined in the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message and it’s handled by the GCS in that way. The parameter definition above was created in order to tell the GCS the rules that are applied when changes to the camera mode occur. +This example also tells the GCS not to display this parameter to the user (`control=“0”`). Camera Mode is a standard +parameter defined in the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message and it’s handled by the +GCS in that way. The parameter definition above was created in order to tell the GCS the rules that are applied when +changes to the camera mode occur. #### Param Ranges -It is also possible to define param ranges without individual options, but by specifiying the minimum, maximum, and optionally a step size: +It is also possible to define param ranges without individual options, but by specifying the minimum, maximum, and +optionally a step size: ```xml @@ -281,12 +299,17 @@ This would be equivalent to: ``` -Note that this approach cannot be used in conjunction with exclusions or option range limits (defined with `parameterrange`). -Therefore it is recommended for cases where the range of allowed values does not vary with any other camera mode or setting. +Note that this approach cannot be used in conjunction with exclusions or option range limits (defined with +`parameterrange`). Therefore it is recommended for cases where the range of allowed values does not vary with any other +camera mode or setting. ### Localization -The `localization` element is used for defining localized strings for display to users. If found, the GCS will use to replace all `description` and options `name` values found in the file with the strings defined here. Here is an example for German localization (de_DE): +The `localization` element is used for defining localized strings for display to users. If found, the GCS will use to +replace all `description` and options `name` values found in the file with the strings defined here. Here is an example +for German localization (de_DE): + + ```XML @@ -305,24 +328,35 @@ The `localization` element is used for defining localized strings for display to ``` -When the GCS loads and parses the XML file, it will check and see if it can find a localized version appropriate to the system language. If it finds a localisation, it will proceed to replace all occurrences of `original` with `translated`. If something is not found, the default English string is used. You can have as many locales as deemed necessary. + + +When the GCS loads and parses the XML file, it will check and see if it can find a localized version appropriate to the +system language. If it finds a localisation, it will proceed to replace all occurrences of `original` with `translated`. +If something is not found, the default English string is used. You can have as many locales as deemed necessary. ## Protocol Definition -Once the Camera Definition File is loaded by the GCS, it will request all parameters from the camera using the [PARAM_EXT_REQUEST_LIST](../messages/common.md#PARAM_EXT_REQUEST_LIST) message. In response, the camera will send back all parameters using the [PARAM_EXT_VALUE](../messages/common.md#PARAM_EXT_VALUE) message. +Once the Camera Definition File is loaded by the GCS, it will request all parameters from the camera using the +[PARAM_EXT_REQUEST_LIST](../messages/common.md#PARAM_EXT_REQUEST_LIST) message. In response, the camera will send back +all parameters using the [PARAM_EXT_VALUE](../messages/common.md#PARAM_EXT_VALUE) message. -When the user makes a selection, the GCS will send the new option using the [PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) message and it will expect in response a [PARAM_EXT_ACK](../messages/common.md#PARAM_EXT_ACK) message. +When the user makes a selection, the GCS will send the new option using the +[PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) message and it will expect in response a +[PARAM_EXT_ACK](../messages/common.md#PARAM_EXT_ACK) message. -When the GCS requires a current option for a given parameter, it will use the [PARAM_EXT_REQUEST_READ](../messages/common.md#PARAM_EXT_REQUEST_READ) message and it will expect in response a [PARAM_EXT_VALUE](../messages/common.md#PARAM_EXT_VALUE) message. +When the GCS requires a current option for a given parameter, it will use the +[PARAM_EXT_REQUEST_READ](../messages/common.md#PARAM_EXT_REQUEST_READ) message and it will expect in response a +[PARAM_EXT_VALUE](../messages/common.md#PARAM_EXT_VALUE) message. -:::info -For more detailed information about the protocol see: [Extended Parameter Protocol](../services/parameter_ext.md). -::: +::: info For more detailed information about the protocol see: +[Extended Parameter Protocol](../services/parameter_ext.md). ::: ## Full Camera Definition File Example {#full_example} -An example camera definition file is listed below. -This can be downloaded from GitHub here: [camera_definition_example.xml](https://raw.githubusercontent.com/mavlink/mavlink-devguide/master/en/services/camera_definition_example.xml). +An example camera definition file is listed below. This can be downloaded from GitHub here: +[camera_definition_example.xml](https://raw.githubusercontent.com/mavlink/mavlink-devguide/master/en/services/camera_definition_example.xml). + + ```XML @@ -989,3 +1023,5 @@ This can be downloaded from GitHub here: [camera_definition_example.xml](https:/ ``` + + diff --git a/ko/services/component_metadata.md b/ko/services/component_metadata.md index 2b00d3b6..6897485c 100644 --- a/ko/services/component_metadata.md +++ b/ko/services/component_metadata.md @@ -45,7 +45,7 @@ The component information file types and schema are (at time of writing): | Command protocol metadata | [COMP_METADATA_TYPE_COMMANDS](../messages/common.md#COMP_METADATA_TYPE_COMMANDS) | TBD | Information about which commands and command parameters are supported via the command protocol. | | Peripheral metadata | [COMP_METADATA_TYPE_PERIPHERALS](../messages/common.md#COMP_METADATA_TYPE_PERIPHERALS) | [peripherals.schema.json](https://github.com/mavlink/mavlink/blob/master/component_metadata/peripherals.schema.json) | Information about non-MAVLink peripherals connected to vehicle (on boot). | | Event metadata | [COMP_METADATA_TYPE_EVENTS](../messages/common.md#COMP_METADATA_TYPE_EVENTS) | TBD | Information about events interface support by the vehicle. | -| Event metadata | [COMP_METADATA_TYPE_ACTUATORS](../messages/common.md#COMP_METADATA_TYPE_ACTUATORS) | [actuators.schema.json ](https://github.com/mavlink/mavlink/blob/master/component_metadata/actuators.schema.json) | Metadata for actuator configuration (motors, servos and vehicle geometry) and testing. | +| Event metadata | [COMP_METADATA_TYPE_ACTUATORS](../messages/common.md#COMP_METADATA_TYPE_ACTUATORS) | [actuators.schema.json](https://github.com/mavlink/mavlink/blob/master/component_metadata/actuators.schema.json) | Metadata for actuator configuration (motors, servos and vehicle geometry) and testing. | All schema files are _versioned_ using a `version` integer. @@ -131,7 +131,7 @@ In summary: 2. The component will ACK the command and immediately send the requested `COMPONENT_METADATA` message (populated with URI and CRC for the general metadata file). - A `CMD_ACK` of anything other than `MAV_RESULT_ACCEPTED` indicates the protocol is not supported (sequence completes). 3. GCS waits for the `COMPONENT_METADATA` message - - If not recieved the GCS should resend the request (typically in the application level). + - If not received the GCS should resend the request (typically in the application level). - Once information is received: - the GCS checks if `COMPONENT_METADATA.file_crc` matches its cached CRC value. If so, there is no need to download the [general metadata file](#COMP_METADATA_TYPE_GENERAL) (or other files it references) as it has not changed since the last download. diff --git a/ko/services/gimbal_v2.md b/ko/services/gimbal_v2.md index b1e42118..b62d3f73 100644 --- a/ko/services/gimbal_v2.md +++ b/ko/services/gimbal_v2.md @@ -323,10 +323,10 @@ This is the set of messages/enums for communicating with the gimbal manager (by | [MAV_CMD_DO_GIMBAL_MANAGER_TRACK_POINT](../messages/common.md#MAV_CMD_DO_GIMBAL_MANAGER_TRACK_POINT) | If the gimbal manager supports visual tracking (`GIMBAL_MANAGER_CAP_FLAGS_HAS_TRACKING_POINT` is set), this command allows to initiate the tracking. Such a tracking gimbal manager would usually be an integrated camera/gimbal, or alternatively a companion computer connected to a camera. | | [MAV_CMD_DO_GIMBAL_MANAGER_TRACK_RECTANGLE](../messages/common.md#MAV_CMD_DO_GIMBAL_MANAGER_TRACK_RECTANGLE) | If the gimbal supports visual tracking (GIMBAL_MANAGER_CAP_FLAGS_HAS_TRACKING_RECTANGLE is set), this command allows to initiate the tracking. Such a tracking gimbal manager would usually be an integrated camera/gimbal, or alternatively a companion computer connected to a camera. | -| Enum | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [GIMBAL_MANAGER_FLAGS](../messages/common.md#GIMBAL_MANAGER_FLAGS) | Flags for high level gimbal manager operation.
The first 16 bytes are identical to the [GIMBAL_DEVICE_FLAGS](#GIMBAL_DEVICE_FLAGS). Used in [MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW](#MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW), [GIMBAL_MANAGER_STATUS ](#GIMBAL_MANAGER_STATUS), [GIMBAL_MANAGER_SET_ATTITUDE](#GIMBAL_MANAGER_SET_ATTITUDE). | -| [GIMBAL_MANAGER_CAP_FLAGS](../messages/common.md#GIMBAL_MANAGER_CAP_FLAGS) | Gimbal manager high level capability flags (bitmap).
The first 16 bits are identical to the GIMBAL_DEVICE_CAP_FLAGS which are identical with GIMBAL_DEVICE_FLAGS. However, the gimbal manager does not need to copy the flags from the gimbal but can also enhance the capabilities and thus add flags. Used in [GIMBAL_MANAGER_INFORMATION ](#GIMBAL_MANAGER_INFORMATION) | +| Enum | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [GIMBAL_MANAGER_FLAGS](../messages/common.md#GIMBAL_MANAGER_FLAGS) | Flags for high level gimbal manager operation.
The first 16 bytes are identical to the [GIMBAL_DEVICE_FLAGS](#GIMBAL_DEVICE_FLAGS). Used in [MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW](#MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW), [GIMBAL_MANAGER_STATUS](#GIMBAL_MANAGER_STATUS), [GIMBAL_MANAGER_SET_ATTITUDE](#GIMBAL_MANAGER_SET_ATTITUDE). | +| [GIMBAL_MANAGER_CAP_FLAGS](../messages/common.md#GIMBAL_MANAGER_CAP_FLAGS) | Gimbal manager high level capability flags (bitmap).
The first 16 bits are identical to the GIMBAL_DEVICE_CAP_FLAGS which are identical with GIMBAL_DEVICE_FLAGS. However, the gimbal manager does not need to copy the flags from the gimbal but can also enhance the capabilities and thus add flags. Used in [GIMBAL_MANAGER_INFORMATION](#GIMBAL_MANAGER_INFORMATION) | ### Gimbal Device Messages diff --git a/ko/services/illuminator.md b/ko/services/illuminator.md index ef0670c2..85caec57 100644 --- a/ko/services/illuminator.md +++ b/ko/services/illuminator.md @@ -48,7 +48,7 @@ These illuminators have built-in MAVLink support: Illuminators are expected to follow the [Heartbeat/Connection Protocol](../services/heartbeat.md) and send a constant flow of heartbeats (nominally at 1Hz). Illuminators are identified via their type [MAV\_TYPE\_ILLUMINATOR](#MAV_TYPE_ILLUMINATOR). Individual illuminators are distinguished via their unique component ID, which by default should be [MAV\_COMP\_ID\_ILLUMINATOR](#MAV_COMP_ID_ILLUMINATOR) (though this is not mandated and any ID may be used). -Once a heartbeat is received, the drone can then send a [MAV\_CMD\_REQUEST\_MESSAGE ][MAV_CMD_REQUEST_MESSAGE] command to the illuminator to receive information, set settings, or control the illuminator. +Once a heartbeat is received, the drone can then send a [MAV\_CMD\_REQUEST\_MESSAGE][MAV_CMD_REQUEST_MESSAGE] command to the illuminator to receive information, set settings, or control the illuminator. An example below illustrates how a drone can request the status of the illuminator. + - [MAV_CMD_NAV_LOITER_TO_ALT](../messages/common.md#MAV_CMD_NAV_LOITER_TO_ALT) items can also be added to the rally point plan. + Any of these declared immediately after `MAV_CMD_NAV_RALLY_POINT` may be used as [VTOL approach loiter waypoints](https://docs.px4.io/main/en/flight_modes_vtol/return#vtol-rally-point-approach-loiters). + VTOL can use these points in a fixed-wing return to define the location and radius of VTOL loiter-descent, and heading, prior to traveling to the final rally point. + If multiple loiter waypoints are specified, selection is autopilot-specific. + + ::: info + This is non-standard because it is only implemented by PX4 and broadly opposed by ArduPilot (limited initial discussion). + The argument is that rally points are not designed for this purpose, and that adding new allowed waypoints turns them into mini-missions. + These might be implemented in the mission plan. + ::: + +Mission operation cancellation works for both mission upload and download (sets system to idle). Source code: -- [src/modules/mavlink/mavlink_mission.cpp](https://github.com/PX4/Firmware/blob/master/src/modules/mavlink/mavlink_mission.cpp) +- [src/modules/mavlink/mavlink_mission.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_mission.cpp) ### QGroundControl diff --git a/ko/services/offboard_control.md b/ko/services/offboard_control.md index 42b5e580..2ad1fec5 100644 --- a/ko/services/offboard_control.md +++ b/ko/services/offboard_control.md @@ -5,7 +5,7 @@ The offboard control interface allows an external controller to send low-level a This is commonly used to provide external control of a real-time flight stack from a companion/mission computer, for example, in order to implement features such as obstacle avoidance or collision prevention. Generally setpoints are only obeyed in a specific flight-stack mode. -The flight stack requires the setpoints to be recieved for some time before it will allow the mode to be enabled, and will switch out of the mode if setpoints are no longer received. +The flight stack requires the setpoints to be received for some time before it will allow the mode to be enabled, and will switch out of the mode if setpoints are no longer received. The particular types of setpoints that are supported, if any, depend on the vehicle type and flight stack. diff --git a/ko/services/parameter.md b/ko/services/parameter.md index 56a6e7cf..0c2d4e04 100644 --- a/ko/services/parameter.md +++ b/ko/services/parameter.md @@ -135,13 +135,13 @@ If a component can add parameters during (or after) initial synchronization the If working with a non-compliant component, the risk of problems when working with parameters can be _reduced_ (but not removed) if: - The `param_id` is used to read parameters where possible (the mapping of `param_index` to a particular parameter might change on systems where parameters can be added/removed). -- [PARAM_VALUE.param_count](../messages/common.md#PARAM_VALUE) is monitored and the parameter set re-sychronised on change. +- [PARAM_VALUE.param_count](../messages/common.md#PARAM_VALUE) is monitored and the parameter set re-synchronised on change. ### Parameter Synchronisation Can Fail {#monitoring_unreliable} A GCS (or other component) that wants to [cache parameters](#parameter_caching) with a component and keep them synchronised, should first get all parameters, and then track any new parameter changes by monitoring for `PARAM_VALUE` messages (updating their internal list appropriately). -This works for the originator of a parameter change, which can resend the request if an expected `PARAM_VALUE` is not recieved. +This works for the originator of a parameter change, which can resend the request if an expected `PARAM_VALUE` is not received. This approach may fail for components that did not originate the change, as they will not know about updates they do not receive (i.e. if messages are dropped). A component may mitigate this risk by, for example, sending the `PARAM_VALUE` multiple times after a parameter is changed. @@ -242,7 +242,7 @@ The sequence of operations is: 1. GCS (client) sends [PARAM_SET](../messages/common.md#PARAM_VALUE) specifying the param name to update and its new value (also target system/component and the param type). -2. GCS starts timout waiting for acknowledgment (in the form of a [PARAM_VALUE](../messages/common.md#PARAM_VALUE) message). +2. GCS starts timeout waiting for acknowledgment (in the form of a [PARAM_VALUE](../messages/common.md#PARAM_VALUE) message). 3. Drone writes parameter and responds by _broadcasting_ a `PARAM_VALUE` containing the updated parameter value to all components/systems. diff --git a/ko/services/parameter_ext.md b/ko/services/parameter_ext.md index 70b04e1d..7ae33e0e 100644 --- a/ko/services/parameter_ext.md +++ b/ko/services/parameter_ext.md @@ -141,7 +141,7 @@ When requesting parameters from such a components, the risk of problems can be _ - The `param_id` is used to read parameters where possible (the mapping of `param_index` to a particular parameter may change on systems where parameters can be added/removed). - [PARAM_EXT_VALUE.param_count](../messages/common.md#PARAM_EXT_VALUE) may be monitored. - If this changes the parameter set should be re-sychronised. + If this changes the parameter set should be re-synchronised. ### Parameter Synchronisation Can Fail {#monitoring_unreliable} @@ -263,7 +263,7 @@ sequenceDiagram; The sequence of operations is: 1. GCS (client) sends [PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) specifying the param name to update and its new value (also target system/component and the param type). -2. GCS starts timout waiting for acknowledgment (in the form of a [PARAM_EXT_ACK](../messages/common.md#PARAM_EXT_ACK) message). +2. GCS starts timeout waiting for acknowledgment (in the form of a [PARAM_EXT_ACK](../messages/common.md#PARAM_EXT_ACK) message). 3. Drone (starts to) write parameter and responds by _broadcasting_ a `PARAM_EXT_ACK`. - If the write succeeded the `PARAM_EXT_ACK` will contain a result of `PARAM_ACK_ACCEPTED` and the updated parameter value. - If the parameter was unknown or of an unsupported type `PARAM_EXT_ACK` will contain a result of `PARAM_ACK_VALUE_UNSUPPORTED` and the current parameter value will be XXXXX. diff --git a/zh/about/faq.md b/zh/about/faq.md index bdd2fead..d6dbcf80 100644 --- a/zh/about/faq.md +++ b/zh/about/faq.md @@ -21,8 +21,8 @@
MAVLink版本如何选择?
-
应该尽可能使用 MAVLink 2 协议(它修复了早期版本的一些限制)。 - MAVLink 2 库也支持 MAVLink 1,所以也可以在需要时使用它们与旧系统通信。 +
应该尽可能使用 MAVLink 2 协议(它修复了早期版本的一些限制)。 + MAVLink 2 库也支持 MAVLink 1,所以也可以在需要时使用它们与旧系统通信。
MAVLink更新/发布周期?
@@ -57,13 +57,15 @@
MAVLink 是无人飞行器中对安全至关重要的一部分。 较差的通信链路会丢失好多数据包,这会将所监视的飞机置于不安全的状态。 MAVLink 使用数据包头中的序列号来计算丢包率并将其反馈给另一方,使得飞行器或地面站能采取相应措施。
为什么要在数据包的校验和中使用 CRC_EXTRA 呢?
-
CRC_EXTRA CRC 用来验证发送者和接收者是否都对链路上的消息格式有同样地解释(对于轻量级协议时必须的,因为消息结构信息并不包含在有效载荷中)。 +
The CRC_EXTRA CRC is used to verify that the sender and receiver have a shared understanding of the over-the-wire format of a particular message + (required because as a lightweight protocol, the message structure isn't included in the payload).

-在 MAVLink 0.9 版中没有使用 CRC(尽管检查了数据包的长度)。 - 如果 XML 所描述的消息内容偶尔被改变而长度没有改变,这样就会破坏消息中的数据域。
+在 MAVLink 0.9 版中没有使用 CRC(尽管检查了数据包的长度)。 + There were a small number of cases where XML describing a message changed without changing the message length, + leading to badly corrupted fields when messages were read.
我可以帮助编解码子程序或增加其它功能吗? 我可以帮助编解码子程序或增加其它功能吗? 可以更改 MAVLink 吗?
-
可以,在安全测试时必须十分小心。 +
可以,在安全测试时必须十分小心。 可以,在安全测试时必须十分小心。 作为多个自动驾驶仪中对安全至关重要的组件,MAVLink 已经经历了多年的测试。 请向MAVLink的技术支持推荐你所想到的新功能。 请在 MAVLink 支持频道 上提新功能的建议。
如何进一步减少生成的 C 库大小?
diff --git a/zh/guide/xml_schema.md b/zh/guide/xml_schema.md index 6eaac209..b46c5cc9 100644 --- a/zh/guide/xml_schema.md +++ b/zh/guide/xml_schema.md @@ -391,7 +391,7 @@ The tag is usually applied like this (including the comment): Attributes: - `since` (optional): A datestamp indicating when the corresponding element was proposed. - This should be formatted as such as `YYYYMM` + This should be formatted as such as `YYYY-MM` This hints to the maintainer team when WIP elements should be reviewed for addition or removal. Nested elements diff --git a/zh/mavgen_c/index.md b/zh/mavgen_c/index.md index d03de45f..c2e87ea8 100644 --- a/zh/mavgen_c/index.md +++ b/zh/mavgen_c/index.md @@ -44,7 +44,7 @@ If you generate your own headers, you will have to add their output location to When compiling the project, make sure to add the include directory: ```sh -$ gcc ... -I generated/include ... +gcc ... -I generated/include ... ``` ## Adding Library to Cmake Project diff --git a/zh/messages/common.md b/zh/messages/common.md index 893419a7..91f4d3a4 100644 --- a/zh/messages/common.md +++ b/zh/messages/common.md @@ -4611,23 +4611,33 @@ Indicates the severity level, generally used for status messages to indicate the [SERIAL_CONTROL](#SERIAL_CONTROL) device types -| 值 | Name | 描述 | -| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------- | -| 0 | [SERIAL_CONTROL_DEV_TELEM1](#SERIAL_CONTROL_DEV_TELEM1) | First telemetry port | -| 1 | [SERIAL_CONTROL_DEV_TELEM2](#SERIAL_CONTROL_DEV_TELEM2) | Second telemetry port | -| 2 | [SERIAL_CONTROL_DEV_GPS1](#SERIAL_CONTROL_DEV_GPS1) | First GPS port | -| 3 | [SERIAL_CONTROL_DEV_GPS2](#SERIAL_CONTROL_DEV_GPS2) | Second GPS port | -| 10 | [SERIAL_CONTROL_DEV_SHELL](#SERIAL_CONTROL_DEV_SHELL) | system shell | -| 100 | [SERIAL_CONTROL_SERIAL0](#SERIAL_CONTROL_SERIAL0) | SERIAL0 | -| 101 | [SERIAL_CONTROL_SERIAL1](#SERIAL_CONTROL_SERIAL1) | SERIAL1 | -| 102 | [SERIAL_CONTROL_SERIAL2](#SERIAL_CONTROL_SERIAL2) | SERIAL2 | -| 103 | [SERIAL_CONTROL_SERIAL3](#SERIAL_CONTROL_SERIAL3) | SERIAL3 | -| 104 | [SERIAL_CONTROL_SERIAL4](#SERIAL_CONTROL_SERIAL4) | SERIAL4 | -| 105 | [SERIAL_CONTROL_SERIAL5](#SERIAL_CONTROL_SERIAL5) | SERIAL5 | -| 106 | [SERIAL_CONTROL_SERIAL6](#SERIAL_CONTROL_SERIAL6) | SERIAL6 | -| 107 | [SERIAL_CONTROL_SERIAL7](#SERIAL_CONTROL_SERIAL7) | SERIAL7 | -| 108 | [SERIAL_CONTROL_SERIAL8](#SERIAL_CONTROL_SERIAL8) | SERIAL8 | -| 109 | [SERIAL_CONTROL_SERIAL9](#SERIAL_CONTROL_SERIAL9) | SERIAL9 | +| 值 | Name | 描述 | +| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------- | +| 0 | [SERIAL_CONTROL_DEV_TELEM1](#SERIAL_CONTROL_DEV_TELEM1) | First telemetry port | +| 1 | [SERIAL_CONTROL_DEV_TELEM2](#SERIAL_CONTROL_DEV_TELEM2) | Second telemetry port | +| 2 | [SERIAL_CONTROL_DEV_GPS1](#SERIAL_CONTROL_DEV_GPS1) | First GPS port | +| 3 | [SERIAL_CONTROL_DEV_GPS2](#SERIAL_CONTROL_DEV_GPS2) | Second GPS port | +| 4 | [SERIAL_CONTROL_DEV_TELEM3](#SERIAL_CONTROL_DEV_TELEM3) | Third telemetry port | +| 5 | [SERIAL_CONTROL_DEV_TELEM4](#SERIAL_CONTROL_DEV_TELEM4) | Fourth telemetry port | +| 10 | [SERIAL_CONTROL_DEV_SHELL](#SERIAL_CONTROL_DEV_SHELL) | system shell | +| 20 | [SERIAL_CONTROL_DEV_ESC0](#SERIAL_CONTROL_DEV_ESC0) | Electronic Speed Controller 0 | +| 21 | [SERIAL_CONTROL_DEV_ESC1](#SERIAL_CONTROL_DEV_ESC1) | Electronic Speed Controller 1 | +| 22 | [SERIAL_CONTROL_DEV_ESC2](#SERIAL_CONTROL_DEV_ESC2) | Electronic Speed Controller 2 | +| 23 | [SERIAL_CONTROL_DEV_ESC3](#SERIAL_CONTROL_DEV_ESC3) | Electronic Speed Controller 3 | +| 24 | [SERIAL_CONTROL_DEV_ESC4](#SERIAL_CONTROL_DEV_ESC4) | Electronic Speed Controller 4 | +| 25 | [SERIAL_CONTROL_DEV_ESC5](#SERIAL_CONTROL_DEV_ESC5) | Electronic Speed Controller 5 | +| 26 | [SERIAL_CONTROL_DEV_ESC6](#SERIAL_CONTROL_DEV_ESC6) | Electronic Speed Controller 6 | +| 27 | [SERIAL_CONTROL_DEV_ESC7](#SERIAL_CONTROL_DEV_ESC7) | Electronic Speed Controller 7 | +| 100 | [SERIAL_CONTROL_SERIAL0](#SERIAL_CONTROL_SERIAL0) | SERIAL0 | +| 101 | [SERIAL_CONTROL_SERIAL1](#SERIAL_CONTROL_SERIAL1) | SERIAL1 | +| 102 | [SERIAL_CONTROL_SERIAL2](#SERIAL_CONTROL_SERIAL2) | SERIAL2 | +| 103 | [SERIAL_CONTROL_SERIAL3](#SERIAL_CONTROL_SERIAL3) | SERIAL3 | +| 104 | [SERIAL_CONTROL_SERIAL4](#SERIAL_CONTROL_SERIAL4) | SERIAL4 | +| 105 | [SERIAL_CONTROL_SERIAL5](#SERIAL_CONTROL_SERIAL5) | SERIAL5 | +| 106 | [SERIAL_CONTROL_SERIAL6](#SERIAL_CONTROL_SERIAL6) | SERIAL6 | +| 107 | [SERIAL_CONTROL_SERIAL7](#SERIAL_CONTROL_SERIAL7) | SERIAL7 | +| 108 | [SERIAL_CONTROL_SERIAL8](#SERIAL_CONTROL_SERIAL8) | SERIAL8 | +| 109 | [SERIAL_CONTROL_SERIAL9](#SERIAL_CONTROL_SERIAL9) | SERIAL9 | ### SERIAL_CONTROL_FLAG {#SERIAL_CONTROL_FLAG} diff --git a/zh/messages/dialects.md b/zh/messages/dialects.md index fe9e7663..9084f712 100644 --- a/zh/messages/dialects.md +++ b/zh/messages/dialects.md @@ -17,20 +17,19 @@ Dialects are not managed by this project! The dialect definitions are: -- [csAirLink.xml](csAirLink.md) +- [storm32.xml](storm32.md) +- [paparazzi.xml](paparazzi.md) +- [stemstudios.xml](stemstudios.md) +- [AVSSUAS.xml](AVSSUAS.md) +- [uAvionix.xml](uAvionix.md) - [loweheiser.xml](loweheiser.md) -- [cubepilot.xml](cubepilot.md) - [ASLUAV.xml](ASLUAV.md) - [ardupilotmega.xml](ardupilotmega.md) -- [matrixpilot.xml](matrixpilot.md) - [marsh.xml](marsh.md) -- [uAvionix.xml](uAvionix.md) -- [AVSSUAS.xml](AVSSUAS.md) -- [storm32.xml](storm32.md) -- [ualberta.xml](ualberta.md) -- [paparazzi.xml](paparazzi.md) +- [csAirLink.xml](csAirLink.md) - [icarous.xml](icarous.md) -- [stemstudios.xml](stemstudios.md) +- [cubepilot.xml](cubepilot.md) +- [ualberta.xml](ualberta.md) Note that dialects may `include` [MAVLink-Standard Definitions](index.md) or other dialects. Up to 5 levels of XML file nesting are allowed - see `MAXIMUM_INCLUDE_FILE_NESTING` in [mavgen.py](https://github.com/ArduPilot/pymavlink/blob/master/generator/mavgen.py#L44). diff --git a/zh/messages/matrixpilot.md b/zh/messages/matrixpilot.md index b579fd7f..8ad1aac7 100644 --- a/zh/messages/matrixpilot.md +++ b/zh/messages/matrixpilot.md @@ -455,15 +455,15 @@ Backwards compatible version of [SERIAL_UDB_EXTRA](#SERIAL_UDB_EXTRA) F22 format Action required when performing [CMD_PREFLIGHT_STORAGE](#CMD_PREFLIGHT_STORAGE) -| 值 | Name | 描述 | -| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -| 0 | [MAV_PFS_CMD_READ_ALL](#MAV_PFS_CMD_READ_ALL) | 从存储读取所有参数 | -| 1 | [MAV_PFS_CMD_WRITE_ALL](#MAV_PFS_CMD_WRITE_ALL) | 将所有参数写入到存储 | -| 2 | [MAV_PFS_CMD_CLEAR_ALL](#MAV_PFS_CMD_CLEAR_ALL) | 清除存储中的所有参数 | -| 3 | [MAV_PFS_CMD_READ_SPECIFIC](#MAV_PFS_CMD_READ_SPECIFIC) | 从存储读取特定参数 | -| 4 | [MAV_PFS_CMD_WRITE_SPECIFIC](#MAV_PFS_CMD_WRITE_SPECIFIC) | 将特定参数写入到存储 | -| 5 | [MAV_PFS_CMD_CLEAR_SPECIFIC](#MAV_PFS_CMD_CLEAR_SPECIFIC) | 清除存储中的特定参数 | -| 6 | [MAV_PFS_CMD_DO_NOTHING](#MAV_PFS_CMD_DO_NOTHING) | 不进行任何操作 | +| 值 | Name | 描述 | +| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | +| 0 | [MAV_PFS_CMD_READ_ALL](#MAV_PFS_CMD_READ_ALL) | 从存储读取所有参数 | +| 1 | [MAV_PFS_CMD_WRITE_ALL](#MAV_PFS_CMD_WRITE_ALL) | 将所有参数写入到存储 | +| 2 | [MAV_PFS_CMD_CLEAR_ALL](#MAV_PFS_CMD_CLEAR_ALL) | Clear all parameters in storage | +| 3 | [MAV_PFS_CMD_READ_SPECIFIC](#MAV_PFS_CMD_READ_SPECIFIC) | 从存储读取特定参数 | +| 4 | [MAV_PFS_CMD_WRITE_SPECIFIC](#MAV_PFS_CMD_WRITE_SPECIFIC) | 将特定参数写入到存储 | +| 5 | [MAV_PFS_CMD_CLEAR_SPECIFIC](#MAV_PFS_CMD_CLEAR_SPECIFIC) | 清除存储中的特定参数 | +| 6 | [MAV_PFS_CMD_DO_NOTHING](#MAV_PFS_CMD_DO_NOTHING) | 不进行任何操作 | ## Commands (MAV_CMD) {#mav_commands} diff --git a/zh/messages/standard.md b/zh/messages/standard.md index 3b28b45c..6dcab9b7 100644 --- a/zh/messages/standard.md +++ b/zh/messages/standard.md @@ -2,7 +2,7 @@ # 方言:MAVLINK 标准消息集(standard.xml) -MAVLink _standard_ 消息集包含了由 MAVLink 项目管理的 _标准_ 定义。 +The MAVLink _standard_ message set contains _standard_ definitions that are managed by the MAVLink project. 这些定义是所有飞行控制系统/地面站都应予以实施的,并且很可能以兼容的方式来落实。 原始定义在 [standard.xml](https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/standard.xml 中定义。 diff --git a/zh/messages/uAvionix.md b/zh/messages/uAvionix.md index da5b56ed..83e7a7d4 100644 --- a/zh/messages/uAvionix.md +++ b/zh/messages/uAvionix.md @@ -62,24 +62,24 @@ Static data to configure the ADS-B transponder (send within 10 sec of a POR and Dynamic data used to generate ADS-B out transponder data (send at 5Hz) -| Field Name | Type | Units | 值 | 描述 | -| --------------- | ---------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -| utcTime | `uint32_t` | s | | 自GPS时代以来的UTC时间(以秒为单位)(1980年1月6日)。 如果未知设置为 UINT32_MAX | -| gpsLat | `int32_t` | degE7 | | 纬度WGS84(度\* 1E7)。 如果未知设置为 UINT32_MAX | -| gpsLon | `int32_t` | degE7 | | 经度WGS84(度\* 1E7)。 如果未知设置为 UINT32_MAX | -| gpsAlt | `int32_t` | 毫米 | | 高度(WGS84)。 UP +ve。 如果未知设置为 UINT32_MAX | -| gpsFix | `uint8_t` | | [UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX](#UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX) | 0-1:无修正,2:2D 修正,3:3D 修正,4:DGPS,5:RTK | -| numSats | `uint8_t` | | | 可见卫星数量。 如果未知设置为 UINT8_MAX | -| baroAltMSL | `int32_t` | 毫巴 | | 相对于标准大气层1013.2毫巴和不带校正高度(MSL)的几何压力高度(MSL),而不受校正高度(m \* 1E-3)。 (up +ve)。 如果未知设置为 UINT32_MAX | -| accuracyHor | `uint32_t` | 毫米 | | 水平精度单位为毫米(m\*1E-3)。 如果未知设置为 UINT32_MAX | -| accuracyVert | `uint16_t` | 厘米 | | 以厘米为单位的垂直精度。 如果未知设置为 UINT16_MAX | -| accuracyVel | `uint16_t` | 毫米/秒 | | 水平精度单位为毫米(m\*1E-3)。 如果未知设置为 UINT16_MAX | -| velVert | `int16_t` | 厘米/秒 | | GPS垂直速度,单位为cm / s。 如果未知设置为 UINT16_MAX | -| velNS | `int16_t` | 厘米/秒 | | 地面上的南北速度,以cm / s为单位 North + ve。 如果未知设置为 UINT16_MAX | -| VelEW | `int16_t` | 厘米/秒 | | 地面上东西方向的速度,以cm / s 为单位 East + ve。 如果未知设置为 UINT16_MAX | -| emergencyStatus | `uint8_t` | | [UAVIONIX_ADSB_EMERGENCY_STATUS](#UAVIONIX_ADSB_EMERGENCY_STATUS) | 紧急消息 | -| state | `uint16_t` | | [UAVIONIX_ADSB_OUT_DYNAMIC_STATE](#UAVIONIX_ADSB_OUT_DYNAMIC_STATE) | ADS-B应答器动态输入状态标志 | -| squawk | `uint16_t` | | | 模式A代码(对于VFR,通常为1200 [0x04B0]) | +| Field Name | Type | Units | 值 | 描述 | +| --------------- | ---------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| utcTime | `uint32_t` | s | | 自GPS时代以来的UTC时间(以秒为单位)(1980年1月6日)。 如果未知设置为 UINT32_MAX | +| gpsLat | `int32_t` | degE7 | | Latitude WGS84 (deg \* 1E7). 如果未知设置为 UINT32_MAX | +| gpsLon | `int32_t` | degE7 | | Longitude WGS84 (deg \* 1E7). 如果未知设置为 UINT32_MAX | +| gpsAlt | `int32_t` | 毫米 | | 高度(WGS84)。 UP +ve。 如果未知设置为 UINT32_MAX | +| gpsFix | `uint8_t` | | [UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX](#UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX) | 0-1:无修正,2:2D 修正,3:3D 修正,4:DGPS,5:RTK | +| numSats | `uint8_t` | | | 可见卫星数量。 如果未知设置为 UINT8_MAX | +| baroAltMSL | `int32_t` | 毫巴 | | Barometric pressure altitude (MSL) relative to a standard atmosphere of 1013.2 mBar and NOT bar corrected altitude (m \* 1E-3). (up +ve)。 如果未知设置为 UINT32_MAX | +| accuracyHor | `uint32_t` | 毫米 | | Horizontal accuracy in mm (m \* 1E-3). 如果未知设置为 UINT32_MAX | +| accuracyVert | `uint16_t` | 厘米 | | 以厘米为单位的垂直精度。 如果未知设置为 UINT16_MAX | +| accuracyVel | `uint16_t` | 毫米/秒 | | Velocity accuracy in mm/s (m \* 1E-3). 如果未知设置为 UINT16_MAX | +| velVert | `int16_t` | 厘米/秒 | | GPS垂直速度,单位为cm / s。 如果未知设置为 UINT16_MAX | +| velNS | `int16_t` | 厘米/秒 | | 地面上的南北速度,以cm / s为单位 North + ve。 如果未知设置为 UINT16_MAX | +| VelEW | `int16_t` | 厘米/秒 | | 地面上东西方向的速度,以cm / s 为单位 East + ve。 如果未知设置为 UINT16_MAX | +| emergencyStatus | `uint8_t` | | [UAVIONIX_ADSB_EMERGENCY_STATUS](#UAVIONIX_ADSB_EMERGENCY_STATUS) | 紧急消息 | +| state | `uint16_t` | | [UAVIONIX_ADSB_OUT_DYNAMIC_STATE](#UAVIONIX_ADSB_OUT_DYNAMIC_STATE) | ADS-B应答器动态输入状态标志 | +| squawk | `uint16_t` | | | 模式A代码(对于VFR,通常为1200 [0x04B0]) | ### UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (10003) {#UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT} @@ -117,14 +117,14 @@ Request messages. Control message with all data sent in UCP control message. -| Field Name | Type | Units | 值 | 描述 | -| ------------------------------ | ---------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| state | `uint8_t` | | [UAVIONIX_ADSB_OUT_CONTROL_STATE](#UAVIONIX_ADSB_OUT_CONTROL_STATE) | ADS-B transponder control state flags | -| baroAltMSL | `int32_t` | 毫巴 | | 相对于标准大气层1013.2毫巴和不带校正高度(MSL)的几何压力高度(MSL),而不受校正高度(m \* 1E-3)。 (up +ve)。 如果未知设置为 UINT32_MAX | -| squawk | `uint16_t` | | | 模式A代码(对于VFR,通常为1200 [0x04B0]) | -| emergencyStatus | `uint8_t` | | [UAVIONIX_ADSB_EMERGENCY_STATUS](#UAVIONIX_ADSB_EMERGENCY_STATUS) | 紧急消息 | -| flight_id | `char[8]` | | | Flight Identification: 8 ASCII characters, '0' through '9', 'A' through 'Z' or space. Spaces (0x20) used as a trailing pad character, or when call sign is unavailable. | -| x_bit | `uint8_t` | | [UAVIONIX_ADSB_XBIT](#UAVIONIX_ADSB_XBIT) | X-Bit enable (military transponders only) | +| Field Name | Type | Units | 值 | 描述 | +| ------------------------------ | ---------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| state | `uint8_t` | | [UAVIONIX_ADSB_OUT_CONTROL_STATE](#UAVIONIX_ADSB_OUT_CONTROL_STATE) | ADS-B transponder control state flags | +| baroAltMSL | `int32_t` | 毫巴 | | Barometric pressure altitude (MSL) relative to a standard atmosphere of 1013.2 mBar and NOT bar corrected altitude (m \* 1E-3). (up +ve)。 如果未知设置为 UINT32_MAX | +| squawk | `uint16_t` | | | 模式A代码(对于VFR,通常为1200 [0x04B0]) | +| emergencyStatus | `uint8_t` | | [UAVIONIX_ADSB_EMERGENCY_STATUS](#UAVIONIX_ADSB_EMERGENCY_STATUS) | 紧急消息 | +| flight_id | `char[8]` | | | Flight Identification: 8 ASCII characters, '0' through '9', 'A' through 'Z' or space. Spaces (0x20) used as a trailing pad character, or when call sign is unavailable. | +| x_bit | `uint8_t` | | [UAVIONIX_ADSB_XBIT](#UAVIONIX_ADSB_XBIT) | X-Bit enable (military transponders only) | ### UAVIONIX_ADSB_OUT_STATUS (10008) {#UAVIONIX_ADSB_OUT_STATUS} diff --git a/zh/services/arm_authorization.md b/zh/services/arm_authorization.md index cd934d88..1268ef32 100644 --- a/zh/services/arm_authorization.md +++ b/zh/services/arm_authorization.md @@ -7,7 +7,7 @@ This is required to comply with [NASA UTM](https://utm.arc.nasa.gov/), but may a ## Authorization Flow -[![Mermaid Squence: Authorization Flow](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtO1xuICAgIHBhcnRpY2lwYW50IERyb25lXG4gICAgcGFydGljaXBhbnQgUmVtb3RlIGNvbnRyb2wvUUNTXG4gICAgcGFydGljaXBhbnQgQXJtIGF1dGhvcml6ZXJcbiAgICBwYXJ0aWNpcGFudCBJbnRlcm5ldFxuXG4gICAgUmVtb3RlIGNvbnRyb2wvUUNTLT4-RHJvbmU6IFJlcXVlc3QgYXJtXG4gICAgRHJvbmUtPj5Bcm0gYXV0aG9yaXplcjogQ09NTUFORF9MT05HIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUXG4gICAgQXJtIGF1dGhvcml6ZXItPj5Ecm9uZTogQ09NTUFORF9BQ0sgcmVzdWx0PU1BVl9SRVNVTFRfSU5fUFJPR1JFU1NcbiAgICBBcm0gYXV0aG9yaXplci0-PkRyb25lOiAob3B0aW9uYWwpUmVxdWVzdCBpbmZvcm1hdGlvbiBhYm91dCBtaXNzaW9uLCBiYXR0ZXJ5IGxldmVsIGFuZCBldGMuXG4gICAgQXJtIGF1dGhvcml6ZXItPj5JbnRlcm5ldDogKG9wdGlvbmFsKVJlcXVlc3QgaW5mb3JtYXRpb24gYWJvdXQgd2VhdGhlciwgYWVyb3NwYWNlIHRyYWZpYyBhbmQgZXRjLlxuICAgIEFybSBhdXRob3JpemVyLT4-RHJvbmU6IENPTU1BTkRfQUNLIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUIHJlc3VsdD1BQ0NFUFRFRCwgVEVNUE9SQVJJTFlfUkVKRUNURUQgb3IgREVOSUVEXG4gICAgRHJvbmUtPj5SZW1vdGUgY29udHJvbC9RQ1M6IFFDUyBDT01NQU5EX0FDSyBjb21tYW5kPU1BVl9DTURfQ09NUE9ORU5UX0FSTV9ESVNBUk0gcmVzdWx0PUFDQ0VQVEVELCBURU1QT1JBUklMWV9SRUpFQ1RFRCBvciBERU5JRUQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtO1xuICAgIHBhcnRpY2lwYW50IERyb25lXG4gICAgcGFydGljaXBhbnQgUmVtb3RlIGNvbnRyb2wvUUNTXG4gICAgcGFydGljaXBhbnQgQXJtIGF1dGhvcml6ZXJcbiAgICBwYXJ0aWNpcGFudCBJbnRlcm5ldFxuXG4gICAgUmVtb3RlIGNvbnRyb2wvUUNTLT4-RHJvbmU6IFJlcXVlc3QgYXJtXG4gICAgRHJvbmUtPj5Bcm0gYXV0aG9yaXplcjogQ09NTUFORF9MT05HIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUXG4gICAgQXJtIGF1dGhvcml6ZXItPj5Ecm9uZTogQ09NTUFORF9BQ0sgcmVzdWx0PU1BVl9SRVNVTFRfSU5fUFJPR1JFU1NcbiAgICBBcm0gYXV0aG9yaXplci0-PkRyb25lOiAob3B0aW9uYWwpUmVxdWVzdCBpbmZvcm1hdGlvbiBhYm91dCBtaXNzaW9uLCBiYXR0ZXJ5IGxldmVsIGFuZCBldGMuXG4gICAgQXJtIGF1dGhvcml6ZXItPj5JbnRlcm5ldDogKG9wdGlvbmFsKVJlcXVlc3QgaW5mb3JtYXRpb24gYWJvdXQgd2VhdGhlciwgYWVyb3NwYWNlIHRyYWZpYyBhbmQgZXRjLlxuICAgIEFybSBhdXRob3JpemVyLT4-RHJvbmU6IENPTU1BTkRfQUNLIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUIHJlc3VsdD1BQ0NFUFRFRCwgVEVNUE9SQVJJTFlfUkVKRUNURUQgb3IgREVOSUVEXG4gICAgRHJvbmUtPj5SZW1vdGUgY29udHJvbC9RQ1M6IFFDUyBDT01NQU5EX0FDSyBjb21tYW5kPU1BVl9DTURfQ09NUE9ORU5UX0FSTV9ESVNBUk0gcmVzdWx0PUFDQ0VQVEVELCBURU1QT1JBUklMWV9SRUpFQ1RFRCBvciBERU5JRUQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ) +[![Mermaid Sequence: Authorization Flow](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtO1xuICAgIHBhcnRpY2lwYW50IERyb25lXG4gICAgcGFydGljaXBhbnQgUmVtb3RlIGNvbnRyb2wvUUNTXG4gICAgcGFydGljaXBhbnQgQXJtIGF1dGhvcml6ZXJcbiAgICBwYXJ0aWNpcGFudCBJbnRlcm5ldFxuXG4gICAgUmVtb3RlIGNvbnRyb2wvUUNTLT4-RHJvbmU6IFJlcXVlc3QgYXJtXG4gICAgRHJvbmUtPj5Bcm0gYXV0aG9yaXplcjogQ09NTUFORF9MT05HIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUXG4gICAgQXJtIGF1dGhvcml6ZXItPj5Ecm9uZTogQ09NTUFORF9BQ0sgcmVzdWx0PU1BVl9SRVNVTFRfSU5fUFJPR1JFU1NcbiAgICBBcm0gYXV0aG9yaXplci0-PkRyb25lOiAob3B0aW9uYWwpUmVxdWVzdCBpbmZvcm1hdGlvbiBhYm91dCBtaXNzaW9uLCBiYXR0ZXJ5IGxldmVsIGFuZCBldGMuXG4gICAgQXJtIGF1dGhvcml6ZXItPj5JbnRlcm5ldDogKG9wdGlvbmFsKVJlcXVlc3QgaW5mb3JtYXRpb24gYWJvdXQgd2VhdGhlciwgYWVyb3NwYWNlIHRyYWZpYyBhbmQgZXRjLlxuICAgIEFybSBhdXRob3JpemVyLT4-RHJvbmU6IENPTU1BTkRfQUNLIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUIHJlc3VsdD1BQ0NFUFRFRCwgVEVNUE9SQVJJTFlfUkVKRUNURUQgb3IgREVOSUVEXG4gICAgRHJvbmUtPj5SZW1vdGUgY29udHJvbC9RQ1M6IFFDUyBDT01NQU5EX0FDSyBjb21tYW5kPU1BVl9DTURfQ09NUE9ORU5UX0FSTV9ESVNBUk0gcmVzdWx0PUFDQ0VQVEVELCBURU1QT1JBUklMWV9SRUpFQ1RFRCBvciBERU5JRUQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtO1xuICAgIHBhcnRpY2lwYW50IERyb25lXG4gICAgcGFydGljaXBhbnQgUmVtb3RlIGNvbnRyb2wvUUNTXG4gICAgcGFydGljaXBhbnQgQXJtIGF1dGhvcml6ZXJcbiAgICBwYXJ0aWNpcGFudCBJbnRlcm5ldFxuXG4gICAgUmVtb3RlIGNvbnRyb2wvUUNTLT4-RHJvbmU6IFJlcXVlc3QgYXJtXG4gICAgRHJvbmUtPj5Bcm0gYXV0aG9yaXplcjogQ09NTUFORF9MT05HIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUXG4gICAgQXJtIGF1dGhvcml6ZXItPj5Ecm9uZTogQ09NTUFORF9BQ0sgcmVzdWx0PU1BVl9SRVNVTFRfSU5fUFJPR1JFU1NcbiAgICBBcm0gYXV0aG9yaXplci0-PkRyb25lOiAob3B0aW9uYWwpUmVxdWVzdCBpbmZvcm1hdGlvbiBhYm91dCBtaXNzaW9uLCBiYXR0ZXJ5IGxldmVsIGFuZCBldGMuXG4gICAgQXJtIGF1dGhvcml6ZXItPj5JbnRlcm5ldDogKG9wdGlvbmFsKVJlcXVlc3QgaW5mb3JtYXRpb24gYWJvdXQgd2VhdGhlciwgYWVyb3NwYWNlIHRyYWZpYyBhbmQgZXRjLlxuICAgIEFybSBhdXRob3JpemVyLT4-RHJvbmU6IENPTU1BTkRfQUNLIGNvbW1hbmQ9TUFWX0NNRF9BUk1fQVVUSE9SSVpBVElPTl9SRVFVRVNUIHJlc3VsdD1BQ0NFUFRFRCwgVEVNUE9SQVJJTFlfUkVKRUNURUQgb3IgREVOSUVEXG4gICAgRHJvbmUtPj5SZW1vdGUgY29udHJvbC9RQ1M6IFFDUyBDT01NQU5EX0FDSyBjb21tYW5kPU1BVl9DTURfQ09NUE9ORU5UX0FSTV9ESVNBUk0gcmVzdWx0PUFDQ0VQVEVELCBURU1QT1JBUklMWV9SRUpFQ1RFRCBvciBERU5JRUQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ) @@ -41,7 +41,7 @@ sequenceDiagram; Drone->>Arm authorizer: COMMAND_LONG command=MAV_CMD_ARM_AUTHORIZATION_REQUEST Arm authorizer->>Drone: COMMAND_ACK result=MAV_RESULT_IN_PROGRESS Arm authorizer->>Drone: (optional)Request information about mission, battery level and etc. - Arm authorizer->>Internet: (optional)Request information about weather, aerospace trafic and etc. + Arm authorizer->>Internet: (optional)Request information about weather, aerospace traffic and etc. Arm authorizer->>Drone: COMMAND_ACK command=MAV_CMD_ARM_AUTHORIZATION_REQUEST result=ACCEPTED, TEMPORARILY_REJECTED or DENIED Drone->>Remote control/QCS: QCS STATUSTEXT text=Arm authorization was approved or denied @@ -65,7 +65,7 @@ COMMAND_ACK command=MAV_CMD_ARM_AUTHORIZATION_REQUEST result=ACCEPTED, TEMPORARILY_REJECTED or DENIED progress/result_param1=if result is TEMPORARILY_REJECTED or DENIED the reason should be set MAV_ARM_AUTH_DENIED_REASON otherwise it should be set as 0 -result_param2=if result is ACCEPTED the it should be set with the time in seconds that this authorization is valid otherwise an aditional information about why it was denied should be set. example: for result_param1=MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT or MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE it may have the index of the waypoint that caused it to be denied. +result_param2=if result is ACCEPTED the it should be set with the time in seconds that this authorization is valid otherwise an additional information about why it was denied should be set. example: for result_param1=MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT or MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE it may have the index of the waypoint that caused it to be denied. target_system=system id of the drone target_component=component id of the drone ``` diff --git a/zh/services/camera.md b/zh/services/camera.md index 9529d8da..bc9018b6 100644 --- a/zh/services/camera.md +++ b/zh/services/camera.md @@ -510,7 +510,7 @@ Other components like a GCS will typically only use the camera `BATTERY_STATUS.b | [MAV_CMD_VIDEO_STOP_CAPTURE](../messages/common.md#MAV_CMD_VIDEO_STOP_CAPTURE) | Send command to stop video capture. | | [MAV_CMD_VIDEO_START_STREAMING](../messages/common.md#MAV_CMD_VIDEO_START_STREAMING) | Send command to start video streaming for the given Stream ID (`stream_id`.) This is mostly for streaming protocols that _push_ a stream. If your camera uses a connection based streaming configuration (RTSP, TCP, etc.), you may ignore it if you don't need it but note that you still must ACK the command, like all `MAV_CMD_XXX` commands. When using a connection based streaming configuration, the GCS will connect the stream from its side. When a camera offers more than one stream and the user switches from one stream to another, the GCS will send a [MAV_CMD_VIDEO_STOP_STREAMING](../messages/common.md#MAV_CMD_VIDEO_STOP_STREAMING) command targeting the current Stream ID followed by a [MAV_CMD_VIDEO_START_STREAMING](../messages/common.md#MAV_CMD_VIDEO_START_STREAMING) targeting the newly selected Stream ID. | | [MAV_CMD_VIDEO_STOP_STREAMING](../messages/common.md#MAV_CMD_VIDEO_STOP_STREAMING) | Send command to stop video streaming for the given Stream ID (`stream_id`.) This is mostly for streaming protocols that _push_ a stream. If your camera uses a connection based streaming configuration (RTSP, TCP, etc.), you may ignore it if you don't need it but note that you still must ACK the command, like all `MAV_CMD_XXX` commands. When using a connection based streaming configuration, the GCS will disconnect the stream from its side. When a camera offers more than one stream and the user switches from one stream to another, the GCS will send a [MAV_CMD_VIDEO_STOP_STREAMING](../messages/common.md#MAV_CMD_VIDEO_STOP_STREAMING) command targeting the current Stream ID followed by a [MAV_CMD_VIDEO_START_STREAMING](../messages/common.md#MAV_CMD_VIDEO_START_STREAMING) targeting the newly selected Stream ID. | -| [MAV_CMD_CAMERA_TRACK_POINT](../messages/common.md#MAV_CMD_CAMERA_TRACK_POINT) | Initate visual point tracking, if supported by the camera ([CAMERA_CAP_FLAGS_HAS_TRACKING_POINT](#CAMERA_CAP_FLAGS) is set). | +| [MAV_CMD_CAMERA_TRACK_POINT](../messages/common.md#MAV_CMD_CAMERA_TRACK_POINT) | Initiate visual point tracking, if supported by the camera ([CAMERA_CAP_FLAGS_HAS_TRACKING_POINT](#CAMERA_CAP_FLAGS) is set). | | [MAV_CMD_CAMERA_TRACK_RECTANGLE](../messages/common.md#MAV_CMD_CAMERA_TRACK_RECTANGLE) | Initiate visual rectangle tracking, if supported by the camera ([CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE](#CAMERA_CAP_FLAGS) is set). | | [MAV_CMD_CAMERA_STOP_TRACKING](../messages/common.md#MAV_CMD_CAMERA_STOP_TRACKING) | Stop camera tracking (as initiated using `MAV_CMD_CAMERA_TRACK_POINT` or `MAV_CMD_CAMERA_TRACK_RECTANGLE`). | diff --git a/zh/services/camera_def.md b/zh/services/camera_def.md index 55b2a7eb..cb9f998b 100644 --- a/zh/services/camera_def.md +++ b/zh/services/camera_def.md @@ -1,30 +1,31 @@ # 相机定义文件 -A GCS will build a Camera Controller UI for image capture, video capture and video streaming using information provided by the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message. -For simple cameras, the information in the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message itself is sufficient to construct the UI. -For more advanced cameras (with settings and options) the information required to build the UI can be supplied in a _Camera Definition File_ that is located at the URI specified in the message's `cam_definition_uri` field. +A GCS will build a Camera Controller UI for image capture, video capture and video streaming using information provided +by the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message. For simple cameras, the information in +the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message itself is sufficient to construct the UI. For +more advanced cameras (with settings and options) the information required to build the UI can be supplied in a _Camera +Definition File_ that is located at the URI specified in the message's `cam_definition_uri` field. -The _Camera Definition File_ contains all the camera settings, the options for each setting, and exclusion lists (options that invalidate or are conditional on other settings). -另外,它可能还包含本土化的用户界面文字内容,用来展示给用户。 +The _Camera Definition File_ contains all the camera settings, the options for each setting, and exclusion lists +(options that invalidate or are conditional on other settings). In addition, it may contain localisations of GUI strings +for display to the user. At the bottom of this page, you can find a [full example](#full_example) of a _Camera Definition File_. -:::info -A _Camera Definition File_ is required because the camera options differ so greatly between cameras. -It is not reasonable to create specific MAVLink messages for each and every possible option and to tell the GCS the valid options for each camera setting. -::: +::: info A _Camera Definition File_ is required because the camera options differ so greatly between cameras. It is not +reasonable to create specific MAVLink messages for each and every possible option and to tell the GCS the valid options +for each camera setting. ::: ## File Compression -Camera definition files may be **.xz** compressed (this is recommended for files that are hosted on the camera component/device). +Camera definition files may be **.xz** compressed (this is recommended for files that are hosted on the camera +component/device). -:::warning -Systems that _request_ camera definition files **must** support extraction of **.xz**-compressed definition files. -::: +::: warning Systems that _request_ camera definition files **must** support extraction of **.xz**-compressed definition +files. ::: -:::tip -The [Tukaani Project XZ Embedded](https://tukaani.org/xz/embedded.html) library is an easy-to-use XZ compression library for embedded systems. -::: +::: tip The [Tukaani Project XZ Embedded](https://tukaani.org/xz/embedded.html) library is an easy-to-use XZ compression +library for embedded systems. ::: ## Schema @@ -47,21 +48,20 @@ All fields are self explanatory: ### 参数 -An extended set of parameter messages is used to define settings and options. -These minimally have a parameter name, type and default value (types can be predefined or arbitrary - though arbitrary types are only supported by custom camera controllers). -They will also have a description that is displayed to the user and the set of possible options. +An extended set of parameter messages is used to define settings and options. These minimally have a parameter name, +type and default value (types can be predefined or arbitrary - though arbitrary types are only supported by custom +camera controllers). They will also have a description that is displayed to the user and the set of possible options. Parameters can be simple or quite complex, depending on the behavior they change. -:::info -The parameter `CAM_MODE` must be part of the parameter list. -It maps to the command [MAV_CMD_SET_CAMERA_MODE](../messages/common.md#MAV_CMD_SET_CAMERA_MODE). -It enables exposure of different settings based on the mode, so photo settings in photo mode and video settings in video mode. -::: +::: info The parameter `CAM_MODE` must be part of the parameter list. It maps to the command +[MAV_CMD_SET_CAMERA_MODE](../messages/common.md#MAV_CMD_SET_CAMERA_MODE). It enables exposure of different settings +based on the mode, so photo settings in photo mode and video settings in video mode. ::: #### 参数类型 -The type of the parameter follows the enum [MAV_PARAM_EXT_TYPE](../messages/common.md#MAV_PARAM_EXT_TYPE_UINT8). Within the XML file, these are defined as: +The type of the parameter follows the enum [MAV_PARAM_EXT_TYPE](../messages/common.md#MAV_PARAM_EXT_TYPE_UINT8). Within +the XML file, these are defined as: - bool (按 uint8 类型处理) - uint8 @@ -76,7 +76,9 @@ The type of the parameter follows the enum [MAV_PARAM_EXT_TYPE](../messages/comm - double - custom(自定义) -The `custom` type is a special case that allows for arbitrary data structures of up to 128 bytes. However these are not supported by default - you would need to extend or write your own camera controller within the GCS to interpret this type. +The `custom` type is a special case that allows for arbitrary data structures of up to 128 bytes. However these are not +supported by default - you would need to extend or write your own camera controller within the GCS to interpret this +type. #### 参数定义 @@ -88,8 +90,8 @@ The simplest parameter would be a boolean type, which inherently (and automatica ``` -The `name` attribute is the name of the parameter. This is the name used when requesting or setting the parameter's value using the extended parameter messages. -The `description` is what is shown to the user. +The `name` attribute is the name of the parameter. This is the name used when requesting or setting the parameter's +value using the extended parameter messages. The `description` is what is shown to the user. More common are parameters that provide options: @@ -108,16 +110,17 @@ More common are parameters that provide options: ``` In this case, the GCS will automatically build a drop down list with the options defined within the `options` group. -When sending/receiving the options, the `value` field is used and it is not in any way interpreted by the GCS. -The `name` field is used for display only. In other words, using the example above, when the user selects _Sunset_, the GCS will send a [PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) message with the id `CAM_WBMODE` and a uint32 value of 3. +When sending/receiving the options, the `value` field is used and it is not in any way interpreted by the GCS. The +`name` field is used for display only. In other words, using the example above, when the user selects _Sunset_, the GCS +will send a [PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) message with the id `CAM_WBMODE` and a uint32 value +of 3. #### 常用参数 -_Common Parameters_ are reserved parameter names for which the GCS can build specific UI controls (if found in a camera definition). +_Common Parameters_ are reserved parameter names for which the GCS can build specific UI controls (if found in a camera +definition). -:::info -These parameters are common to many cameras (though their valid options vary considerably). -::: +::: info These parameters are common to many cameras (though their valid options vary considerably). ::: | Parameter | 描述 | | ------------------------------------- | ------------------------------------------------------------------------------------------------------ | @@ -146,9 +149,10 @@ These parameters are common to many cameras (though their valid options vary con #### 排除(某些参数) 的语法 -Some parameters are only relevant when some other parameter is set to some specific option. -For example, shutter speed, aperture and ISO would only be available when the camera is set to _manual_ exposure mode and not shown when the camera is set to _auto_ exposure mode. -Conversely, _EV_ (Exposure Compensation) is only used when the camera is set to _auto_ and hidden otherwise. To specify this behavior, you would use the `exclusion` element: +Some parameters are only relevant when some other parameter is set to some specific option. For example, shutter speed, +aperture and ISO would only be available when the camera is set to _manual_ exposure mode and not shown when the camera +is set to _auto_ exposure mode. Conversely, _EV_ (Exposure Compensation) is only used when the camera is set to _auto_ +and hidden otherwise. To specify this behavior, you would use the `exclusion` element: ```XML @@ -170,11 +174,17 @@ Conversely, _EV_ (Exposure Compensation) is only used when the camera is set to ``` -The above example describes an _Exposure Mode_ parameter and its two options: _Auto_ and _Manual_. When the option is set to _Auto_, the `CAM_APERTURE`, `CAM_ISO` and `CAM_SHUTTERSPD` parameters (defined elsewhere in the parameter list) are hidden from the UI as they are not applicable. On the other hand, if the option is set to _Manual_, the `CAM_EV` parameter is hidden as it is not applicable while the camera is in _Manual Exposure Mode_. +The above example describes an _Exposure Mode_ parameter and its two options: _Auto_ and _Manual_. When the option is +set to _Auto_, the `CAM_APERTURE`, `CAM_ISO` and `CAM_SHUTTERSPD` parameters (defined elsewhere in the parameter list) +are hidden from the UI as they are not applicable. On the other hand, if the option is set to _Manual_, the `CAM_EV` +parameter is hidden as it is not applicable while the camera is in _Manual Exposure Mode_. #### 关联参数刷新 -There are cases where an option change requires a parameter to be updated. For example, using the example above, when the camera is set to _Auto Exposure Mode_, it internally might change the Aperture, ISO and Shutter speed. When the user switches back to _Manual Exposure Mode_, the GCS must request an update for the current Aperture, ISO and Shutter speed as they may have changed. To do this, you would use the `update` element: +There are cases where an option change requires a parameter to be updated. For example, using the example above, when +the camera is set to _Auto Exposure Mode_, it internally might change the Aperture, ISO and Shutter speed. When the user +switches back to _Manual Exposure Mode_, the GCS must request an update for the current Aperture, ISO and Shutter speed +as they may have changed. To do this, you would use the `update` element: ```XML @@ -201,7 +211,8 @@ There are cases where an option change requires a parameter to be updated. For e ``` -This tells the GCS that when the `CAM_EXPMODE` parameter changes, the `CAM_APERTURE`, `CAM_SHUTTERSPD` and the `CAM_ISO` parameters must be updated (requested from the camera). +This tells the GCS that when the `CAM_EXPMODE` parameter changes, the `CAM_APERTURE`, `CAM_SHUTTERSPD` and the `CAM_ISO` +parameters must be updated (requested from the camera). #### Option Range Limit @@ -226,7 +237,8 @@ Suppose your camera has the following ISO options: ``` -But this full range is only available when in _Photo Mode_. For whatever reason, when the camera is set to _Video Mode_, only a subset of the above range is valid. In this case, you would use the `parameterrange` element: +But this full range is only available when in _Photo Mode_. For whatever reason, when the camera is set to _Video Mode_, +only a subset of the above range is valid. In this case, you would use the `parameterrange` element: ```XML @@ -252,13 +264,19 @@ But this full range is only available when in _Photo Mode_. For whatever reason, ``` -This indicates to the GCS that when the `CAM_MODE` parameter is set to _Video_, only the given range for the `CAM_ISO` parameter is valid. It additionally gives a condition that this is only the case when the `CAM_EXPOSURE` mode is set to _Manual_ (1). +This indicates to the GCS that when the `CAM_MODE` parameter is set to _Video_, only the given range for the `CAM_ISO` +parameter is valid. It additionally gives a condition that this is only the case when the `CAM_EXPOSURE` mode is set to +_Manual_ (1). -This example also tells the GCS not to display this parameter to the user (`control=“0”`). Camera Mode is a standard parameter defined in the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message and it’s handled by the GCS in that way. The parameter definition above was created in order to tell the GCS the rules that are applied when changes to the camera mode occur. +This example also tells the GCS not to display this parameter to the user (`control=“0”`). Camera Mode is a standard +parameter defined in the [CAMERA_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message and it’s handled by the +GCS in that way. The parameter definition above was created in order to tell the GCS the rules that are applied when +changes to the camera mode occur. #### Param Ranges -It is also possible to define param ranges without individual options, but by specifiying the minimum, maximum, and optionally a step size: +It is also possible to define param ranges without individual options, but by specifying the minimum, maximum, and +optionally a step size: ```xml @@ -281,12 +299,17 @@ This would be equivalent to: ``` -Note that this approach cannot be used in conjunction with exclusions or option range limits (defined with `parameterrange`). -Therefore it is recommended for cases where the range of allowed values does not vary with any other camera mode or setting. +Note that this approach cannot be used in conjunction with exclusions or option range limits (defined with +`parameterrange`). Therefore it is recommended for cases where the range of allowed values does not vary with any other +camera mode or setting. ### 本土化 -The `localization` element is used for defining localized strings for display to users. If found, the GCS will use to replace all `description` and options `name` values found in the file with the strings defined here. Here is an example for German localization (de_DE): +The `localization` element is used for defining localized strings for display to users. If found, the GCS will use to +replace all `description` and options `name` values found in the file with the strings defined here. Here is an example +for German localization (de_DE): + + ```XML @@ -305,24 +328,35 @@ The `localization` element is used for defining localized strings for display to ``` -When the GCS loads and parses the XML file, it will check and see if it can find a localized version appropriate to the system language. If it finds a localisation, it will proceed to replace all occurrences of `original` with `translated`. If something is not found, the default English string is used. You can have as many locales as deemed necessary. + + +When the GCS loads and parses the XML file, it will check and see if it can find a localized version appropriate to the +system language. If it finds a localisation, it will proceed to replace all occurrences of `original` with `translated`. +If something is not found, the default English string is used. You can have as many locales as deemed necessary. ## Protocol Definition -Once the Camera Definition File is loaded by the GCS, it will request all parameters from the camera using the [PARAM_EXT_REQUEST_LIST](../messages/common.md#PARAM_EXT_REQUEST_LIST) message. In response, the camera will send back all parameters using the [PARAM_EXT_VALUE](../messages/common.md#PARAM_EXT_VALUE) message. +Once the Camera Definition File is loaded by the GCS, it will request all parameters from the camera using the +[PARAM_EXT_REQUEST_LIST](../messages/common.md#PARAM_EXT_REQUEST_LIST) message. In response, the camera will send back +all parameters using the [PARAM_EXT_VALUE](../messages/common.md#PARAM_EXT_VALUE) message. -When the user makes a selection, the GCS will send the new option using the [PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) message and it will expect in response a [PARAM_EXT_ACK](../messages/common.md#PARAM_EXT_ACK) message. +When the user makes a selection, the GCS will send the new option using the +[PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) message and it will expect in response a +[PARAM_EXT_ACK](../messages/common.md#PARAM_EXT_ACK) message. -When the GCS requires a current option for a given parameter, it will use the [PARAM_EXT_REQUEST_READ](../messages/common.md#PARAM_EXT_REQUEST_READ) message and it will expect in response a [PARAM_EXT_VALUE](../messages/common.md#PARAM_EXT_VALUE) message. +When the GCS requires a current option for a given parameter, it will use the +[PARAM_EXT_REQUEST_READ](../messages/common.md#PARAM_EXT_REQUEST_READ) message and it will expect in response a +[PARAM_EXT_VALUE](../messages/common.md#PARAM_EXT_VALUE) message. -:::info -For more detailed information about the protocol see: [Extended Parameter Protocol](../services/parameter_ext.md). -::: +::: info For more detailed information about the protocol see: +[Extended Parameter Protocol](../services/parameter_ext.md). ::: ## Full Camera Definition File Example {#full_example} -An example camera definition file is listed below. -This can be downloaded from GitHub here: [camera_definition_example.xml](https://raw.githubusercontent.com/mavlink/mavlink-devguide/master/en/services/camera_definition_example.xml). +An example camera definition file is listed below. This can be downloaded from GitHub here: +[camera_definition_example.xml](https://raw.githubusercontent.com/mavlink/mavlink-devguide/master/en/services/camera_definition_example.xml). + + ```XML @@ -989,3 +1023,5 @@ This can be downloaded from GitHub here: [camera_definition_example.xml](https:/ ``` + + diff --git a/zh/services/component_metadata.md b/zh/services/component_metadata.md index 0d7902c1..6d2bff93 100644 --- a/zh/services/component_metadata.md +++ b/zh/services/component_metadata.md @@ -45,7 +45,7 @@ The component information file types and schema are (at time of writing): | Command protocol metadata | [COMP_METADATA_TYPE_COMMANDS](../messages/common.md#COMP_METADATA_TYPE_COMMANDS) | TBD | Information about which commands and command parameters are supported via the command protocol. | | Peripheral metadata | [COMP_METADATA_TYPE_PERIPHERALS](../messages/common.md#COMP_METADATA_TYPE_PERIPHERALS) | [peripherals.schema.json](https://github.com/mavlink/mavlink/blob/master/component_metadata/peripherals.schema.json) | Information about non-MAVLink peripherals connected to vehicle (on boot). | | Event metadata | [COMP_METADATA_TYPE_EVENTS](../messages/common.md#COMP_METADATA_TYPE_EVENTS) | TBD | Information about events interface support by the vehicle. | -| Event metadata | [COMP_METADATA_TYPE_ACTUATORS](../messages/common.md#COMP_METADATA_TYPE_ACTUATORS) | [actuators.schema.json ](https://github.com/mavlink/mavlink/blob/master/component_metadata/actuators.schema.json) | Metadata for actuator configuration (motors, servos and vehicle geometry) and testing. | +| Event metadata | [COMP_METADATA_TYPE_ACTUATORS](../messages/common.md#COMP_METADATA_TYPE_ACTUATORS) | [actuators.schema.json](https://github.com/mavlink/mavlink/blob/master/component_metadata/actuators.schema.json) | Metadata for actuator configuration (motors, servos and vehicle geometry) and testing. | All schema files are _versioned_ using a `version` integer. @@ -131,7 +131,7 @@ In summary: 2. The component will ACK the command and immediately send the requested `COMPONENT_METADATA` message (populated with URI and CRC for the general metadata file). - A `CMD_ACK` of anything other than `MAV_RESULT_ACCEPTED` indicates the protocol is not supported (sequence completes). 3. GCS waits for the `COMPONENT_METADATA` message - - If not recieved the GCS should resend the request (typically in the application level). + - If not received the GCS should resend the request (typically in the application level). - Once information is received: - the GCS checks if `COMPONENT_METADATA.file_crc` matches its cached CRC value. If so, there is no need to download the [general metadata file](#COMP_METADATA_TYPE_GENERAL) (or other files it references) as it has not changed since the last download. diff --git a/zh/services/gimbal_v2.md b/zh/services/gimbal_v2.md index 48fac8fe..f2947a5d 100644 --- a/zh/services/gimbal_v2.md +++ b/zh/services/gimbal_v2.md @@ -323,10 +323,10 @@ This is the set of messages/enums for communicating with the gimbal manager (by | [MAV_CMD_DO_GIMBAL_MANAGER_TRACK_POINT](../messages/common.md#MAV_CMD_DO_GIMBAL_MANAGER_TRACK_POINT) | If the gimbal manager supports visual tracking (`GIMBAL_MANAGER_CAP_FLAGS_HAS_TRACKING_POINT` is set), this command allows to initiate the tracking. Such a tracking gimbal manager would usually be an integrated camera/gimbal, or alternatively a companion computer connected to a camera. | | [MAV_CMD_DO_GIMBAL_MANAGER_TRACK_RECTANGLE](../messages/common.md#MAV_CMD_DO_GIMBAL_MANAGER_TRACK_RECTANGLE) | If the gimbal supports visual tracking (GIMBAL_MANAGER_CAP_FLAGS_HAS_TRACKING_RECTANGLE is set), this command allows to initiate the tracking. Such a tracking gimbal manager would usually be an integrated camera/gimbal, or alternatively a companion computer connected to a camera. | -| Enum | 描述 | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [GIMBAL_MANAGER_FLAGS](../messages/common.md#GIMBAL_MANAGER_FLAGS) | Flags for high level gimbal manager operation.
The first 16 bytes are identical to the [GIMBAL_DEVICE_FLAGS](#GIMBAL_DEVICE_FLAGS). Used in [MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW](#MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW), [GIMBAL_MANAGER_STATUS ](#GIMBAL_MANAGER_STATUS), [GIMBAL_MANAGER_SET_ATTITUDE](#GIMBAL_MANAGER_SET_ATTITUDE). | -| [GIMBAL_MANAGER_CAP_FLAGS](../messages/common.md#GIMBAL_MANAGER_CAP_FLAGS) | Gimbal manager high level capability flags (bitmap).
The first 16 bits are identical to the GIMBAL_DEVICE_CAP_FLAGS which are identical with GIMBAL_DEVICE_FLAGS. However, the gimbal manager does not need to copy the flags from the gimbal but can also enhance the capabilities and thus add flags. Used in [GIMBAL_MANAGER_INFORMATION ](#GIMBAL_MANAGER_INFORMATION) | +| Enum | 描述 | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [GIMBAL_MANAGER_FLAGS](../messages/common.md#GIMBAL_MANAGER_FLAGS) | Flags for high level gimbal manager operation.
The first 16 bytes are identical to the [GIMBAL_DEVICE_FLAGS](#GIMBAL_DEVICE_FLAGS). Used in [MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW](#MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW), [GIMBAL_MANAGER_STATUS](#GIMBAL_MANAGER_STATUS), [GIMBAL_MANAGER_SET_ATTITUDE](#GIMBAL_MANAGER_SET_ATTITUDE). | +| [GIMBAL_MANAGER_CAP_FLAGS](../messages/common.md#GIMBAL_MANAGER_CAP_FLAGS) | Gimbal manager high level capability flags (bitmap).
The first 16 bits are identical to the GIMBAL_DEVICE_CAP_FLAGS which are identical with GIMBAL_DEVICE_FLAGS. However, the gimbal manager does not need to copy the flags from the gimbal but can also enhance the capabilities and thus add flags. Used in [GIMBAL_MANAGER_INFORMATION](#GIMBAL_MANAGER_INFORMATION) | ### Gimbal Device Messages diff --git a/zh/services/illuminator.md b/zh/services/illuminator.md index 5393c6f1..9497cff6 100644 --- a/zh/services/illuminator.md +++ b/zh/services/illuminator.md @@ -48,7 +48,7 @@ These illuminators have built-in MAVLink support: Illuminators are expected to follow the [Heartbeat/Connection Protocol](../services/heartbeat.md) and send a constant flow of heartbeats (nominally at 1Hz). Illuminators are identified via their type [MAV\_TYPE\_ILLUMINATOR](#MAV_TYPE_ILLUMINATOR). Individual illuminators are distinguished via their unique component ID, which by default should be [MAV\_COMP\_ID\_ILLUMINATOR](#MAV_COMP_ID_ILLUMINATOR) (though this is not mandated and any ID may be used). -Once a heartbeat is received, the drone can then send a [MAV\_CMD\_REQUEST\_MESSAGE ][MAV_CMD_REQUEST_MESSAGE] command to the illuminator to receive information, set settings, or control the illuminator. +Once a heartbeat is received, the drone can then send a [MAV\_CMD\_REQUEST\_MESSAGE][MAV_CMD_REQUEST_MESSAGE] command to the illuminator to receive information, set settings, or control the illuminator. An example below illustrates how a drone can request the status of the illuminator. + - [MAV_CMD_NAV_LOITER_TO_ALT](../messages/common.md#MAV_CMD_NAV_LOITER_TO_ALT) items can also be added to the rally point plan. + Any of these declared immediately after `MAV_CMD_NAV_RALLY_POINT` may be used as [VTOL approach loiter waypoints](https://docs.px4.io/main/en/flight_modes_vtol/return#vtol-rally-point-approach-loiters). + VTOL can use these points in a fixed-wing return to define the location and radius of VTOL loiter-descent, and heading, prior to traveling to the final rally point. + If multiple loiter waypoints are specified, selection is autopilot-specific. + + ::: info + This is non-standard because it is only implemented by PX4 and broadly opposed by ArduPilot (limited initial discussion). + The argument is that rally points are not designed for this purpose, and that adding new allowed waypoints turns them into mini-missions. + These might be implemented in the mission plan. + ::: + +Mission operation cancellation works for both mission upload and download (sets system to idle). Source code: -- [src/modules/mavlink/mavlink_mission.cpp](https://github.com/PX4/Firmware/blob/master/src/modules/mavlink/mavlink_mission.cpp) +- [src/modules/mavlink/mavlink_mission.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_mission.cpp) ### QGroundControl diff --git a/zh/services/offboard_control.md b/zh/services/offboard_control.md index 0f799c97..0039831d 100644 --- a/zh/services/offboard_control.md +++ b/zh/services/offboard_control.md @@ -5,7 +5,7 @@ The offboard control interface allows an external controller to send low-level a This is commonly used to provide external control of a real-time flight stack from a companion/mission computer, for example, in order to implement features such as obstacle avoidance or collision prevention. Generally setpoints are only obeyed in a specific flight-stack mode. -The flight stack requires the setpoints to be recieved for some time before it will allow the mode to be enabled, and will switch out of the mode if setpoints are no longer received. +The flight stack requires the setpoints to be received for some time before it will allow the mode to be enabled, and will switch out of the mode if setpoints are no longer received. The particular types of setpoints that are supported, if any, depend on the vehicle type and flight stack. diff --git a/zh/services/parameter.md b/zh/services/parameter.md index 6b02d092..8c6a2aaa 100644 --- a/zh/services/parameter.md +++ b/zh/services/parameter.md @@ -135,13 +135,13 @@ If a component can add parameters during (or after) initial synchronization the If working with a non-compliant component, the risk of problems when working with parameters can be _reduced_ (but not removed) if: - The `param_id` is used to read parameters where possible (the mapping of `param_index` to a particular parameter might change on systems where parameters can be added/removed). -- [PARAM_VALUE.param_count](../messages/common.md#PARAM_VALUE) is monitored and the parameter set re-sychronised on change. +- [PARAM_VALUE.param_count](../messages/common.md#PARAM_VALUE) is monitored and the parameter set re-synchronised on change. ### Parameter Synchronisation Can Fail {#monitoring_unreliable} A GCS (or other component) that wants to [cache parameters](#parameter_caching) with a component and keep them synchronised, should first get all parameters, and then track any new parameter changes by monitoring for `PARAM_VALUE` messages (updating their internal list appropriately). -This works for the originator of a parameter change, which can resend the request if an expected `PARAM_VALUE` is not recieved. +This works for the originator of a parameter change, which can resend the request if an expected `PARAM_VALUE` is not received. This approach may fail for components that did not originate the change, as they will not know about updates they do not receive (i.e. if messages are dropped). A component may mitigate this risk by, for example, sending the `PARAM_VALUE` multiple times after a parameter is changed. @@ -242,7 +242,7 @@ The sequence of operations is: 1. GCS (client) sends [PARAM_SET](../messages/common.md#PARAM_VALUE) specifying the param name to update and its new value (also target system/component and the param type). -2. GCS starts timout waiting for acknowledgment (in the form of a [PARAM_VALUE](../messages/common.md#PARAM_VALUE) message). +2. GCS starts timeout waiting for acknowledgment (in the form of a [PARAM_VALUE](../messages/common.md#PARAM_VALUE) message). 3. Drone writes parameter and responds by _broadcasting_ a `PARAM_VALUE` containing the updated parameter value to all components/systems. diff --git a/zh/services/parameter_ext.md b/zh/services/parameter_ext.md index 289e7215..6c8c0ba9 100644 --- a/zh/services/parameter_ext.md +++ b/zh/services/parameter_ext.md @@ -141,7 +141,7 @@ When requesting parameters from such a components, the risk of problems can be _ - The `param_id` is used to read parameters where possible (the mapping of `param_index` to a particular parameter may change on systems where parameters can be added/removed). - [PARAM_EXT_VALUE.param_count](../messages/common.md#PARAM_EXT_VALUE) may be monitored. - If this changes the parameter set should be re-sychronised. + If this changes the parameter set should be re-synchronised. ### Parameter Synchronisation Can Fail {#monitoring_unreliable} @@ -263,7 +263,7 @@ sequenceDiagram; The sequence of operations is: 1. GCS (client) sends [PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET) specifying the param name to update and its new value (also target system/component and the param type). -2. GCS starts timout waiting for acknowledgment (in the form of a [PARAM_EXT_ACK](../messages/common.md#PARAM_EXT_ACK) message). +2. GCS starts timeout waiting for acknowledgment (in the form of a [PARAM_EXT_ACK](../messages/common.md#PARAM_EXT_ACK) message). 3. Drone (starts to) write parameter and responds by _broadcasting_ a `PARAM_EXT_ACK`. - If the write succeeded the `PARAM_EXT_ACK` will contain a result of `PARAM_ACK_ACCEPTED` and the updated parameter value. - If the parameter was unknown or of an unsupported type `PARAM_EXT_ACK` will contain a result of `PARAM_ACK_VALUE_UNSUPPORTED` and the current parameter value will be XXXXX.