O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Operação de rádio

Este módulo inclui a abstração de plataforma para operações de rádio.

Resumo

Funções

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
O driver de rádio chama esse método para notificar o módulo de diagnóstico do OpenThread sobre um frame recebido.
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
O driver de rádio chama esse método para notificar o módulo de diagnóstico do OpenThread de que a transmissão foi concluída.
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
Adiciona uma potência calibrada do canal especificado à tabela de calibração de energia.
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Adicione um endereço estendido à tabela de correspondências de endereço de origem.
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Adicione um endereço curto à tabela de correspondências de endereço de origem.
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
Remova todas as potências calibradas da tabela de calibração.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Limpar todos os endereços estendidos/longos da tabela de correspondências de endereço de origem.
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Remova um endereço estendido da tabela de correspondências do endereço de origem.
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
void
Limpar todos os endereços curtos da tabela de correspondências do endereço de origem.
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Remova um endereço curto da tabela de correspondências do endereço de origem.
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Ativar/desativar ou atualizar a sondagem baseada em ACK aprimorada no rádio para um iniciador específico.
otPlatRadioDisable(otInstance *aInstance)
Desativar o rádio.
otPlatRadioEnable(otInstance *aInstance)
Ativar o rádio.
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
Ative ou desative o receptor de CSL.
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
Ativar/desativar o recurso de correspondência de endereço de origem.
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Inicie a sequência de busca de energia no rádio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
O driver de rádio chama esse método para notificar o OpenThread de que a verificação de energia foi concluída.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Veja as métricas de coexistência de rádio.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Receba a precisão atual, em unidades de ± ppm, do relógio usado para programar operações de CSL.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
A indefinição do dispositivo para programar transmissões da CSL em unidades de 10 microssegundos.
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Recebe a máscara de canal preferencial para rádio em que o dispositivo prefere se formar.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Recebe a configuração de energia bruta para o canal especificado.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Consiga o código da região.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Veja a medição RSSI mais recente.
otPlatRadioGetState(otInstance *aInstance)
Recebe o estado atual do rádio.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Receba a máscara de canal compatível com rádio em que o dispositivo possa estar.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Recebe o buffer de frame da transmissão de rádio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Verifique se o coex de rádio está ativado ou não.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Verifique se o rádio está ativado ou não.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Faça a transição do rádio de Sono para Receber (ative o rádio).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Programe uma janela de recepção de rádio para um horário e duração específicos.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
O driver de rádio chama esse método para notificar o OpenThread sobre um frame recebido.
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Defina a potência máxima de transmissão para um canal específico.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Define a potência desejada para o canal.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Ativar o coex de rádio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Defina o código da região.
otPlatRadioSleep(otInstance *aInstance)
Transição do rádio de Receber para o sono (desligar o rádio).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Começar a sequência de transmissão no rádio.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
O driver de rádio chama essa função para notificar o OpenThread de que a operação de transmissão foi concluída, fornecendo o frame transmitido e, se aplicável, o frame de confirmação recebido.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
O driver de rádio chama esse método para notificar o OpenThread de que a transmissão foi iniciada.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
O tempo de amostra de CSL foi atualizado no driver de rádio.

Funções

OtPlatDiagRadioReceiveDone

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

O driver de rádio chama esse método para notificar o módulo de diagnóstico do OpenThread sobre um frame recebido.

Essa função é usada quando o diagnóstico está ativado.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame recebido ou NULL se a operação de recebimento falhar.
[in] aError
OT_ERROR_NONE quando um frame é recebido, OT_ERROR_ABORT quando a recepção é cancelada e um frame não é recebido, OT_ERROR_NO_BUFS quando não é possível receber um frame devido à falta de espaço de buffer do rx.

OtPlatDiagRadioBroadcastDone

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

O driver de rádio chama esse método para notificar o módulo de diagnóstico do OpenThread de que a transmissão foi concluída.

Essa função é usada quando o diagnóstico está ativado.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame que foi transmitido.
[in] aError
OT_ERROR_NONE quando o frame foi transmitido, OT_ERROR_CHANNEL_ACCESS_FAILURE tx não pôde ocorrer devido à atividade no canal, OT_ERROR_ABORT quando a transmissão foi cancelada por outros motivos.

OtPlatRadioAddCalibratedPower

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

Adiciona uma potência calibrada do canal especificado à tabela de calibração de energia.

Observação: esta API é uma API de plataforma de rádio opcional. A implementação é feita pela camada da plataforma. O aActualPower é a potência de saída real medida quando os parâmetros dos módulos de hardware do rádio são definidos como aRawPowerSetting.

A configuração de energia bruta é uma matriz de bytes opaca. O OpenThread não define o formato da configuração de energia bruta. O formato dele está relacionado a hardware de rádio e precisa ser definido pelos desenvolvedores no driver de rádio da plataforma. Por exemplo, se o hardware de rádio tiver o chip de rádio e o chip FEM, a configuração de energia bruta pode ser uma combinação do registro de energia do rádio e do valor de ganho do FEM.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aChannel
O canal de rádio.
[in] aActualPower
A potência real em 0,01 dBm.
[in] aRawPowerSetting
Um ponteiro para a matriz de bytes da configuração de energia bruta.
[in] aRawPowerSettingLength
O comprimento da aRawPowerSetting.
Retornar valores
OT_ERROR_NONE
A energia calibrada foi adicionada à tabela de calibração.
OT_ERROR_NO_BUFS
Não há entradas disponíveis na tabela de calibração de energia.
OT_ERROR_INVALID_ARGS
aChannel, aActualPower ou aRawPowerSetting são inválidos ou o aActualPower já existe na tabela de calibração de energia.
OT_ERROR_NOT_IMPLEMENTED
Esse recurso não foi implementado.

OtPlatRadioAddSrcMatchExtEntry

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

Adicione um endereço estendido à tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aExtAddress
O endereço estendido a ser adicionado e armazenado em ordem de bytes do endend.
Retornar valores
OT_ERROR_NONE
O endereço estendido foi adicionado à tabela de correspondência de origem.
OT_ERROR_NO_BUFS
Nenhuma entrada disponível na tabela de correspondência de origem.

OtPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Adicione um endereço curto à tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aShortAddress
O endereço curto a ser adicionado.
Retornar valores
OT_ERROR_NONE
O endereço curto foi adicionado à tabela de correspondências de origem.
OT_ERROR_NO_BUFS
Nenhuma entrada disponível na tabela de correspondência de origem.

OtPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

Remova todas as potências calibradas da tabela de calibração.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retornar valores
OT_ERROR_NONE
Todas as potências calibradas foram removidas da tabela de calibração de energia.
OT_ERROR_NOT_IMPLEMENTED
Esse recurso não foi implementado.

OpPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Limpar todos os endereços estendidos/longos da tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.

OtPlatRadioClearSrcMatchExtEntry

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

Remova um endereço estendido da tabela de correspondências do endereço de origem.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aExtAddress
O endereço estendido a ser removido armazenado em ordem de bytes do end-endian.
Retornar valores
OT_ERROR_NONE
O endereço estendido foi removido da tabela de correspondência de origem.
OT_ERROR_NO_ADDRESS
O endereço estendido não está na tabela de correspondência de endereço de origem.

OtPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Limpar todos os endereços curtos da tabela de correspondências do endereço de origem.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.

OtPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Remova um endereço curto da tabela de correspondências do endereço de origem.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aShortAddress
O endereço curto a ser removido.
Retornar valores
OT_ERROR_NONE
O endereço curto foi removido da tabela de correspondência de origem.
OT_ERROR_NO_ADDRESS
O endereço curto não está na tabela de correspondência de endereço de origem.

OtPlatRadioConfigureEnhAckProbing

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

Ativar/desativar ou atualizar a sondagem baseada em ACK aprimorada no rádio para um iniciador específico.

Depois que a Sondagem baseada em ACK for configurada por um iniciador de sondagem específico, a ACK avançada enviada para esse nó precisa incluir o IE específico do fornecedor que contém os dados das métricas de link. Esse método informa o rádio para iniciar/parar a coleta de dados de métricas de links e incluir o IE específico do fornecedor que contém os dados no Enhanced-ACK enviado para esse iniciador de sondagem.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aLinkMetrics
Este parâmetro especifica quais métricas serão consultadas. De acordo com a especificação 4.11.3.4.4.6, é possível especificar no máximo duas métricas. A sondagem será desativada se aLinkMetrics for um bit 0.
[in] aShortAddress
O endereço curto do Iniciador de sondagem.
[in] aExtAddress
O endereço de origem estendido do Iniciador de sondagem. aExtAddr NÃO PODE SER NULL.
Retornar valores
OT_ERROR_NONE
A sondagem baseada em ACK aprimorada foi configurada.
OT_ERROR_INVALID_ARGS
aExtAddress é NULL.
OT_ERROR_NOT_FOUND
O iniciador indicado por aShortAddress não foi encontrado ao tentar limpar.
OT_ERROR_NO_BUFS
Não há mais suporte para o Iniciador.
OT_ERROR_NOT_IMPLEMENTED
O recurso não foi implementado.

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

Desativar o rádio.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retornar valores
OT_ERROR_NONE
Transição para desativada.
OT_ERROR_INVALID_STATE
O rádio não estava em estado de suspensão.

OtPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Ativar o rádio.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retornar valores
OT_ERROR_NONE
Ativado com sucesso.
OT_ERROR_FAILED
Não foi possível ativar o rádio.

OpPlatRadioEnableCsl

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

Ative ou desative o receptor de CSL.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aCslPeriod
Período de CSL, 0 para desativar a CSL.
[in] aShortAddr
O endereço de origem curto do peering do receptor de CSL.
[in] aExtAddr
O endereço de origem estendido do peering do receptor de CSL.
Retornar valores
kErrorNotImplemented
O driver de rádio não é compatível com a CSL.
kErrorFailed
Outros erros específicos da plataforma.
kErrorNone
A CSL foi ativada ou desativada.

OtPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Ativar/desativar o recurso de correspondência de endereço de origem.

O recurso de correspondência de endereço de origem controla como a camada de rádio decide o bit "frame pendente" para as confirmações enviadas em resposta a comandos de solicitação de dados de filhos.

Se desativada, a camada de rádio precisa definir o "frame pendente" em todas as confirmações para comandos de solicitação de dados.

Se ativada, a camada de rádio usa a tabela de correspondência de endereço de origem para determinar se o frame "pendente" precisa ser definido ou limpo em um comando de solicitação de dados.

A tabela de correspondências de endereço de origem fornece a lista dos filhos para os quais há um frame pendente. Um endereço curto ou longo/longo pode ser adicionado à tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aEnable
Ativar/desativar o recurso de correspondência de endereço de origem.

otPlatRadioEnergyScan

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

Inicie a sequência de busca de energia no rádio.

Esta função é usada quando o rádio fornece o recurso OT_RADIO_CAPS_ENERGY_SCAN.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aScanChannel
O canal em que a busca de energia será feita.
[in] aScanDuration
A duração, em milissegundos, do canal a ser verificado.
Retornar valores
OT_ERROR_NONE
A verificação do canal foi iniciada.
OT_ERROR_BUSY
O rádio está fazendo análise de enery.
OT_ERROR_NOT_IMPLEMENTED
O rádio não oferece suporte à leitura de energia.

OpPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

O driver de rádio chama esse método para notificar o OpenThread de que a verificação de energia foi concluída.

Esta função é usada quando o rádio fornece o recurso OT_RADIO_CAPS_ENERGY_SCAN.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aEnergyScanMaxRssi
O RSSI máximo encontrado no canal verificado.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Veja as métricas de coexistência de rádio.

Esta função é usada quando o recurso OPENThread_CONFIG_PLATFORM_RADIO_COEX_ENABLE está ativado.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[out] aCoexMetrics
Um ponteiro para a estrutura de métricas de coexistência.
Retornar valores
OT_ERROR_NONE
As métricas coex foram recuperadas.
OT_ERROR_INVALID_ARGS
aCoexMetrics era NULL.

OtPlatRadioGetCslPrecisão

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Receba a precisão atual, em unidades de ± ppm, do relógio usado para programar operações de CSL.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
O deslocamento atual da programação de CSL rx/tx, em unidades de ± ppm.

OtPlatRadioGetCslIndefinição

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

A indefinição do dispositivo para programar transmissões da CSL em unidades de 10 microssegundos.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
A indefinição da CSL em unidades de 10.

Máscara de canal preferencial

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Recebe a máscara de canal preferencial para rádio em que o dispositivo prefere se formar.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retorna
A máscara de canal preferencial para rádio.

OtPlatRadioGetRawPowerSetting

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

Recebe a configuração de energia bruta para o canal especificado.

Observação:a src/core/utils do OpenThread implementa uma implementação padrão das APIs otPlatRadioAddCalibratedPower(), otPlatRadioClearCalibratedPowers() e otPlatRadioSetChannelTargetPower(). Essa API é fornecida pela implementação padrão para receber a configuração de energia bruta para o canal. Se a plataforma não usa a implementação padrão, ela pode ignorar a API. A camada de rádio da plataforma precisa analisar a configuração de energia bruta com base no formato definido da camada de rádio e definir os parâmetros de cada módulo de hardware de rádio.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aChannel
O canal de rádio.
[out] aRawPowerSetting
Um ponteiro para a matriz de bytes da configuração de energia bruta.
[in,out] aRawPowerSettingLength
Na entrada, um ponteiro para o tamanho de aRawPowerSetting. Na saída, um ponteiro para o comprimento dos dados brutos de configuração de energia.
Retornar valores
OT_ERROR_NONE
A potência de destino foi recebida.
OT_ERROR_INVALID_ARGS
O aChannel é inválido, aRawPowerSetting ou aRawPowerSettingLength é NULL ou é muito curto.
OT_ERROR_NOT_FOUND
A configuração de energia bruta para o aChannel não foi encontrada.

OpPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Consiga o código da região.

O formato da região de rádio é a representação ascii de 2 bytes do código ISO 3166 alfa-2.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[out] aRegionCode
A região da rádio.
Retornar valores
OT_ERROR_INVALID_ARGS
aRegionCode é nulo.
OT_ERROR_FAILED
Outros erros específicos da plataforma.
OT_ERROR_NONE
O código da região foi recebido.
OT_ERROR_NOT_IMPLEMENTED
O recurso não foi implementado.

OtPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Veja a medição RSSI mais recente.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retorna
O RSSI em dBm quando é válido. 127 quando o RSSI for inválido.

OtPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Recebe o estado atual do rádio.

Essa função não é exigida pelo OpenThread. Ele pode ser usado para depuração e/ou fins específicos do aplicativo.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retorna
Estado atual do rádio.

OtPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Receba a máscara de canal compatível com rádio em que o dispositivo possa estar.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retorna
A máscara de canal compatível com rádio.

OtPlatRadioGetBroadcastBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Recebe o buffer de frame da transmissão de rádio.

O OpenThread forma o frame IEEE 802.15.4 nesse buffer e chama otPlatRadioTransmit() para solicitar a transmissão.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retorna
Um ponteiro para o buffer do frame de transmissão.

OtPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Verifique se o coex de rádio está ativado ou não.

Esta função é usada quando o recurso OPENThread_CONFIG_PLATFORM_RADIO_COEX_ENABLE está ativado.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retorna
Verdadeiro se o coex de rádio estiver ativado. Caso contrário, FALSO.

OtPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Verifique se o rádio está ativado ou não.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retorna
Verdadeiro se o rádio estiver ativado. Caso contrário, FALSO.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Faça a transição do rádio de Sono para Receber (ative o rádio).

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aChannel
O canal a ser usado para receber.
Retornar valores
OT_ERROR_NONE
Transição para o recebimento com sucesso.
OT_ERROR_INVALID_STATE
O rádio estava desativado ou transmitindo.

OtPlatRadioReceiveAt

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

Programe uma janela de recepção de rádio para um horário e duração específicos.

Detalhes
Parâmetros
[in] aChannel
O canal de rádio em que o conteúdo será enviado.
[in] aStart
O horário de início da janela de recebimento, em microssegundos.
[in] aDuration
A duração da janela de recebimento, em microssegundos
Retornar valores
OT_ERROR_NONE
A janela de recebimento foi programada.
OT_ERROR_FAILED
Não foi possível programar a janela de recebimento.

OtPlatRadioReceiveDone

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

O driver de rádio chama esse método para notificar o OpenThread sobre um frame recebido.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame recebido ou NULL se a operação de recebimento falhar.
[in] aError
OT_ERROR_NONE quando um frame é recebido, OT_ERROR_ABORT quando a recepção é cancelada e um frame não é recebido, OT_ERROR_NO_BUFS quando não é possível receber um frame devido à falta de espaço de buffer do rx.

OtPlatRadioSetChannelMaxBroadcastPower

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

Defina a potência máxima de transmissão para um canal específico.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aChannel
O canal de rádio.
[in] aMaxPower
A potência máxima em dBm, transmitindo OT_RADIO_RSSI_INVALID, desativará este canal.
Retornar valores
OT_ERROR_NOT_IMPLEMENTED
O recurso não está implementado
OT_ERROR_INVALID_ARGS
O canal especificado não é válido.
OT_ERROR_FAILED
Outros erros específicos da plataforma.
OT_ERROR_NONE
A potência máxima de transmissão foi definida.

OtPlatRadioSetChannelTargetPower

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

Define a potência desejada para o canal.

Observação:esta API é uma API de plataforma de rádio opcional. A implementação é feita pela camada da plataforma. Se essa API for implementada, a função otPlatRadioSetTransmitPower() precisará ser desativada. O driver de rádio precisa definir a potência de saída real como menor ou igual à potência desejada e o mais próximo possível da potência desejada.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aChannel
O canal de rádio.
[in] aTargetPower
A potência desejada em 0,01 dBm. Transmitir INT16_MAX vai desativar este canal para usar a potência desejada.
Retornar valores
OT_ERROR_NONE
A energia desejada foi definida.
OT_ERROR_INVALID_ARGS
aChannel ou aTargetPower são inválidos.
OT_ERROR_NOT_IMPLEMENTED
O recurso não foi implementado.

OtPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Ativar o coex de rádio.

Esta função é usada quando o recurso OPENThread_CONFIG_PLATFORM_RADIO_COEX_ENABLE está ativado.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aEnabled
Verdadeiro para ativar o coex de rádio. Caso contrário, FALSO.
Retornar valores
OT_ERROR_NONE
Ativado com sucesso.
OT_ERROR_FAILED
Não foi possível ativar o coex.

OtPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Defina o código da região.

O formato da região de rádio é a representação ascii de 2 bytes do código ISO 3166 alfa-2.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aRegionCode
A região da rádio.
Retornar valores
OT_ERROR_FAILED
Outros erros específicos da plataforma.
OT_ERROR_NONE
O código da região foi definido.
OT_ERROR_NOT_IMPLEMENTED
O recurso não foi implementado.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Transição do rádio de Receber para o sono (desligar o rádio).

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
Retornar valores
OT_ERROR_NONE
Migramos para o modo de espera.
OT_ERROR_BUSY
O rádio estava transmitindo.
OT_ERROR_INVALID_STATE
O rádio foi desativado.

OtPlatRadioBroadcast

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Começar a sequência de transmissão no rádio.

O autor da chamada precisa formar o frame IEEE 802.15.4 no buffer fornecido pelo otPlatRadioGetTransmitBuffer() antes de solicitar a transmissão. O canal e a potência de transmissão também estão incluídos na estrutura do otRadioFrame.

A sequência de transmissão consiste em:

  1. Transição do rádio para transmitir a partir de um dos seguintes estados:
    • Receber se o RX estiver ativado quando o dispositivo estiver inativo ou se o OT_RADIO_CAPS_SLEEP_TO_TX não for compatível
    • Suspensão se o RX estiver desativado quando o dispositivo estiver inativo e o OT_RADIO_CAPS_SLEEP_TO_TX for compatível.
  2. Transmite o psdu no canal e na potência de transmissão fornecidos.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame a ser transmitido.
Retornar valores
OT_ERROR_NONE
Transição para a transmissão concluída.
OT_ERROR_INVALID_STATE
O rádio não estava no estado Receber.

OtPlatRadioTxDone

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

O driver de rádio chama essa função para notificar o OpenThread de que a operação de transmissão foi concluída, fornecendo o frame transmitido e, se aplicável, o frame de confirmação recebido.

Quando o rádio fornece o recurso OT_RADIO_CAPS_TRANSMIT_SEC, a camada da plataforma de rádio atualiza aFrame com o contador do frame de segurança e os valores de índice de chave mantidos pelo rádio.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame que foi transmitido.
[in] aAckFrame
Um ponteiro para o frame ACK, NULL, se nenhum ACK tiver sido recebido.
[in] aError
OT_ERROR_NONE quando o frame foi transmitido, OT_ERROR_NO_ACK quando o frame foi transmitido, mas nenhum ACK foi recebido, OT_ERROR_CHANNEL_ACCESS_FAILURE tx não pôde ocorrer devido à atividade no canal, OT_ERROR_ABORT quando a transmissão foi cancelada por outros motivos.

OtPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

O driver de rádio chama esse método para notificar o OpenThread de que a transmissão foi iniciada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a estrutura de instância do OpenThread.
[in] aFrame
Um ponteiro para o frame que está sendo transmitido.

OtPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

O tempo de amostra de CSL foi atualizado no driver de rádio.

O tempo de amostra é armazenado no driver de rádio como uma cópia para calcular a fase ao enviar o ACK com o CSL IE.

Detalhes
Parâmetros
[in] aInstance
Estrutura da instância do OpenThread.
[in] aCslSampleTime
A amostra de horário mais recente.

Recursos

Os tópicos de referência da API OpenThread são provenientes do código-fonte, disponível no GitHub. Para mais informações ou para contribuir com nossa documentação, consulte Recursos.