Compartir a través de


Estructura de mensajes WiFiCx

Los mensajes de comandos de WiFiCx se basan en los comandos del modelo WDI anteriores.

Todos los mensajes de comando Wi-Fi deben comenzar con una estructura de WDI_MESSAGE_HEADER . El encabezado de comando va seguido de cero o más estructuras de tipo-length-value (TLV).

Los identificadores de mensaje de comando definidos para los mensajes enviados desde el host al dispositivo Wi-Fi se documentan en las indicaciones de estado wiFiCx Task OID,WiFiCx Property OIDs y WiFiCx.

TLV

La estructura de los TLV se define en la tabla siguiente. Los datos de los TLV están en orden de bytes little-endian.

Campo Tipo Descripción
Tipo UINT16 Tipo de la estructura TLV. Los tipos de TLV no reconocidos deben omitirse sin desencadenar errores.
Longitud del búfer de valores UINT16 Tamaño del búfer de valor en bytes.
Value BYTE[*] El búfer de carga, que puede contener una estructura, una lista de estructuras u otros TLV. Si hay más datos de los esperados en un TLV, se deben omitir los datos adicionales sin desencadenar errores.

Hay dos tipos de agrupaciones de TLV: listas de TLV de tamaño estático y grupos de varios TLV.

Listas de TLV de tamaño estático

Las listas TLV de tamaño estático contienen varios miembros de tamaño estático. Son análogos a las matrices de estilo C estándar.

En este ejemplo, WDI_TLV_UNICAST_ALGORITHM_LIST se define como una lista de WDI_ALGO_PAIRS.

Tipo: WDI_TLV_UNICAST_ALGORITHM_LIST

Longitud: N * sizeof(WDI_ALGO_PAIRS)

Valor: WDI_ALGO_PAIRS[N]

Este uso se especifica en los temas de referencia de TLV con notación de matriz.

Grupos de varios TLV

Cuando no se conoce el tamaño de un objeto determinado con antelación, se usan grupos de varios TLV. Este patrón de uso especifica que se esperan TLV de tamaño variable diferentes dentro de un búfer determinado. El número de entradas (N) no se conoce con antelación y se deduce por el número de TLV coincidentes en el búfer especificado.

En este ejemplo, el búfer primario es un WDI_MESSAGE_HEADER, que define el final del búfer de TLV. Tenga en cuenta que WDI_TLV_BSS_ENTRY pueden intercalarse entre otros tipos de TLV diferentes en el búfer primario.

Offset Campo Tipo
0 WDI_MESSAGE_HEADER Encabezado del mensaje
sizeof(WDI_MESSAGE_HEADER) TLV₀ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₀ + L₀ + sizeof(encabezado TLV) TLV₁ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₁ + L₁ + sizeof(Encabezado TLV) TLVArchivo (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV Propios + L Propios + sizeof(Encabezado TLV) TLV₃ (OTHER_TLV_TYPE) Otro tipo de TLV
TLV₃ + L₃ + sizeof(Encabezado TLV) TLV₄ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY

En el caso de los TLV que contienen otros TLV, los temas de referencia de TLV tienen una columna permitida de varias instancias de TLV . Si se comprueba esta columna, el TLV especificado puede aparecer varias veces. Para obtener un ejemplo de esto, vea WDI_TLV_CONNECT_PARAMETERS.