Funzionamento radio

Questo modulo include l'astrazione della piattaforma per le operazioni radio.

Riepilogo

Functions

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Il driver della radio chiama questo metodo per inviare una notifica al modulo di diagnostica OpenThread relativo a un frame ricevuto.
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Il driver radio contatta questo metodo per comunicare al modulo diagnostico OpenThread che la trasmissione è stata completata.
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Aggiungi un indirizzo esteso alla tabella delle corrispondenze degli indirizzi di origine.
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Aggiungi un indirizzo breve alla tabella delle corrispondenze dell'indirizzo di origine.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Cancella tutti gli indirizzi estesi/lungi dalla tabella delle corrispondenze degli indirizzi di origine.
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Rimuovi un indirizzo esteso dalla tabella delle corrispondenze dell'indirizzo di origine.
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
void
Cancella tutti gli indirizzi brevi dalla tabella delle corrispondenze degli indirizzi di origine.
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Rimuovi un indirizzo breve dalla tabella delle corrispondenze dell'indirizzo di origine.
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Attiva/disattiva o aggiorna il probe basato su ACK avanzato in radio per un iniziatore specifico.
otPlatRadioDisable(otInstance *aInstance)
Disattiva la radio.
otPlatRadioEnable(otInstance *aInstance)
Attiva la radio.
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
Attiva o disattiva il ricevitore CSL.
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
Attiva/disattiva la corrispondenza di indirizzi di origine.
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Avvia la sequenza di scansione energetica della radio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
Il driver della radio chiama questo metodo per comunicare a OpenThread che la scansione energetica è stata completata.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Recupera le metriche di coesistenza della radio.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Ottieni la precisione corrente, in unità di ± ppm, dell'orologio utilizzato per pianificare le operazioni CSL.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
L'incertezza fissa del Dispositivo per la pianificazione delle Trasmissioni CSL in unità di 10 microsecondi.
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Acquista la maschera del canale radio preferita su cui il dispositivo preferisce formare.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Recupera il codice regione.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Recupera la misurazione RSSI più recente.
otPlatRadioGetState(otInstance *aInstance)
Sapere lo stato attuale della radio.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Procurati la maschera del canale radio supportata da cui è consentito l'accensione del dispositivo.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Ottieni il buffer di trasmissione radio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Controlla se il coex è attivato o meno.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Controlla se la radio è attiva o meno.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Attiva la transizione dalla modalità di sospensione a quella di ricezione.
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Programmare una finestra di ricezione radio per un'ora e una durata specifiche.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Il driver radio contatta questo metodo per informare OpenThread di un frame ricevuto.
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Impostare la potenza massima di trasmissione per un determinato canale.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Attiva il coex radio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Imposta il codice regione.
otPlatRadioSleep(otInstance *aInstance)
Trasmettere la radio da Ricevi a Sonno (spegni la radio).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Avvia la sequenza di trasmissione sulla radio.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
Il driver della radio chiama questa funzione per informare OpenThread che l'operazione di trasmissione è stata completata, fornendo sia il frame trasmesso sia, se applicabile, il frame dell'ac ricevuto.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
Il driver radio contatta questo metodo per comunicare a OpenThread che la trasmissione è iniziata.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
Aggiorna tempo di campionamento CSL nel driver radio.

Functions

otPlatDiagRadioReceiveDone

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

Il driver della radio chiama questo metodo per inviare una notifica al modulo di diagnostica OpenThread relativo a un frame ricevuto.

Questa funzione viene utilizzata quando è attiva la diagnostica.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore sul frame ricevuto o NULL se l'operazione di ricezione non è andata a buon fine.
[in] aError
OT_ERROR_NONE quando ha ricevuto correttamente un frame, OT_ERROR_ABORT quando la ricezione è stata interrotta e non è stata ricevuta. OT_ERROR_NO_BUFS quando non è stato possibile ricevere un frame a causa dello spazio di buffer rx insufficiente.

otPlatDiagRadioTransmitDone

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

Il driver radio contatta questo metodo per comunicare al modulo diagnostico OpenThread che la trasmissione è stata completata.

Questa funzione viene utilizzata quando è attiva la diagnostica.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore sul frame che è stato trasmesso.
[in] aError
OT_ERROR_NONE quando il frame è stato trasmesso, OT_ERROR_CHANNEL_ACCESS_FAILURE tx non può essere stato eseguito a causa di attività sul canale, OT_ERROR_ABORT quando la trasmissione è stata interrotta per altri motivi.

otPlatRadioAddSrcMatchExtEntry

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

Aggiungi un indirizzo esteso alla tabella delle corrispondenze degli indirizzi di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aExtAddress
L'indirizzo esteso da aggiungere è memorizzato in ordine byte byte piccolo.
Valori di ritorno
OT_ERROR_NONE
Indirizzo esteso aggiunto alla tabella delle corrispondenze di origine.
OT_ERROR_NO_BUFS
Nessuna voce disponibile nella tabella delle corrispondenze di origine.

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Aggiungi un indirizzo breve alla tabella delle corrispondenze dell'indirizzo di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aShortAddress
L'indirizzo breve da aggiungere.
Valori di ritorno
OT_ERROR_NONE
Indirizzo breve aggiunto alla tabella delle corrispondenze di origine.
OT_ERROR_NO_BUFS
Nessuna voce disponibile nella tabella delle corrispondenze di origine.

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Cancella tutti gli indirizzi estesi/lungi dalla tabella delle corrispondenze degli indirizzi di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.

otPlatRadioClearSrcMatchExtEntry

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

Rimuovi un indirizzo esteso dalla tabella delle corrispondenze dell'indirizzo di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aExtAddress
L'indirizzo esteso da rimuovere archiviato nell'ordine dei byte di fine endian.
Valori di ritorno
OT_ERROR_NONE
Rimozione dell'indirizzo esteso dalla tabella delle corrispondenze di origine riuscita.
OT_ERROR_NO_ADDRESS
L'indirizzo esteso non è presente nella tabella delle corrispondenze dell'indirizzo di origine.

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Cancella tutti gli indirizzi brevi dalla tabella delle corrispondenze degli indirizzi di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Rimuovi un indirizzo breve dalla tabella delle corrispondenze dell'indirizzo di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aShortAddress
L'indirizzo breve da rimuovere.
Valori di ritorno
OT_ERROR_NONE
Rimozione dell'indirizzo breve dalla tabella delle corrispondenze di origine riuscita.
OT_ERROR_NO_ADDRESS
L'indirizzo breve non è presente nella tabella delle corrispondenze dell'indirizzo di origine.

otPlatRadioConfigureEnhAckProbing

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

Attiva/disattiva o aggiorna il probe basato su ACK avanzato in radio per un iniziatore specifico.

Dopo che il probe basato su ACK avanzato è stato configurato da un iniziatore del probing specifico, il ACK avanzato inviato a tale nodo deve includere IE specifico del fornitore contenente i dati delle metriche del link. Questo metodo indica alla radio di iniziare/interrompere la raccolta dei dati delle metriche dei link e includere IE specifico del fornitore contenente i dati in Enhanced-ACK inviati all'iniziatore di Probing.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aLinkMetrics
Questo parametro specifica le metriche su cui eseguire la query. Per la specifica 4.11.3.4.4.6 possono essere specificate al massimo 2 metriche. Il probe sarebbe disabilitato se aLinkMetrics fosse bit 0.
[in] aShortAddress
L'indirizzo breve dell'iniziatore di probing.
[in] aExtAddress
L'indirizzo di origine esteso dell'iniziatore di probing. aExtAddr NON DEVE essere NULL.
Valori di ritorno
OT_ERROR_NONE
Configurazione probe basata su ACK avanzato migliorata.
OT_ERROR_INVALID_ARGS
Punteggio di aExtAddress: NULL.
OT_ERROR_NOT_FOUND
Impossibile trovare l'iniziatore indicato da aShortAddress durante il tentativo di cancellazione.
OT_ERROR_NO_BUFS
Non è più supportato l'iniziatore.

OtPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

Disattiva la radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori di ritorno
OT_ERROR_NONE
Passaggio a Disattivato riuscito.
OT_ERROR_INVALID_STATE
La radio non era in stato di sospensione.

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Attiva la radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori di ritorno
OT_ERROR_NONE
Attivato correttamente.
OT_ERROR_FAILED
Impossibile attivare la radio.

otPlatRadioEnableCsl

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

Attiva o disattiva il ricevitore CSL.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aCslPeriod
Periodo CSL, 0 per la disattivazione di CSL.
[in] aShortAddr
L'indirizzo di origine breve del peer del ricevente CSL.
[in] aExtAddr
L'indirizzo di origine esteso del peer del destinatario CSL.
Valori di ritorno
kErrorNotImplemented
Il driver della radio non supporta CSL.
kErrorFailed
Altri errori specifici della piattaforma.
kErrorNone
Attivazione o disattivazione di CSL riuscita.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Attiva/disattiva la corrispondenza di indirizzi di origine.

La funzionalità di corrispondenza dell'indirizzo di origine controlla in che modo il livello radio decide il bit "in attesa" per gli attacchi inviati in risposta a comandi di richiesta dati da bambini e ragazzi.

Se disabilitato, il livello radio deve impostare il frame "in attesa" su tutti i comandi per i comandi di richiesta dati.

Se l'opzione è abilitata, il livello radio utilizza la tabella delle corrispondenze dell'indirizzo di origine per determinare se impostare o cancellare il bit "frame pending" in un attacco a un comando di richiesta di dati.

La tabella delle corrispondenze dell'indirizzo di origine fornisce un elenco di elementi secondari per i quali è presente un frame in attesa. Alla tabella delle corrispondenze dell'indirizzo di origine può essere aggiunto un indirizzo breve o un indirizzo esteso/lungo.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aEnable
Attiva/disattiva la funzione di corrispondenza di indirizzi di origine.

otPlatRadioEnergyScan

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

Avvia la sequenza di scansione energetica della radio.

Questa funzione viene utilizzata quando la radio fornisce una funzionalità OT_RADIO_CAPS_ENERGY_SCAN.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aScanChannel
Il canale su cui eseguire la scansione energetica.
[in] aScanDuration
La durata, in millisecondi, della scansione del canale.
Valori di ritorno
OT_ERROR_NONE
È stata avviata la scansione del canale.
OT_ERROR_BUSY
La radio sta eseguendo la scansione degli oggetti.
OT_ERROR_NOT_IMPLEMENTED
La radio non supporta la scansione energetica.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

Il driver della radio chiama questo metodo per comunicare a OpenThread che la scansione energetica è stata completata.

Questa funzione viene utilizzata quando la radio fornisce una funzionalità OT_RADIO_CAPS_ENERGY_SCAN.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aEnergyScanMaxRssi
Il numero massimo di RSSI riscontrato sul canale digitalizzato.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Recupera le metriche di coesistenza della radio.

Questa funzione viene utilizzata quando la funzione OPENthread_CONFIG_PLATFORM_RADIO_COEX_ENABLE è abilitata.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aCoexMetrics
Un puntatore alla struttura delle metriche di coesistenza.
Valori di ritorno
OT_ERROR_NONE
Le metriche coex sono state recuperate.
OT_ERROR_INVALID_ARGS
aCoexMetrics era NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Ottieni la precisione corrente, in unità di ± ppm, dell'orologio utilizzato per pianificare le operazioni CSL.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
Restituisce
La deviazione di pianificazione CSL rx/tx corrente, in unità di ± ppm.

otPlatRadioGetCslIncertezza

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

L'incertezza fissa del Dispositivo per la pianificazione delle Trasmissioni CSL in unità di 10 microsecondi.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
Restituisce
L'incertezza CSL in unità di 10 us.

otPlatRadioGetFavoriteChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Acquista la maschera del canale radio preferita su cui il dispositivo preferisce formare.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
La maschera del canale preferita.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Recupera il codice regione.

Il formato dell'area radio è la rappresentazione ascii a 2 byte del codice ISO 3166 alpha-2.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aRegionCode
L'area geografica radio.
Valori di ritorno
OT_ERROR_INVALID_ARGS
aRegionCode è nullptr.
OT_ERROR_FAILED
Altri errori specifici della piattaforma.
OT_ERROR_NONE
È stato ottenuto il codice regione.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Recupera la misurazione RSSI più recente.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
Il codice RSSI in dBm quando è valido. 127 quando RSSI non è valido.

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Sapere lo stato attuale della radio.

Questa funzione non è richiesta da OpenThread. Può essere utilizzata per finalità di debug e/o specifiche dell'applicazione.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
Stato attuale della radio.

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Procurati la maschera del canale radio supportata da cui è consentito l'accensione del dispositivo.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
La maschera del canale supportata dalla radio.

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Ottieni il buffer di trasmissione radio.

OpenThread forma il frame IEEE 802.15.4 in questo buffer, quindi chiama otPlatRadioTransmit() per richiedere la trasmissione.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
Un puntatore al buffer di trasmissione.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Controlla se il coex è attivato o meno.

Questa funzione viene utilizzata quando la funzione OPENthread_CONFIG_PLATFORM_RADIO_COEX_ENABLE è abilitata.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
TRUE se il coex radio è attivato, altrimenti FALSE.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Controlla se la radio è attiva o meno.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
TRUE se la radio è attivata, FALSE altrimenti.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Attiva la transizione dalla modalità di sospensione a quella di ricezione.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale da utilizzare per la ricezione.
Valori di ritorno
OT_ERROR_NONE
Passaggio a ricezione riuscito.
OT_ERROR_INVALID_STATE
La radio è stata disabilitata o trasmessa.

otPlatRadioReceiveAt

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

Programmare una finestra di ricezione radio per un'ora e una durata specifiche.

Dettagli
Parametri
[in] aChannel
Il canale radio su cui ricevere gli annunci.
[in] aStart
L'ora di inizio del periodo di ricezione, in microsecondi.
[in] aDuration
La durata del periodo di ricezione, in microsecondi
Valori di ritorno
OT_ERROR_NONE
Finestra di ricezione pianificata correttamente.
OT_ERROR_FAILED
Impossibile programmare la finestra di ricezione.

otPlatRadioReceiveDone

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

Il driver radio contatta questo metodo per informare OpenThread di un frame ricevuto.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore sul frame ricevuto o NULL se l'operazione di ricezione non è andata a buon fine.
[in] aError
OT_ERROR_NONE quando ha ricevuto correttamente un frame, OT_ERROR_ABORT quando la ricezione è stata interrotta e non è stata ricevuta. OT_ERROR_NO_BUFS quando non è stato possibile ricevere un frame a causa dello spazio di buffer rx insufficiente.

otPlatRadioSetChannelMaxTransmitPower

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

Impostare la potenza massima di trasmissione per un determinato canale.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale radio.
[in] aMaxPower
La potenza massima in dBm, se viene trasmessa da OT_RADIO_RSSI_INVALID, il canale verrà disattivato.
Valori di ritorno
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata
OT_ERROR_INVALID_ARGS
Il canale specificato non è valido.
OT_ERROR_FAILED
Altri errori specifici della piattaforma.
OT_ERROR_NONE
Potenza di trasmissione massima impostata correttamente.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Attiva il coex radio.

Questa funzione viene utilizzata quando la funzione OPENthread_CONFIG_PLATFORM_RADIO_COEX_ENABLE è abilitata.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aEnabled
TRUE per abilitare il coex radio, altrimenti FALSE.
Valori di ritorno
OT_ERROR_NONE
Attivato correttamente.
OT_ERROR_FAILED
Impossibile abilitare il coex radio.

OtPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Imposta il codice regione.

Il formato dell'area radio è la rappresentazione ascii a 2 byte del codice ISO 3166 alpha-2.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aRegionCode
L'area geografica radio.
Valori di ritorno
OT_ERROR_FAILED
Altri errori specifici della piattaforma.
OT_ERROR_NONE
Codice regione impostato correttamente.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Trasmettere la radio da Ricevi a Sonno (spegni la radio).

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori di ritorno
OT_ERROR_NONE
Passaggio a sospensione riuscito.
OT_ERROR_BUSY
La radio stava trasmettendo.
OT_ERROR_INVALID_STATE
La radio è stata disattivata.

Trasmissione otPlatRadio

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Avvia la sequenza di trasmissione sulla radio.

Prima di richiedere la trasmissione, il chiamante deve formare il frame IEEE 802.15.4 nel buffer fornito da otPlatRadioGetTransmitBuffer(). Il canale e la potenza di trasmissione sono inclusi anche nella struttura di otRadioFrame.

La sequenza di trasmissione è composta da:

  1. Transizione della radio a uno dei seguenti stati:
    • Ricevi se RX è attivo quando il dispositivo è inattivo o se OT_RADIO_CAPS_SLEEP_TO_TX non è supportato
    • Sospendi se RX non è attivo quando il dispositivo è inattivo ed è supportata OT_RADIO_CAPS_SLEEP_TO_TX.
  2. Trasmette il PSdu sul canale specificato e alla potenza di trasmissione specificata.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al frame da trasmettere.
Valori di ritorno
OT_ERROR_NONE
Passaggio a Trasmissione riuscito.
OT_ERROR_INVALID_STATE
La radio non era in stato di ricezione.

otPlatRadioTxDone

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

Il driver della radio chiama questa funzione per informare OpenThread che l'operazione di trasmissione è stata completata, fornendo sia il frame trasmesso sia, se applicabile, il frame dell'ac ricevuto.

Quando la radio offre la funzionalità OT_RADIO_CAPS_TRANSMIT_SEC, il livello della piattaforma radio aggiorna aFrame con il contatore del frame di sicurezza e i valori dell'indice chiavi gestiti dalla radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore sul frame che è stato trasmesso.
[in] aAckFrame
Un puntatore al frame ACK, NULL, se non è stato ricevuto alcun ACK.
[in] aError
OT_ERROR_NONE quando il frame è stato trasmesso, OT_ERROR_NO_ACK quando il frame è stato trasmesso, ma non è stato ricevuto alcun ACK, OT_ERROR_CHANNEL_ACCESS_FAILURE tx non ha potuto verificarsi a causa di attività sul canale, OT_ERROR_ABORT quando la trasmissione è stata interrotta per altri motivi.

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Il driver radio contatta questo metodo per comunicare a OpenThread che la trasmissione è iniziata.

Dettagli
Parametri
[in] aInstance
Un puntatore alla struttura dell'istanza di OpenThread.
[in] aFrame
Un puntatore sul frame che viene trasmesso.

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

Aggiorna tempo di campionamento CSL nel driver radio.

Il tempo di campionamento viene memorizzato nel driver della radio come copia per calcolare la fase durante l'invio di ACK con CSL IE.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aCslSampleTime
L'ora del campione più recente.

Risorse

Gli argomenti di riferimento per l'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per ulteriori informazioni o per contribuire alla nostra documentazione, consulta la sezione Risorse.