[WIP] [MAVLINKのドキュメントの雑な日本語訳] Parameter Protocol

原文: https://mavlink.io/en/services/parameter.html

# Parameter Protocol - パラメータプロトコル

> The parameter microservice is used to exchange configuration settings between MAVLink systems.

パラメータマイクロサービスはMAVLinkシステム間で設定を交換するために使用されます。

> The protocol guarantees delivery/reliable synchronisation of parameters for systems where the parameter set does not change during normal operation.

このプロトコルは、通常の運用中にパラメータが変更されないシステムに対して、パラメータの配信と信頼性の高い同期を保証します。

> Each parameter is represented as a key/value pair. The key is usually the human-readable name of the parameter (maximum of 16 characters) and a value - which can be one of a number of types.

各パラメータはキーと値のペアとして表されます。 キーは通常、人間が読めるパラメータの名前（最大16文字）と値です。これは、さまざまなタイプのいずれかです。

> This key/value pair has a number of important properties:

このキーと値のペアには、いくつかの重要なプロパティがあります:

> - The human-readable name is small but useful (it can encode parameter names from which users can infer the purpose of the parameter).
> - Unknown autopilots that implement the protocol can be supported "out of the box".
> - A GCS does not have to know in advance what parameters exist on a remote system (although in practice a GCS can provide a better user experience with additional parameter metadata like maximum and minimum values, default values, etc.).
> - Adding a parameter only requires changes to the system with parameters. A GCS that loads the parameters, and the MAVLink communication libraries, should not require any changes.

- 人間が読める名前は小さいですが便利です（ユーザーがパラメータの目的を推測できるパラメータ名をエンコードできます）。
- このプロトコルを実装している未知のオートパイロット装置は、「そのまま」使用できます。
- GCSは、リモートシステムにどのようなパラメータが存在するかを事前に知る必要はありません（ただし、実際には、GCSは最大値、最小値、デフォルト値などの追加のパラメータメタデータによってより良いユーザーエクスペリエンスを提供できます）。
- パラメータを追加するには、パラメータによるシステムへの変更のみが必要です。パラメータをロードするGCS、およびMAVLink通信ライブラリは、変更を必要としません。


## Message/Enum Summary

| Message | Description |
|:-----------------:|:------------------:|
| [PARAM_REQUEST_LIST](https://mavlink.io/en/messages/common.html#PARAM_REQUEST_LIST) | すべてのパラメーターを要求します。受信者は、[PARAM_VALUE](https://mavlink.io/en/services/parameter.html#PARAM_VALUE)を使用してすべてのパラメータ値をブロードキャストします。 |
| PARAM_REQUEST_READ | 単一のパラメーターを要求する。受信者は、PARAM_VALUEを使用して指定されたパラメータ値をブロードキャストします。|
| PARAM_SET | 指定されたパラメータに値を設定するコマンドを送信する。値が設定された後（成功したかどうかにかかわらず）、受信者はPARAM_VALUEを使用して現在の値をブロードキャストする必要があります。 |
| PARAM_VALUE | 1つ以上のパラメータを取得する要求（PARAM_REQUEST_READ、PARAM_REQUEST_LIST）に応じて、またはパラメータが設定または変更される（PARAM_SET）たびにブロードキャストされるパラメータの現在の値 |

| Enum | Description |
|:--|:--|
| MAV_PARAM_TYPE | `PARAM_SET`と`PARAM_VALUE`は、floatフィールド内にパラメータ値を格納/エンコードします。この型は、実数型の符号化パラメータ値、例えば `MAV_PARAM_TYPE_UINT16`、`MAV_PARAM_TYPE_INT32`などです。 |


# Parameter Encoding

> Parameters names/ids are set in the `param_id` field of messages where they are used. The `param_id` string can store up to 16 characters. The string is terminated with a NULL (`\0`) character if there are less than 16 human-readable chars, and without a null termination byte if the length is exactly 16 chars.

パラメータの名前/IDはそれらが使われるメッセージの`param_id`フィールドに設定されます。`param_id`文字列は最大16文字です。人間が読める文字数が16文字未満の場合、文字列はNULL（ `\0`）文字で終端し、長さがちょうど16文字の場合、NULL終了バイトは付きません。

> Values are byte-wise encoded within the `param_value` field, an IEE754 single-precision, 4 byte, floating point value. The `param_type` (MAV_PARAM_TYPE) is used to indicate the actual type of the data so that it can be decoded by the recipient. Supported types are: 8, 16, 32 and 64-bit signed and unsigned integers, and 32 and 64-bit floating point numbers.

値は `param_value`フィールド内でバイトごとにエンコードされています。これはIEE754単精度4バイト浮動小数点値です。`param_type`（MAV_PARAM_TYPE）は受信者がそれをデコードできるようにデータの実際のタイプを示すのに使われます。サポートされている型は、8、16、32、64ビットの符号付きおよび符号なし整数、および32および64ビットの浮動小数点数です。