Operación de radio

Este módulo incluye la abstracción de la plataforma para las 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 potencia 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 coincidencias de direcciones de origen.
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Agrega una dirección corta a la tabla de coincidencias de direcciones de origen.
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
Borra todas las potencias calibradas de la tabla de calibración de energía.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Borra todas las direcciones extendidas y 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)
Habilita, inhabilita o actualiza el sondeo basado en ACK mejorado en la radio para un iniciador específico.
otPlatRadioDisable(otInstance *aInstance)
Inhabilita la radio.
otPlatRadioEnable(otInstance *aInstance)
Habilita la radio.
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
Habilitar o inhabilitar el receptor de 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 de 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 se completó el escaneo de energía.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Obtén las métricas de coexistencia de radio.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Obtén la precisión estimada actual del peor de los casos (desviación máxima de ±se de la frecuencia nominal) del reloj de radio local en unidades de ppm.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
La incertidumbre fija (es decir,
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Obtiene la máscara de canal preferida de radio en la que el dispositivo prefiere configurar.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Obtiene la configuración de energía bruta para un canal determinado.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Obtén el código de región.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Obtén la medición de RSSI más reciente.
otPlatRadioGetState(otInstance *aInstance)
Obtén el estado actual de la radio.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Obtén la máscara de canal compatible con la radio que puede usar el dispositivo.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Obtiene el búfer de fotogramas de transmisión de radio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Verifica si el Coex de radio está habilitado o no.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Comprueba si la radio está habilitada o no.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Pasar la radio de Sueño a Recibir (enciende la radio).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Programa 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)
Establece la potencia de transmisión máxima para un canal específico.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Establece la potencia objetivo para el canal determinado.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Habilita el coex de radio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Establece el código de región.
otPlatRadioSleep(otInstance *aInstance)
Pasar la radio de Recibir a Suspender (apaga la radio).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Inicia 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 marco transmitido como, si corresponde, el marco de confirmación recibido.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
El controlador de radio llama a este método para notificar a OpenThread que se inició la transmisión.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
Se actualizó el tiempo de muestra de CSL en el controlador de radio.

Funciones

otPlatDiagRadioReceiveDone

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.

Se usa cuando el diagnóstico está habilitado.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aFrame
Un puntero para el 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ó un fotograma, OT_ERROR_NO_BUFS cuando no se pudo recibir un fotograma debido a la falta de espacio en el búfer de 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.

Se usa cuando el diagnóstico está habilitado.

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

otPlatRadioAddCalibrating Power

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

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

aActualPower es la potencia de salida real medida 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 potencia sin procesar. Su formato se relaciona con el hardware de radio y debe definirlo los desarrolladores en el controlador de radio de la plataforma. Por ejemplo, si el hardware de radio contiene tanto el chip de radio como el chip FEM, la configuración de energía sin procesar puede ser una combinación del registro de energía de la radio y el valor de ganancia de FEM.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aChannel
El canal de radio
[in] aActualPower
La potencia real en 0.01 dBm.
[in] aRawPowerSetting
Un puntero al array de bytes de configuración de energía sin procesar.
[in] aRawPowerSettingLength
La longitud de aRawPowerSetting.
Valores que se muestran
OT_ERROR_NONE
Se agregó correctamente la alimentación calibrada a la tabla de calibración de energía.
OT_ERROR_NO_BUFS
No hay ninguna entrada disponible en la tabla de calibración de energía.
OT_ERROR_INVALID_ARGS
El valor de aChannel, aActualPower o aRawPowerSetting no es válido, o bien 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 coincidencias de direcciones de origen.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aExtAddress
La dirección extendida que se agregará, la cual se almacenará en orden de bytes little-endian.
Valores que se muestran
OT_ERROR_NONE
Se agregó correctamente la dirección extendida a la tabla de coincidencias de origen.
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 direcciones de origen.

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

Poder calibrado de otPlatRadioClear

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

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

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Valores que se muestran
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.

otPlatRadioClearSrcMatchExtEntradas

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

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

Detalles
Parámetros
[in] aInstance
Estructura de instancias 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 instancias de OpenThread
[in] aExtAddress
La dirección extendida que se quitará almacenada en orden de bytes little-endian.
Valores que se muestran
OT_ERROR_NONE
La dirección extendida se quitó correctamente de la tabla de coincidencias de origen.
OT_ERROR_NO_ADDRESS
La dirección extendida no se encuentra en la tabla de coincidencias de direcciones de origen.

otPlatRadioClearSrcMatchShortEntradas

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 instancias 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 instancias de OpenThread
[in] aShortAddress
La dirección corta que se quitará.
Valores que se muestran
OT_ERROR_NONE
La dirección corta se quitó correctamente de la tabla de coincidencias de origen.
OT_ERROR_NO_ADDRESS
La dirección corta no se encuentra en la tabla de coincidencias de direcciones de origen.

otPlatRadioConfigureEnhAckProbing

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

Habilita, inhabilita o actualiza el sondeo basado en ACK mejorado en la radio para un iniciador específico.

Después de que un iniciador de sondeo específico configure el sondeo basado en el ACK mejorado, el ACK mejorado que se envía a ese nodo debe incluir el IE específico del proveedor que contenga datos de las métricas de vínculos. Este método le indica a la radio que inicie y detenga la recopilación de datos de métricas de vínculos, además de incluir IE específicos del proveedor que contienen los datos en el ACK mejorado que se enviaron a ese iniciador de sondeo.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aLinkMetrics
Este parámetro especifica qué métricas consultar. Según la especificación 4.11.3.4.4.6, se pueden especificar 2 métricas como máximo. El sondeo se inhabilitaría si aLinkMetrics es 0 a nivel de bits.
[in] aShortAddress
La dirección corta del iniciador de sondeo.
[in] aExtAddress
La dirección fuente extendida del iniciador de sondeo. aExtAddr NO DEBE ser NULL.
Valores que se muestran
OT_ERROR_NONE
Se configuró correctamente el sondeo basado en ACK mejorado.
OT_ERROR_INVALID_ARGS
aExtAddress es NULL.
OT_ERROR_NOT_FOUND
No se encuentra el iniciador indicado por aShortAddress al intentar borrar.
OT_ERROR_NO_BUFS
No se admite más Iniciador.
OT_ERROR_NOT_IMPLEMENTED
La función no está implementada.

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

Inhabilita la radio.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Valores que se muestran
OT_ERROR_NONE
Se realizó correctamente la transición a Inhabilitada.
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 instancias de OpenThread
Valores que se muestran
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 de CSL

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aCslPeriod
Período de CSL, 0 para inhabilitar CSL. El punto de CSL está en una unidad de 10 símbolos.
[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 que se muestran
kErrorNotImplemented
El controlador de radio no es compatible con la CSL.
kErrorFailed
Otros errores específicos de la plataforma
kErrorNone
Se habilitó o inhabilitó correctamente 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 dirección de origen controla cómo la capa de radio decide el bit "marco pendiente" para las confirmaciones enviadas en respuesta a comandos de solicitud de datos de los elementos secundarios.

Si se inhabilita, la capa de radio debe establecer el “marco pendiente” en todas las confirmaciones para los comandos de solicitud de datos.

Si se habilita, la capa de radio utiliza la tabla de coincidencias de direcciones de origen para determinar si se debe establecer o borrar el bit de "marco pendiente" en una confirmación de un comando de solicitud de datos.

La tabla de coincidencias de direcciones de origen proporciona la lista de 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 coincidencias de direcciones de origen.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aEnable
Habilitar o inhabilitar la función de coincidencia de direcciones de origen.

otPlatRadioEnergyScan

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

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

Se usa cuando la radio proporciona la función OT_RADIO_CAPS_ENERGY_SCAN.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aScanChannel
Es el canal en el que se realizará el análisis de energía.
[in] aScanDuration
Es la duración, en milisegundos, del canal que se analizará.
Valores que se muestran
OT_ERROR_NONE
Se inició correctamente la búsqueda del canal.
OT_ERROR_BUSY
La radio está realizando una búsqueda de energía.
OT_ERROR_NOT_IMPLEMENTED
La radio no admite la búsqueda 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 se completó el escaneo de energía.

Se usa cuando la radio proporciona la función OT_RADIO_CAPS_ENERGY_SCAN.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aEnergyScanMaxRssi
El RSSI máximo que se encontró en el canal analizado.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

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

Se usa cuando la función OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE está habilitada.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[out] aCoexMetrics
Un puntero a la estructura de métricas de coexistencia.
Valores que se muestran
OT_ERROR_NONE
Se recuperaron correctamente las métricas coex.
OT_ERROR_INVALID_ARGS
aCoexMetrics era NULL.

otPlatRadioGetCslExactitud

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Obtén la precisión estimada actual del peor de los casos (desviación máxima de ±se de la frecuencia nominal) del reloj de radio local en unidades de ppm.

Este es el reloj que se usa para programar operaciones de CSL.

En caso de que la implementación no calcule el valor actual, pero muestre un valor fijo, este valor DEBE ser la peor exactitud posible en todas las condiciones de operación previstas (temperatura, presión, etc.) de la implementación.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
El desvío actual de la programación de rx/tx de CSL, en PPM

otPlatRadioGetCslIncertidumbre

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

La incertidumbre fija (es decir,

jitter aleatorio) de la hora de llegada de las transmisiones de CSL que recibe este dispositivo en unidades de 10 microsegundos.

Esto designa la peor desviación positiva o negativa constante de la hora de llegada real de una transmisión respecto del tiempo de transmisión calculado en relación con el reloj de radio local, independientemente del tiempo transcurrido. Además de la incertidumbre acumulada durante el tiempo transcurrido, la muestra del canal de CSL ("ventana RX") debe extenderse al doble de esta desviación para que el receptor local garantice que el receptor local detecte una transmisión real en presencia de un jitter aleatorio de la hora de llegada.

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

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

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

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

otPlatRadioGetRawPowerSetting

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

Obtiene la configuración de energía bruta para un canal determinado.

La capa de radio de la plataforma debe analizar la configuración de energía sin procesar según el formato definido de la capa de radio y establecer los parámetros de cada módulo de hardware de radio.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aChannel
El canal de radio
[out] aRawPowerSetting
Un puntero al array de bytes de configuración de energía sin procesar.
[in,out] aRawPowerSettingLength
En la entrada, un puntero del tamaño de aRawPowerSetting. En la salida, un puntero hacia la longitud de los datos de configuración de energía sin procesar.
Valores que se muestran
OT_ERROR_NONE
Conseguiste la potencia objetivo.
OT_ERROR_INVALID_ARGS
El valor de 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 aChannel.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

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

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

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

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

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

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

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Obtén el estado actual de la radio.

OpenThread no lo requiere. Se puede usar con fines específicos de aplicaciones o depuración.

Detalles
Parámetros
[in] aInstance
Estructura de instancias 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 que puede usar el dispositivo.

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

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

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

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

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

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Verifica si el Coex de radio está habilitado o no.

Se usa cuando la función OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE está habilitada.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Qué muestra
TRUE si el coex de radio está habilitado, FALSE de lo contrario.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Comprueba si la radio está habilitada o no.

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

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Pasar la radio de Sueño a Recibir (enciende la radio).

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aChannel
Es el canal que se usará para la recepción.
Valores que se muestran
OT_ERROR_NONE
Se realizó correctamente la transición a Recibir.
OT_ERROR_INVALID_STATE
La radio estaba desactivada o transmitiendo.

otPlatRadioReceiveAt

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

Programa 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 recibe.
[in] aStart
La hora de inicio de la ventana de recepción en relación con el reloj de la radio local, consulta otPlatRadioGetNow. El receptor de radio DEBE estar encendido y listo para recibir el primer símbolo de la SHR de un fotograma a la hora de inicio de la ventana.
[in] aDuration
La duración de la ventana de recepción, en microsegundos, según la medición del reloj de radio local. La radio DEBE desactivarse (o cambiarse al modo TX si se debe enviar un fotograma ACK) después de ese tiempo, a menos que aún esté recibiendo un fotograma de forma activa. En este último caso, la radio SE DEBE permanecer en el modo de recepción hasta que la recepción de la trama se haya completado correctamente o haya fallado.
Valores que se muestran
OT_ERROR_NONE
Se programó correctamente el período de recepción.
OT_ERROR_FAILED
No se pudo programar el período de recepción.

otPlatRadioReceiveDone

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 instancias de OpenThread
[in] aFrame
Un puntero para el 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ó un fotograma, OT_ERROR_NO_BUFS cuando no se pudo recibir un fotograma debido a la falta de espacio en el búfer de RX

otPlatRadioSetChannelMaxTransmitPower

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

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

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aChannel
El canal de radio
[in] aMaxPower
La potencia máxima en dBm, si se pasa OT_RADIO_RSSI_INVALID, se inhabilitará este canal.
Valores que se muestran
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 objetivo para el canal determinado.

El controlador de la radio debe configurar la potencia de salida real para que sea menor o igual que la potencia objetivo y lo más cercana posible a la potencia objetivo.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aChannel
El canal de radio
[in] aTargetPower
Potencia objetivo en 0.01 dBm. Si pasas INT16_MAX, este canal no podrá usar el poder de destino.
Valores que se muestran
OT_ERROR_NONE
Se estableció correctamente la potencia objetivo.
OT_ERROR_INVALID_ARGS
La aChannel o la aTargetPower no son válidas.
OT_ERROR_NOT_IMPLEMENTED
La función no está implementada.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Habilita el coex de radio.

Se usa cuando la función OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE está habilitada.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aEnabled
TRUE para habilitar el coex de radio, de lo contrario, FALSE.
Valores que se muestran
OT_ERROR_NONE
Se habilitó correctamente.
OT_ERROR_FAILED
No se pudo habilitar el coex de radio.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Establece el código de región.

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

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

otPlatRadioSueño

otError otPlatRadioSleep(
  otInstance *aInstance
)

Pasar la radio de Recibir a Suspender (apaga la radio).

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Valores que se muestran
OT_ERROR_NONE
Se realizó correctamente la transición al modo de suspensión.
OT_ERROR_BUSY
La radio estaba transmitiendo.
OT_ERROR_INVALID_STATE
La radio estaba inhabilitada.

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Inicia la secuencia de transmisión en la radio.

El emisor debe formar la trama 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 lo siguiente:

  1. Transición de la radio a transmitir desde uno de los siguientes estados:
    • Recibir si la RX está activada cuando el dispositivo está inactivo o no se admite OT_RADIO_CAPS_SLEEP_TO_TX
    • Se suspenderá si la RX está desactivada cuando el dispositivo esté inactivo y se admita OT_RADIO_CAPS_SLEEP_TO_TX.
  2. Transmite el psdu en un canal determinado y a la potencia de transmisión determinada.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aFrame
Un puntero al marco que se transmitirá.
Valores que se muestran
OT_ERROR_NONE
Se realizó correctamente la transición a Transmitir.
OT_ERROR_INVALID_STATE
La radio no tenía 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 marco transmitido como, si corresponde, el marco de confirmación recibido.

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

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aFrame
Un puntero para el 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 transmitió el fotograma, OT_ERROR_NO_ACK cuando se transmitió el fotograma, pero no se recibió ningún ACK, no se pudo llevar a cabo OT_ERROR_CHANNEL_ACCESS_FAILURE debido a la actividad en el canal, y 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 se inició la transmisión.

Detalles
Parámetros
[in] aInstance
Un puntero a la estructura de instancias de OpenThread.
[in] aFrame
Un puntero para el fotograma que se transmite.

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

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

El tiempo de muestra se almacena en el controlador de radio como una copia para calcular la fase cuando se envía ACK con CSL IE. La muestra de CSL (ventana) del receptor de CSL se extiende antes y después del tiempo de la muestra. El tiempo de muestra de CSL marca una marca de tiempo en la ventana de muestra de CSL cuando se debe recibir un fotograma en “condiciones ideales” si no hay información inexacta o desviación del reloj.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aCslSampleTime
El siguiente tiempo de muestreo, en microsegundos. Es el momento en que se espera el primer símbolo de la MHR del fotograma.

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 a fin de contribuir a nuestra documentación, consulta Recursos.