WiFiCx コマンド メッセージは、前の WDI モデル コマンドに基づいています。
All Wi-Fi command messages must start with a WDI_MESSAGE_HEADER structure. コマンド ヘッダーの後に、0 個以上の type-length-value (TLV) 構造体が続きます。
ホストから Wi-Fi デバイスに送信されるメッセージに対して定義されているコマンド メッセージ ID は、 WiFiCx タスク OID、 WiFiCx プロパティ OID、 および WiFiCx 状態表示に記載されています。
TLVs
TLV の構造は、次の表で定義されています。 TLV のデータは、リトル エンディアン バイト順です。
| Field | タイプ | Description |
|---|---|---|
| タイプ | UINT16 | TLV 構造体の型。 認識できない TLV 型は、エラーをトリガーせずにスキップする必要があります。 |
| Value バッファーの長さ | UINT16 | 値バッファーのサイズ (バイト単位)。 |
| Value | BYTE[*] | ペイロード バッファー。構造体、構造体の一覧、またはその他の TLV を含む場合があります。 TLV に予想以上のデータがある場合は、エラーをトリガーせずに追加のデータをスキップする必要があります。 |
TLV グループには、静的サイズの TLV リストとマルチ TLV グループの 2 種類があります。
静的サイズの TLV リスト
静的サイズの TLV リストには、静的にサイズが設定された複数のメンバーが含まれています。 これらは、標準の C スタイルの配列に似ています。
In this example, WDI_TLV_UNICAST_ALGORITHM_LIST is defined as a list of WDI_ALGO_PAIRS.
Type: WDI_TLV_UNICAST_ALGORITHM_LIST
Length: N * sizeof(WDI_ALGO_PAIRS)
Value: WDI_ALGO_PAIRS[N]
この使用法は、配列表記の TLV リファレンス トピックで指定されています。
Multi-TLV groups
特定のオブジェクトのサイズが事前に不明な場合は、複数の TLV グループが使用されます。 この使用パターンは、特定のバッファー内で N 個の可変サイズの TLV が必要であることを指定します。 エントリの数 (N) は事前に不明であり、指定されたバッファー内の一致する TLV の数によって推論されます。
In this example, the parent buffer is a WDI_MESSAGE_HEADER, which defines the end of the TLV buffer. Note that WDI_TLV_BSS_ENTRY may be interspersed between other different TLV types in the parent buffer.
| Offset | Field | タイプ |
|---|---|---|
| 0 | WDI_MESSAGE_HEADER | Message header |
| sizeof(WDI_MESSAGE_HEADER) | TLV₀ (WDI_TLV_BSS_ENTRY) | WDI_BSS_ENTRY |
| TLV₀ + L₀ + sizeof(TLV ヘッダー) | TLV₁ (WDI_TLV_BSS_ENTRY) | WDI_BSS_ENTRY |
| TLV₁ + L₁ + sizeof(TLV ヘッダー) | TLV₂ (WDI_TLV_BSS_ENTRY) | WDI_BSS_ENTRY |
| TLV₂ + L₂ + sizeof(TLV ヘッダー) | TLV₃ (OTHER_TLV_TYPE) | その他の TLV 型 |
| TLV₃ + L₃ + sizeof(TLV ヘッダー) | TLV₄ (WDI_TLV_BSS_ENTRY) | WDI_BSS_ENTRY |
他の TLV を含む TLV の場合、TLV リファレンス トピックには 複数の TLV インスタンスが許可されている列があります 。 この列をオンにすると、指定した TLV を複数回表示できます。 For an example of this, see WDI_TLV_CONNECT_PARAMETERS.