Operación de radio

En este módulo, se incluye la abstracción de la plataforma para operaciones de radio.

Resumen

remotas

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 potencia.
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
Habilitar o inhabilitar la función de coincidencia de direcciones de origen
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Inicia la secuencia de búsqueda de energía en la radio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
El controlador de la radio llama a este método para notificar a OpenThread que se completó la búsqueda de energía.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Obtén las métricas de coexistencia de radio.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Obtiene la precisión estimada actual en el peor de los casos (desviación máxima de ±5 de la frecuencia nominal) del reloj de la 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 que el dispositivo prefiere formar.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Obtiene la configuración de energía bruta para el 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 en la que el dispositivo puede estar encendido.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Obtiene el búfer de trama 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.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Pasa la radio de Suspender 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 para una hora y duración específicas.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
El controlador de la 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 la región.
otPlatRadioSleep(otInstance *aInstance)
Pasa la radio de Recibir a Suspender (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 la operación de transmisión se completó y proporciona la trama transmitida y, si corresponde, la trama de confirmación recibida.
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
Actualiza el tiempo de muestra de CSL en el controlador de radio.

remotas

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 está habilitado el diagnóstico.

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 recibe un fotograma correctamente, OT_ERROR_ABORT cuando se anula la recepción y no se recibe uno, OT_ERROR_NO_BUFS cuando no se puede recibir un fotograma debido a la falta de espacio del 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 está habilitado el diagnóstico.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aFrame
Un puntero al fotograma que se transmitió.
[in] aError
OT_ERROR_NONE cuando se transmitió el fotograma, OT_ERROR_CHANNEL_ACCESS_ERROR 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.

otPlatRadioAddCalibratedPower

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 potencia.

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 bruta es un array de bytes opaco. OpenThread no define el formato de la configuración de energía sin procesar. Su formato se relaciona con hardware de radio y debe ser definido por 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 bruta puede ser una combinación del registro de energía de la radio y el valor de ganancia del 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 del array de bytes para la configuración de la potencia 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 potencia.
OT_ERROR_INVALID_ARGS
El 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á almacenada 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 ninguna entrada disponible 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
Se agregó correctamente la dirección corta a la tabla de coincidencias de origen.
OT_ERROR_NO_BUFS
No hay ninguna entrada disponible en la tabla de coincidencias de origen.

otPlatRadioClearCalibratedPowers

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.

otPlatRadioClearSrcMatchExtEntries

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á se almacenará en orden de bytes bit-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.

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 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 la Confirmación mejorada, el iniciador de sondeo específico que se envíe a ese nodo debe incluir el IE específico del proveedor que contenga datos de las métricas de vínculos. Este método indica a la radio que inicie o detenga la recopilación de datos de métricas de vínculos, además de incluir IE específico del proveedor que contiene los datos de la Confirmación mejorada 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
Es la dirección corta del iniciador de sondeo.
[in] aExtAddress
Es la dirección de origen 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 Initiator.
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 intercambio de tráfico del receptor de CSL.
Valores que se muestran
kErrorNotImplemented
El controlador de radio no admite CSL.
kErrorFailed
Otros errores específicos de la plataforma
kErrorNone
Se habilitó o inhabilitó correctamente la CSL.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Habilitar o inhabilitar la función de coincidencia de direcciones de origen

La función de coincidencia de dirección de origen controla el modo en que la capa de radio decide el bit "marco pendiente" para las confirmaciones enviadas en respuesta a los 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 "marco pendiente" en una confirmación de un comando de solicitud de datos.

La tabla de coincidencias de la dirección 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 o larga a la tabla de coincidencias de direcciones de origen.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aEnable
Habilitar/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 búsqueda de energía en la radio.

Se usa cuando la radio proporciona la capacidad OT_RADIO_CAPS_ENERGY_SCAN.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aScanChannel
El canal en el que se realizará la búsqueda 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 un escaneo de energía.
OT_ERROR_NOT_IMPLEMENTED
La radio no admite el análisis de energía.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

El controlador de la radio llama a este método para notificar a OpenThread que se completó la búsqueda de energía.

Se usa cuando la radio proporciona la capacidad OT_RADIO_CAPS_ENERGY_SCAN.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aEnergyScanMaxRssi
Es 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 se habilita la función OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE.

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.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Obtiene la precisión estimada actual en el peor de los casos (desviación máxima de ±5 de la frecuencia nominal) del reloj de la 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 precisión posible sobre todas las condiciones de operación posibles 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 programación de rx/tx de CSL, en ppm.

otPlatRadioGetCslUncertainty

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.

Esta indica la peor desviación positiva o negativa constante de la hora de llegada real de una transmisión a partir 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 en el tiempo transcurrido, la muestra del canal de CSL (“ventana RX”) debe extenderse por el doble de esta desviación para que el receptor local garantice que el receptor local detectará una transmisión real en presencia de un jitter aleatorio de hora de llegada.

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

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

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

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Qué muestra
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 el canal determinado.

La capa de radio de la plataforma debe analizar la configuración de energía sin procesar con base en 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 del array de bytes para la configuración de la potencia 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 correctamente 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 bruta 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 ISO 3166 alfa-2.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[out] aRegionCode
Es la región de 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 regional 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. Podría usarse con fines específicos de aplicaciones o depuración.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Qué muestra
Es el 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 el dispositivo puede estar encendido.

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 trama de transmisión de radio.

OpenThread forma la trama 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 trama de transmisión.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

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

Se usa cuando se habilita la función OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE.

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

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Comprueba si la radio está habilitada.

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
)

Pasa la radio de Suspender a Recibir (enciende la radio).

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aChannel
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 para una hora y duración específicas.

Detalles
Parámetros
[in] aChannel
El canal de radio en el que se recibirá la transmisión.
[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 marco a la hora de inicio de la ventana.
[in] aDuration
La duración de la ventana de recepción, en microsegundos, medida por el reloj de radio local. La radio DEBE apagarse (o cambiarse al modo de transmisión si es necesario enviar una trama ACK) después de ese tiempo, a menos que aún esté recibiendo una trama de forma activa. En este último caso, la radio se mantendrá en el modo de recepción hasta que la recepción de fotogramas se haya realizado 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 la 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 recibe un fotograma correctamente, OT_ERROR_ABORT cuando se anula la recepción y no se recibe uno, OT_ERROR_NO_BUFS cuando no se puede recibir un fotograma debido a la falta de espacio del 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 pasas 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
La potencia objetivo en 0.01 dBm. Si se pasa INT16_MAX, se inhabilitará el uso de la potencia de destino de este canal.
Valores que se muestran
OT_ERROR_NONE
Se estableció correctamente la potencia objetivo.
OT_ERROR_INVALID_ARGS
El aChannel o la aTargetPower no son válidos.
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 se habilita la función OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE.

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 la región.

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

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aRegionCode
Es el código regional de la radio. El aRegionCode >> 8 es el primer carácter ASCII y aRegionCode & 0xff es el segundo.
Valores que se muestran
OT_ERROR_FAILED
Otros errores específicos de la plataforma
OT_ERROR_NONE
Se configuró correctamente el código regional.
OT_ERROR_NOT_IMPLEMENTED
La función no está implementada.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Pasa la radio de Recibir a Suspender (desactiva 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
Se inhabilitó la radio.

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Comienza la secuencia de transmisión en la radio.

El emisor debe formar la trama IEEE 802.15.4 en el búfer proporcionado por otPlatRadioGetTransmitBuffer() antes de solicitar la transmisión. La potencia de transmisión y el canal 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 cuando no se admite OT_RADIO_CAPS_SLEEP_TO_TX
    • Suspender si la RX está desactivada cuando el dispositivo está inactivo y se admite 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 fotograma que se transmitirá.
Valores que se muestran
OT_ERROR_NONE
Se realizó correctamente la transición a la transmisión.
OT_ERROR_INVALID_STATE
La radio no estaba en estado de recepción.

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 la operación de transmisión se completó y proporciona la trama transmitida y, si corresponde, la trama de confirmación recibida.

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 del contador de marcos de seguridad que mantiene la radio.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aFrame
Un puntero al fotograma que se transmitió.
[in] aAckFrame
Un puntero para el marco ACK, NULO si no se recibió ACK.
[in] aError
OT_ERROR_NONE cuando se transmitió la trama, OT_ERROR_NO_ACK cuando esta se transmitió, pero no se recibió ninguna ACK, no se pudo llevar a cabo OT_ERROR_CHANNEL_ACCESS_ERROR debido a la actividad en el 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 se inició la transmisión.

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

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

Actualiza el tiempo de muestra de CSL en el controlador de radio.

El tiempo de muestra se almacena en el controlador de radio como copia para calcular la fase al enviar ACK con CSL IE. La muestra de CSL (ventana) del receptor de CSL se extiende antes y después del tiempo de muestreo. 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 inexactitud/desvío del reloj.

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

Recursos

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