Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Operación de radio

Este módulo incluye la abstracción de plataformas para operaciones de radio.

Resumen

Funciones

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
El controlador de radio llama a este método para notificar al módulo de diagnóstico de OpenThread sobre un fotograma recibido.
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
El controlador de radio llama a este método para notificar al módulo de diagnóstico de OpenThread que se completó la transmisión.
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
Agrega una alimentación calibrada del canal especificado a la tabla de calibración de energía.
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Agrega una dirección extendida a la tabla de coincidencia de direcciones de origen.
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Agrega una dirección corta a la tabla de coincidencias de la dirección de origen.
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
Borra todas las energías calibradas de la tabla de calibración de energía.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Borra todas las direcciones extendidas/largas de la tabla de coincidencias de direcciones de origen.
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Quita una dirección extendida de la tabla de coincidencias de direcciones de origen.
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
void
Borra todas las direcciones cortas de la tabla de coincidencias de direcciones de origen.
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Quita una dirección corta de la tabla de coincidencias de direcciones de origen.
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Permite habilitar o inhabilitar el sondeo basado en ACK mejorado en la radio de un iniciador específico.
otPlatRadioDisable(otInstance *aInstance)
Inhabilitar la radio
otPlatRadioEnable(otInstance *aInstance)
Habilita la radio.
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
Habilitar o inhabilitar el receptor CSL
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
Habilita o inhabilita la función de coincidencia de direcciones de origen.
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Inicia la secuencia del escaneo de energía en la radio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
El controlador de radio llama a este método para notificar a OpenThread que el escaneo de energía está completo.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Obtén las métricas de coexistencia de radios.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Obtenga la precisión actual, en unidades de ± ppm, del reloj utilizado para programar operaciones de CSL.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
La incertidumbre corregida del Dispositivo para programar transmisiones de CSL en unidades de 10 microsegundos.
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Obtiene la máscara de canal preferida de la radio en la que el dispositivo prefiere formar.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Obtiene la configuración de energía sin procesar para el canal específico.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Obtén el código de región.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Obtén la medición RSSI más reciente.
otPlatRadioGetState(otInstance *aInstance)
Obtiene el estado actual de la radio.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Obtén la máscara de canal compatible con la radio en la que se puede colocar el dispositivo.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Obtiene el búfer de marco de transmisión de radio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Verifica si está habilitada la radio coex.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Verifica si la radio está habilitada o no.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Haz la transición de la radio de suspensión a recepción (encienda la radio).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Programar una ventana de recepción de radio a una hora y duración específicas.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
El controlador de radio llama a este método para notificar a OpenThread sobre un fotograma recibido.
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Configura la potencia de transmisión máxima para un canal específico.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Establece la potencia de destino para el canal específico.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Habilita la conexión coex de radio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Establece el código de región.
otPlatRadioSleep(otInstance *aInstance)
Haz la transición de la radio de Recibir a estado de suspensión (desactiva la radio).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Comienza la secuencia de transmisión en la radio.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
El controlador de radio llama a esta función para notificar a OpenThread que se completó la operación de transmisión, y proporciona tanto el fotograma transmitido como el fotograma ack recibido, si corresponde.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
El controlador de radio llama a este método para notificar a OpenThread que comenzó la transmisión.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
Se actualizó el tiempo de muestreo de CSL en el controlador de radio.

Funciones

otPlatDiagRadioReceiveListo

void otPlatDiagRadioReceiveDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

El controlador de radio llama a este método para notificar al módulo de diagnóstico de OpenThread sobre un fotograma recibido.

Esta función se usa cuando está habilitado el diagnóstico.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aFrame
Un puntero al marco recibido o NULL si la operación de recepción falló.
[in] aError
OT_ERROR_NONE cuando se recibió correctamente un fotograma, OT_ERROR_ABORT cuando se anuló la recepción y no se recibió el fotograma, OT_ERROR_NO_BUFS cuando no se pudo recibir un fotograma debido a la falta de espacio de búfer RX.

otPlatDiagRadioTransmitDone

void otPlatDiagRadioTransmitDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

El controlador de radio llama a este método para notificar al módulo de diagnóstico de OpenThread que se completó la transmisión.

Esta función se usa cuando está habilitado el diagnóstico.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aFrame
Un puntero al marco que se transmitió.
[in] aError
OT_ERROR_NONE cuando se transmitió el fotograma, OT_ERROR_CHANNEL_ACCESS_FAILURE tx no pudo realizarse debido a la actividad del canal, OT_ERROR_ABORT cuando se anuló la transmisión por otros motivos.

otPlatRadioAddCalibratedPower

otError otPlatRadioAddCalibratedPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aActualPower,
  const uint8_t *aRawPowerSetting,
  uint16_t aRawPowerSettingLength
)

Agrega una alimentación calibrada del canal especificado a la tabla de calibración de energía.

Nota: Esta API es una API opcional de plataforma de radio. La implementación de la plataforma depende de ella. aActualPower es la potencia de salida medida real cuando los parámetros de los módulos de hardware de radio se establecen en aRawPowerSetting.

La configuración de potencia sin procesar es un array de bytes opaco. OpenThread no define el formato de la configuración de energía sin procesar. Su formato está relacionado con el hardware de radio y debe definirlo los desarrolladores del controlador de radio de la plataforma. Por ejemplo, si el hardware de radio contiene el chip de radio y el chip FEM, la configuración de energía sin procesar puede ser una combinación del registro de alimentación de radio y el valor de ganancia del FEM.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aChannel
El canal de radio
[in] aActualPower
La potencia real en 0.01 dBm.
[in] aRawPowerSetting
Un puntero al arreglo de bytes de configuración de energía sin procesar.
[in] aRawPowerSettingLength
La longitud de aRawPowerSetting.
Valores de retorno
OT_ERROR_NONE
Se agregó correctamente la alimentación calibrada a la tabla de calibración.
OT_ERROR_NO_BUFS
No hay ninguna entrada disponible en la tabla de calibración de energía.
OT_ERROR_INVALID_ARGS
aChannel, aActualPower o aRawPowerSetting no son válidos o la aActualPower ya existe en la tabla de calibración de energía.
OT_ERROR_NOT_IMPLEMENTED
Esta función no está implementada.

otPlatRadioAddSrcMatchExtEntry

otError otPlatRadioAddSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

Agrega una dirección extendida a la tabla de coincidencia de direcciones de origen.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aExtAddress
La dirección extendida que se agregará y se almacenará en orden de bytes en little-endian.
Valores de retorno
OT_ERROR_NONE
Se agregó correctamente la dirección extendida a la tabla de coincidencia de fuentes.
OT_ERROR_NO_BUFS
No hay entradas disponibles en la tabla de coincidencias de origen.

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Agrega una dirección corta a la tabla de coincidencias de la dirección de origen.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aShortAddress
La dirección corta que se agregará.
Valores de retorno
OT_ERROR_NONE
Se agregó correctamente la dirección corta a la tabla de coincidencia de fuentes.
OT_ERROR_NO_BUFS
No hay entradas disponibles en la tabla de coincidencias de origen.

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

Borra todas las energías calibradas de la tabla de calibración de energía.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Valores de retorno
OT_ERROR_NONE
Se borraron correctamente todas las potencias calibradas de la tabla de calibración de energía.
OT_ERROR_NOT_IMPLEMENTED
Esta función no está implementada.

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Borra todas las direcciones extendidas/largas de la tabla de coincidencias de direcciones de origen.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.

otPlatRadioClearSrcMatchExtEntry

otError otPlatRadioClearSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

Quita una dirección extendida de la tabla de coincidencias de direcciones de origen.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aExtAddress
La dirección extendida que se quitará se almacenará en orden de bytes en little-endian.
Valores de retorno
OT_ERROR_NONE
Se quitó correctamente la dirección extendida de la tabla de coincidencia de fuentes.
OT_ERROR_NO_ADDRESS
La dirección extendida no se encuentra en la tabla de coincidencias de la dirección de origen.

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Borra todas las direcciones cortas de la tabla de coincidencias de direcciones de origen.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Quita una dirección corta de la tabla de coincidencias de direcciones de origen.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aShortAddress
La dirección corta que se quitará.
Valores de retorno
OT_ERROR_NONE
Se quitó correctamente la dirección corta de la tabla de coincidencia de fuentes.
OT_ERROR_NO_ADDRESS
La dirección corta no se encuentra en la tabla de coincidencias de la dirección de origen.

otPlatRadioConfigureEnhAckProbing

otError otPlatRadioConfigureEnhAckProbing(
  otInstance *aInstance,
  otLinkMetrics aLinkMetrics,
  otShortAddress aShortAddress,
  const otExtAddress *aExtAddress
)

Permite habilitar o inhabilitar el sondeo basado en ACK mejorado en la radio de un iniciador específico.

Después de que un iniciador de sondeo específico configure un sondeo basado en mejorado, el envío mejorado a ese nodo debe incluir el IE específico del proveedor que contiene los datos de métricas de vínculo. Este método le informa a la radio que comience o se detenga para recopilar datos de las métricas de vínculos y que incluya el IE específico del proveedor que contenga los datos de Enhanced-ACK enviados a ese iniciador de sondeo.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aLinkMetrics
Este parámetro especifica qué métricas consultar. Según las especificaciones 4.11.3.4.4.6, se pueden especificar 2 métricas como máximo. El sondeo se inhabilitaría si aLinkMetrics es un bit a cero 0.
[in] aShortAddress
La dirección corta del iniciador de sondeo.
[in] aExtAddress
La dirección de origen extendida del iniciador de sondeo. aExtAddr NO DEBE ser NULL.
Valores de retorno
OT_ERROR_NONE
Se configuró correctamente el sondeo mejorado basado en confirmación.
OT_ERROR_INVALID_ARGS
aExtAddress es NULL.
OT_ERROR_NOT_FOUND
No se encuentra el iniciador que indica aShortAddress cuando se intenta borrar.
OT_ERROR_NO_BUFS
Ya no se admite Initiator.
OT_ERROR_NOT_IMPLEMENTED
La función no está implementada.

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

Inhabilitar la radio

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Valores de retorno
OT_ERROR_NONE
La transición se realizó correctamente a Inhabilitado.
OT_ERROR_INVALID_STATE
La radio no estaba en estado de suspensión.

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Habilita la radio.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Valores de retorno
OT_ERROR_NONE
Se habilitó correctamente.
OT_ERROR_FAILED
No se pudo habilitar la radio.

otPlatRadioEnableCsl

otError otPlatRadioEnableCsl(
  otInstance *aInstance,
  uint32_t aCslPeriod,
  otShortAddress aShortAddr,
  const otExtAddress *aExtAddr
)

Habilitar o inhabilitar el receptor CSL

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aCslPeriod
Período de CSL, 0 para inhabilitar la CSL.
[in] aShortAddr
La dirección de origen corta del par del receptor de CSL.
[in] aExtAddr
La dirección de origen extendida del par del receptor de CSL.
Valores de retorno
kErrorNotImplemented
El controlador de radio no es compatible con CSL.
kErrorFailed
Otros errores específicos de la plataforma.
kErrorNone
Se habilitó o inhabilitó correctamente el CSL.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Habilita o inhabilita la función de coincidencia de direcciones de origen.

La función de coincidencia de direcciones de origen controla cómo la capa de radio decide el bit de “marco pendiente” para las confirmaciones enviadas en respuesta a comandos de solicitud de datos de niños.

Si está inhabilitada, la capa de radio debe establecer el "marco pendiente" en todas las confirmaciones a los comandos de solicitud de datos.

Si se habilita, la capa de radio usa la tabla de coincidencia de dirección de origen para determinar si se debe establecer o borrar el bit "marco pendiente" en un ack a un comando de solicitud de datos.

La tabla de coincidencia de dirección de origen proporciona la lista de los elementos secundarios para los que hay un marco pendiente. Se puede agregar una dirección corta o una dirección extendida/larga a la tabla de coincidencia de direcciones de origen.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aEnable
Habilita o inhabilita la función de coincidencia de direcciones de origen.

otPlatRadioEnergyScan

otError otPlatRadioEnergyScan(
  otInstance *aInstance,
  uint8_t aScanChannel,
  uint16_t aScanDuration
)

Inicia la secuencia del escaneo de energía en la radio.

Esta función se utiliza cuando la radio proporciona la capacidad OT_RADIO_CAPS_ENERGY_SCAN.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aScanChannel
El canal en el que se realizará el escaneo de energía.
[in] aScanDuration
La duración (en milisegundos) del canal que se analizará.
Valores de retorno
OT_ERROR_NONE
Se inició correctamente la búsqueda del canal.
OT_ERROR_BUSY
La radio realiza análisis escaneados.
OT_ERROR_NOT_IMPLEMENTED
La radio no admite el escaneo de energía.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

El controlador de radio llama a este método para notificar a OpenThread que el escaneo de energía está completo.

Esta función se utiliza cuando la radio proporciona la capacidad OT_RADIO_CAPS_ENERGY_SCAN.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aEnergyScanMaxRssi
La cantidad máxima de RSSI que se encontró en el canal escaneado.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Obtén las métricas de coexistencia de radios.

Esta función se utiliza cuando la función OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE está habilitada.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[out] aCoexMetrics
Un puntero para la estructura de métricas de coexistencia.
Valores de retorno
OT_ERROR_NONE
Las métricas de Coex se recuperaron correctamente.
OT_ERROR_INVALID_ARGS
aCoexMetrics era NULL.

otPlatRadioGetCslExactitud

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Obtenga la precisión actual, en unidades de ± ppm, del reloj utilizado para programar operaciones de CSL.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
Desvío de programación rx/tx actual de CSL, en unidades de ± ppm.

otPlatRadioGetCslInciertoty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

La incertidumbre corregida del Dispositivo para programar transmisiones de CSL en unidades de 10 microsegundos.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
La incertidumbre sobre la CSL en unidades de 10 unidades.

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Obtiene la máscara de canal preferida de la radio en la que el dispositivo prefiere formar.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Qué muestra
Es la máscara de canal preferida por la radio.

otPlatRadioGetRawPowerSetting

otError otPlatRadioGetRawPowerSetting(
  otInstance *aInstance,
  uint8_t aChannel,
  uint8_t *aRawPowerSetting,
  uint16_t *aRawPowerSettingLength
)

Obtiene la configuración de energía sin procesar para el canal específico.

Nota:OpenThread src/core/utils implementa una implementación predeterminada de la API otPlatRadioAddCalibratedPower(), otPlatRadioClearCalibratedPowers() y otPlatRadioSetChannelTargetPower(). La implementación predeterminada proporciona esta API para obtener la configuración de potencia sin procesar del canal determinado. Si la plataforma no usa la implementación predeterminada, puede ignorar esta API. La capa de radio de la plataforma debe analizar la configuración de energía sin procesar según el formato definido por la capa de radio y establecer los parámetros de cada módulo de hardware de radio.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aChannel
El canal de radio
[out] aRawPowerSetting
Un puntero al arreglo de bytes de configuración de energía sin procesar.
[in,out] aRawPowerSettingLength
En la entrada, un puntero para el tamaño de aRawPowerSetting. En la salida, un puntero a la longitud de los datos de configuración de energía sin procesar.
Valores de retorno
OT_ERROR_NONE
Se obtuvo correctamente el poder de destino.
OT_ERROR_INVALID_ARGS
El aChannel no es válido, aRawPowerSetting o aRawPowerSettingLength es NULL o es demasiado corto.
OT_ERROR_NOT_FOUND
No se encontró la configuración de energía sin procesar para el aChannel.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Obtén el código de región.

El formato de la región de radio es la representación de 2 bytes ASCII del código ISO 3166 alpha-2.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[out] aRegionCode
La región de radio.
Valores de retorno
OT_ERROR_INVALID_ARGS
aRegionCode es nullptr.
OT_ERROR_FAILED
Otros errores específicos de la plataforma.
OT_ERROR_NONE
Se obtuvo el código de región correctamente.
OT_ERROR_NOT_IMPLEMENTED
La función no está implementada.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Obtén la medición RSSI más reciente.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Qué muestra
El RSSI en dBm cuando es válido. 127 cuando el RSSI no es válido

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Obtiene el estado actual de la radio.

OpenThread no requiere esta función. Se puede usar con fines de depuración o específicos de la aplicación.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Qué muestra
Estado actual de la radio.

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Obtén la máscara de canal compatible con la radio en la que se puede colocar el dispositivo.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Qué muestra
Es la máscara de canal compatible con la radio.

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Obtiene el búfer de marco de transmisión de radio.

OpenThread forma el marco IEEE 802.15.4 en este búfer y llama a otPlatRadioTransmit() para solicitar la transmisión.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Qué muestra
Un puntero para el búfer de fotogramas de transmisión.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Verifica si está habilitada la radio coex.

Esta función se utiliza cuando la función OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE está habilitada.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Qué muestra
VERDADERO si el coex de radio está habilitado; de lo contrario, FALSO.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Verifica si la radio está habilitada o no.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Qué muestra
TRUE si la radio está habilitada; de lo contrario, es FALSE.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Haz la transición de la radio de suspensión a recepción (encienda la radio).

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aChannel
El canal que se usará para recibir.
Valores de retorno
OT_ERROR_NONE
La transición se realizó correctamente.
OT_ERROR_INVALID_STATE
La radio se inhabilitó o transmitía.

otPlatRadioReceiveAt

otError otPlatRadioReceiveAt(
  otInstance *aInstance,
  uint8_t aChannel,
  uint32_t aStart,
  uint32_t aDuration
)

Programar una ventana de recepción de radio a una hora y duración específicas.

Detalles
Parámetros
[in] aChannel
El canal de radio en el que se desea recibir la transmisión.
[in] aStart
Hora de inicio del período de recepción, en microsegundos.
[in] aDuration
Duración de la ventana de recepción, en microsegundos
Valores de retorno
OT_ERROR_NONE
Se programó correctamente la ventana de recepción.
OT_ERROR_FAILED
No se pudo programar la ventana de recepción.

otPlatRadioReceiveListo

void otPlatRadioReceiveDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

El controlador de radio llama a este método para notificar a OpenThread sobre un fotograma recibido.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aFrame
Un puntero al marco recibido o NULL si la operación de recepción falló.
[in] aError
OT_ERROR_NONE cuando se recibió correctamente un fotograma, OT_ERROR_ABORT cuando se anuló la recepción y no se recibió el fotograma, OT_ERROR_NO_BUFS cuando no se pudo recibir un fotograma debido a la falta de espacio de búfer RX.

otPlatRadioSetChannelMaxTransmitPower

otError otPlatRadioSetChannelMaxTransmitPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int8_t aMaxPower
)

Configura la potencia de transmisión máxima para un canal específico.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aChannel
El canal de radio
[in] aMaxPower
La potencia máxima en dBm, si se pasa OT_RADIO_RSSI_INVALID, inhabilitará este canal.
Valores de retorno
OT_ERROR_NOT_IMPLEMENTED
La función no está implementada
OT_ERROR_INVALID_ARGS
El canal especificado no es válido.
OT_ERROR_FAILED
Otros errores específicos de la plataforma.
OT_ERROR_NONE
Se estableció correctamente la potencia de transmisión máxima.

otPlatRadioSetChannelTargetPower

otError otPlatRadioSetChannelTargetPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aTargetPower
)

Establece la potencia de destino para el canal específico.

Nota: Esta API es una API opcional de plataforma de radio. La implementación de la plataforma depende de ella. Si se implementa esta API, se debe inhabilitar la función otPlatRadioSetTransmitPower(). El controlador de radio debe establecer la potencia de salida real en menos o igual que la potencia de destino y lo más cerca posible de la de destino.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aChannel
El canal de radio
[in] aTargetPower
La potencia de destino en 0.01dBm. Si pasas INT16_MAX, se inhabilitará este canal para usar el poder de destino.
Valores de retorno
OT_ERROR_NONE
Se estableció correctamente la fuente de destino.
OT_ERROR_INVALID_ARGS
El aChannel o aTargetPower no es válido.
OT_ERROR_NOT_IMPLEMENTED
La función no está implementada.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Habilita la conexión coex de radio.

Esta función se utiliza cuando la función OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE está habilitada.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aEnabled
TRUE para habilitar la función coex de radio; de lo contrario, FALSE.
Valores de retorno
OT_ERROR_NONE
Se habilitó correctamente.
OT_ERROR_FAILED
No se pudo habilitar la función coex de radio.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Establece el código de región.

El formato de la región de radio es la representación de 2 bytes ASCII del código ISO 3166 alpha-2.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aRegionCode
La región de radio.
Valores de retorno
OT_ERROR_FAILED
Otros errores específicos de la plataforma.
OT_ERROR_NONE
Se configuró correctamente el código de región.
OT_ERROR_NOT_IMPLEMENTED
La función no está implementada.

OtPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Haz la transición de la radio de Recibir a estado de suspensión (desactiva la radio).

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
Valores de retorno
OT_ERROR_NONE
La transición se realizó correctamente.
OT_ERROR_BUSY
La radio se transmitía.
OT_ERROR_INVALID_STATE
Se inhabilitó la radio.

otPlatRadioTrans

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Comienza la secuencia de transmisión en la radio.

El emisor debe formar el marco IEEE 802.15.4 en el búfer que proporciona otPlatRadioGetTransmitBuffer() antes de solicitar la transmisión. El canal y la potencia de transmisión también se incluyen en la estructura otRadioFrame.

La secuencia de transmisión consta de los siguientes elementos:

  1. Transición de la radio a transmisión desde uno de los siguientes estados:
    • Recibir si RX está activado cuando el dispositivo está inactivo o OT_RADIO_CAPS_SLEEP_TO_TX no es compatible
    • Se suspende si RX está desactivado cuando el dispositivo está inactivo y se admite OT_RADIO_CAPS_SLEEP_TO_TX.
  2. Transmite la PSI en el canal determinado y en la potencia de transmisión determinada.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aFrame
Un puntero al marco que se transmitirá.
Valores de retorno
OT_ERROR_NONE
La transición a Transmisión se realizó correctamente.
OT_ERROR_INVALID_STATE
La radio no estaba en el estado Recibir.

otPlatRadioTxDone

void otPlatRadioTxDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otRadioFrame *aAckFrame,
  otError aError
)

El controlador de radio llama a esta función para notificar a OpenThread que se completó la operación de transmisión, y proporciona tanto el fotograma transmitido como el fotograma ack recibido, si corresponde.

Cuando la radio proporciona la capacidad OT_RADIO_CAPS_TRANSMIT_SEC, la capa de la plataforma de radio actualiza aFrame con los valores de contador de fotogramas de seguridad y de índice de claves que mantiene la radio.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aFrame
Un puntero al marco que se transmitió.
[in] aAckFrame
Un puntero para el marco ACK, NULL si no se recibió ACK.
[in] aError
OT_ERROR_NONE cuando se transmite el fotograma, OT_ERROR_NO_ACK, cuando se transmitió, pero no se recibió el ACK, OT_ERROR_CHANNEL_ACCESS_FAILURE tx no pudo realizarse debido a la actividad del canal, OT_ERROR_ABORT cuando se anuló la transmisión por otros motivos.

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

El controlador de radio llama a este método para notificar a OpenThread que comenzó la transmisión.

Detalles
Parámetros
[in] aInstance
Un puntero para la estructura de instancias de OpenThread.
[in] aFrame
Un puntero al marco que se está transmitiendo.

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

Se actualizó el tiempo de muestreo de CSL en el controlador de radio.

El tiempo de muestreo se almacena en el controlador de radio como copia para calcular la fase cuando se envía ACK con CSL IE.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread.
[in] aCslSampleTime
La última muestra de tiempo.

Recursos

Los temas de referencia de la API de OpenThread se originan en el código fuente, disponible en GitHub. Para obtener más información o colaborar con nuestra documentación, consulta Recursos.