Funzionamento della radio

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

Riepilogo

Funzioni

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Il driver radio chiama questo metodo per notificare il modulo di diagnostica OpenThread di un frame ricevuto.
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Il driver radio chiama questo metodo per notificare il modulo di diagnostica di OpenThread che la trasmissione è stata completata.
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
Aggiungi una potenza calibrata del canale specificato alla tabella di calibrazione dell'alimentazione.
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 degli indirizzi di origine.
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
Cancella tutte le potenze calibrate dalla tabella di calibrazione dell'alimentazione.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Cancella tutti gli indirizzi estesi/lunghi dalla tabella delle corrispondenze degli indirizzi di origine.
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Rimuovi un indirizzo esteso dalla tabella delle corrispondenze degli indirizzi 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 degli indirizzi di origine.
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Abilita/disabilita o aggiorna il probe basato su ACK avanzato nella 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 ricevitore CSL.
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
Attiva/disattiva la funzionalità di corrispondenza dell'indirizzo di origine.
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Inizia la sequenza di scansione energetica alla radio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
Il driver radio chiama questo metodo per notificare a OpenThread il completamento della scansione energetica.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Ottieni le metriche della coesistenza delle radio.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Ottieni l'accuratezza stimata corrente del caso peggiore (massimo ± deviazione dalla frequenza nominale) dell'orologio radio locale in unità di PPM.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
L'incertezza fissa (ad es.
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Visualizza la maschera del canale radio preferita su cui il dispositivo preferisce essere applicato.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Ottieni l'impostazione della potenza non elaborata del canale.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Recupera il codice regione.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Ottieni la misurazione RSSI più recente.
otPlatRadioGetState(otInstance *aInstance)
Scopri lo stato attuale della radio.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Procurati la maschera del canale supportata dalla radio che può essere attivata sul dispositivo.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Procurati il buffer di frame della trasmissione radio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Controlla se il coex radio è attivato o meno.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Controlla se la radio è attiva o meno.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Trasferisci la radio da Sonno a Ricevi (attiva la radio).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Pianifica una finestra di ricezione radio per un orario e una durata specifici.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Il driver radio chiama questo metodo per notificare a OpenThread un frame ricevuto.
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Imposta la potenza di trasmissione massima per un canale specifico.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Imposta la potenza target per il canale specificato.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Attiva il coex della radio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Imposta il codice regione.
otPlatRadioSleep(otInstance *aInstance)
Transizione della radio da Ricevi a Sonno (disattiva la radio).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Inizia la sequenza di trasmissione alla radio.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
Il driver radio chiama questa funzione per notificare a OpenThread il completamento dell'operazione di trasmissione, fornendo sia il frame trasmesso che, se applicabile, il frame ACK ricevuto.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
Il driver radio chiama questo metodo per notificare a OpenThread che la trasmissione è iniziata.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
Aggiorna l'ora di esempio CSL nel driver radio.

Funzioni

otPlatDiagRadioRicevifatto

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

Il driver radio chiama questo metodo per notificare il modulo di diagnostica OpenThread di un frame ricevuto.

Viene utilizzato quando è abilitata la diagnostica.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al frame ricevuto o NULL se l'operazione di ricezione non è riuscita.
[in] aError
OT_ERROR_NONE in caso di ricezione corretta di un frame, OT_ERROR_ABORT quando la ricezione è stata interrotta e non è stato ricevuto un frame, OT_ERROR_NO_BUFS quando non è stato possibile ricevere un frame a causa della mancanza di spazio buffer rx.

otPlatDiagRadioTransmitFine

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

Il driver radio chiama questo metodo per notificare il modulo di diagnostica di OpenThread che la trasmissione è stata completata.

Viene utilizzato quando è abilitata la diagnostica.

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

otPlatRadioAddCalibratedPower(PotenzaCalibrata)

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

Aggiungi una potenza calibrata del canale specificato alla tabella di calibrazione dell'alimentazione.

aActualPower indica la potenza di uscita misurata effettiva quando i parametri dei moduli hardware radio sono impostati su aRawPowerSetting.

L'impostazione della potenza non elaborata è un array di byte opaco. OpenThread non definisce il formato dell'impostazione di alimentazione non elaborata. Il suo formato riguarda l'hardware radio e deve essere definito dagli sviluppatori nel driver radio della piattaforma. Ad esempio, se l'hardware radio contiene sia il chip della radio sia il chip FEM, l'impostazione della potenza non elaborata può essere una combinazione del registro di potenza della radio e del valore di guadagno FEM.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale radio.
[in] aActualPower
La potenza effettiva in 0,01 dBm.
[in] aRawPowerSetting
Un puntatore all'array di byte di impostazione della potenza non elaborata.
[in] aRawPowerSettingLength
La lunghezza dell'elemento aRawPowerSetting.
Valori restituiti
OT_ERROR_NONE
L'alimentazione calibrata è stata aggiunta alla tabella di calibrazione dell'alimentazione.
OT_ERROR_NO_BUFS
Nessuna voce disponibile nella tabella di calibrazione dell'alimentazione.
OT_ERROR_INVALID_ARGS
aChannel, aActualPower o aRawPowerSetting non sono validi oppure aActualPower esiste già nella tabella di calibrazione dell'alimentazione.
OT_ERROR_NOT_IMPLEMENTED
Questa funzionalità non è implementata.

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 archiviato in ordine di byte little-endian.
Valori restituiti
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 degli indirizzi di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aShortAddress
L'indirizzo breve da aggiungere.
Valori restituiti
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.

Potenziali calibrati otPlatRadioClear

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

Cancella tutte le potenze calibrate dalla tabella di calibrazione dell'alimentazione.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Tutte le potenze calibrate sono state cancellate correttamente dalla tabella di calibrazione dell'alimentazione.
OT_ERROR_NOT_IMPLEMENTED
Questa funzionalità non è implementata.

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Cancella tutti gli indirizzi estesi/lunghi 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 degli indirizzi di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aExtAddress
L'indirizzo esteso da rimuovere archiviato in ordine di byte little-endian.
Valori restituiti
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 degli indirizzi 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 degli indirizzi di origine.

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

otPlatRadioConfigureEnhAckProbing

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

Abilita/disabilita o aggiorna il probe basato su ACK avanzato nella radio per un iniziatore specifico.

Dopo che il probe basato su ACK avanzato è stato configurato da uno specifico iniziatore di probe, l'ACK avanzato inviato al nodo deve includere l'IE specifico del fornitore contenente i dati delle metriche dei link. Questo metodo comunica alla radio di avviare/interrompere la raccolta dei dati delle metriche sui link e includere l'IE specifico del fornitore contenente i dati in ACK avanzato inviato all'iniziatore del probe.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aLinkMetrics
Questo parametro specifica le metriche su cui eseguire la query. In base alla specifica 4.11.3.4.4.6, possono essere specificate al massimo 2 metriche. Il probe verrebbe disabilitato se aLinkMetrics è pari a 0 a livello di bit.
[in] aShortAddress
L'indirizzo breve di Probing Initiator.
[in] aExtAddress
L'indirizzo di origine esteso del probe Initiator. aExtAddr NON DEVE essere NULL.
Valori restituiti
OT_ERROR_NONE
Il probe basato su ACK avanzato è stato configurato correttamente.
OT_ERROR_INVALID_ARGS
aExtAddress è NULL.
OT_ERROR_NOT_FOUND
L'iniziatore indicato da aShortAddress non è stato trovato durante il tentativo di cancellazione.
OT_ERROR_NO_BUFS
Non è possibile supportare nessun iniziatore.
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata.

Disabilita radio otPlat

otError otPlatRadioDisable(
  otInstance *aInstance
)

Disattiva la radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Transizione eseguita correttamente a Disattivato.
OT_ERROR_INVALID_STATE
La radio non era in stato di sospensione.

otPlatRadioAbilita

otError otPlatRadioEnable(
  otInstance *aInstance
)

Attiva la radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Attivazione riuscita.
OT_ERROR_FAILED
Impossibile attivare la radio.

otPlatRadioEnableCsl

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

Attiva o disattiva ricevitore CSL.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aCslPeriod
Periodo CSL, 0 per disattivazione CSL. Il punto CSL è espresso in unità di 10 simboli.
[in] aShortAddr
L'indirizzo di origine breve del peer del destinatario CSL.
[in] aExtAddr
L'indirizzo sorgente esteso del peer del destinatario CSL.
Valori restituiti
kErrorNotImplemented
Il driver della radio non supporta la crittografia lato client.
kErrorFailed
Altri errori specifici della piattaforma.
kErrorNone
CSL attivata o disattivata correttamente.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Attiva/disattiva la funzionalità di corrispondenza dell'indirizzo di origine.

La funzionalità di corrispondenza dell'indirizzo di origine controlla in che modo il livello radio decide il bit "frame pending" per gli ACK inviati in risposta ai comandi di richiesta di dati degli elementi secondari.

Se disattivato, il livello di opzione deve impostare il valore "frame pending" su tutti gli ACK per i comandi di richiesta dati.

Se abilitato, il livello radio utilizza la tabella di corrispondenza degli indirizzi di origine per determinare se impostare o cancellare il bit "frame in attesa" in un ACK per un comando di richiesta dati.

La tabella delle corrispondenze degli indirizzi di origine fornisce l'elenco degli indirizzi secondari per i quali è presente un frame in attesa. Puoi aggiungere un indirizzo breve o un indirizzo esteso/lungo alla tabella delle corrispondenze degli indirizzi di origine.

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

otPlatRadioEnergyScan

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

Inizia la sequenza di scansione energetica alla radio.

Viene utilizzato quando la radio fornisce la 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 restituiti
OT_ERROR_NONE
Ricerca del canale avviata.
OT_ERROR_BUSY
La radio sta eseguendo una scansione energetica.
OT_ERROR_NOT_IMPLEMENTED
La radio non supporta la scansione energetica.

otPlatRadioEnergyScanFatto

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

Il driver radio chiama questo metodo per notificare a OpenThread il completamento della scansione energetica.

Viene utilizzato quando la radio fornisce la funzionalità OT_RADIO_CAPS_ENERGY_SCAN.

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

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Ottieni le metriche della coesistenza delle radio.

Viene utilizzato quando la funzione OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE è attiva.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aCoexMetrics
Un puntatore alla struttura delle metriche di coesistenza.
Valori restituiti
OT_ERROR_NONE
Recupero delle metriche coex riuscito.
OT_ERROR_INVALID_ARGS
aCoexMetrics era NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Ottieni l'accuratezza stimata corrente del caso peggiore (massimo ± deviazione dalla frequenza nominale) dell'orologio radio locale in unità di PPM.

Questo è l'orologio utilizzato per pianificare le operazioni CSL.

Se l'implementazione non stima il valore corrente, ma restituisce un valore fisso, questo valore DEVE corrispondere alla precisione peggiore rispetto a tutte le possibili condizioni operative previste (temperatura, pressione, ecc.) dell'implementazione.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
L'attuale deriva della pianificazione rx/tx CSL, in PPM.

otPlatRadioGetCslIncertezza

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

L'incertezza fissa (ad es.

tremolio casuale) dell'ora di arrivo delle trasmissioni CSL ricevute da questo dispositivo in unità di 10 microsecondi.

Indica la deviazione costante positiva o negativa nel caso peggiore dell'ora di arrivo effettiva di una trasmissione dal tempo di trasmissione calcolato rispetto all'orologio radio locale, a prescindere dal tempo trascorso. Oltre all'incertezza accumulata nel tempo trascorso, il campione del canale CSL ("finestra RX") deve essere esteso di due volte questa deviazione, in modo che il ricevitore locale garantisca una trasmissione effettiva in presenza di un tremolio dell'ora di arrivo casuale.

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

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Visualizza la maschera del canale radio preferita su cui il dispositivo preferisce essere applicato.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
La maschera del canale preferito per la radio.

Impostazione per l'alimentazione otPlatRadioGetRawPowerSetting

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

Ottieni l'impostazione della potenza non elaborata del canale.

Il livello radio della piattaforma deve analizzare l'impostazione di potenza non elaborata in base al formato definito per il livello radio e impostare i parametri di ciascun modulo hardware radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale radio.
[out] aRawPowerSetting
Un puntatore all'array di byte di impostazione della potenza non elaborata.
[in,out] aRawPowerSettingLength
Durante l'input, un puntatore alle dimensioni di aRawPowerSetting. Nell'output, un puntatore alla lunghezza dei dati di impostazione della potenza non elaborati.
Valori restituiti
OT_ERROR_NONE
Potenza target ottenuta.
OT_ERROR_INVALID_ARGS
aChannel non è valido, aRawPowerSetting o aRawPowerSettingLength è NULL o è troppo breve.
OT_ERROR_NOT_FOUND
Impossibile trovare l'impostazione di potenza non elaborata di aChannel.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Recupera il codice regione.

Il formato della regione radio è la rappresentazione ASCII a 2 byte del codice ISO 3166 alpha-2.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aRegionCode
La regione radio.
Valori restituiti
OT_ERROR_INVALID_ARGS
aRegionCode è nullptr.
OT_ERROR_FAILED
Altri errori specifici della piattaforma.
OT_ERROR_NONE
Codice regione ricevuto.
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Ottieni la misurazione RSSI più recente.

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

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Scopri lo stato attuale della radio.

Non è richiesto da OpenThread. Potrebbe essere utilizzata per il debug e/o per scopi specifici 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 supportata dalla radio che può essere attivata sul dispositivo.

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

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Procurati il buffer di frame della 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 frame di trasmissione.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Controlla se il coex radio è attivato o meno.

Viene utilizzato quando la funzione OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE è attiva.

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

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 è abilitata, FALSE in caso contrario.

Ricevitore radiotrasmettitore

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Trasferisci la radio da Sonno a Ricevi (attiva la radio).

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale da utilizzare per la ricezione.
Valori restituiti
OT_ERROR_NONE
Transizione a Ricevi riuscita.
OT_ERROR_INVALID_STATE
La radio è stata disattivata o stava trasmettendo.

otPlatRadioRicevit

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

Pianifica una finestra di ricezione radio per un orario e una durata specifici.

Dettagli
Parametri
[in] aChannel
Il canale radio su cui ricevere.
[in] aStart
L'ora di inizio della finestra di ricezione relativa all'orologio radio locale; vedi otPlatRadioGetNow. Il ricevitore radio DEVE essere acceso e pronto a ricevere il primo simbolo del valore SHR di un frame all'ora di inizio della finestra.
[in] aDuration
La durata della finestra di ricezione, in microsecondi, misurata dal radiosveglia locale. La radio DOVREBBE essere spenta (o passare alla modalità TX se è necessario inviare un frame ACK) dopo questo periodo di tempo, a meno che non stia ancora ricevendo attivamente un frame. Nel secondo caso, la radio DEVE essere mantenuta in modalità di ricezione fino a quando la ricezione del frame non ha esito positivo o negativo.
Valori restituiti
OT_ERROR_NONE
Finestra di ricezione pianificata correttamente.
OT_ERROR_FAILED
Impossibile pianificare la finestra di ricezione.

otPlatRadioRiceviFine

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

Il driver radio chiama questo metodo per notificare a OpenThread un frame ricevuto.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al frame ricevuto o NULL se l'operazione di ricezione non è riuscita.
[in] aError
OT_ERROR_NONE in caso di ricezione corretta di un frame, OT_ERROR_ABORT quando la ricezione è stata interrotta e non è stato ricevuto un frame, OT_ERROR_NO_BUFS quando non è stato possibile ricevere un frame a causa della mancanza di spazio buffer rx.

otPlatRadioSetChannelMaxTransmitPower

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

Imposta la potenza di trasmissione massima per un canale specifico.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale radio.
[in] aMaxPower
La potenza massima in dBm, passando OT_RADIO_RSSI_INVALID, disattiverai questo canale.
Valori restituiti
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 massima di trasmissione impostata.

otPlatRadioSetChannelTargetPower

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

Imposta la potenza target per il canale specificato.

Il driver della radio deve impostare la potenza di uscita effettiva in modo che sia inferiore o uguale alla potenza target e il più vicino possibile a quest'ultima.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale radio.
[in] aTargetPower
La potenza target in 0,01 dBm. Se superi INT16_MAX disabiliti questo canale per usare la potenza target.
Valori restituiti
OT_ERROR_NONE
Potenza target impostata.
OT_ERROR_INVALID_ARGS
aChannel o aTargetPower non sono validi.
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Attiva il coex della radio.

Viene utilizzato quando la funzione OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE è attiva.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aEnabled
TRUE per abilitare il coex radio, altrimenti FALSE.
Valori restituiti
OT_ERROR_NONE
Attivazione riuscita.
OT_ERROR_FAILED
Impossibile attivare il coex della radio.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Imposta il codice regione.

Il formato della regione radio è la rappresentazione ASCII a 2 byte del codice ISO 3166 alpha-2.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aRegionCode
La regione radio.
Valori restituiti
OT_ERROR_FAILED
Altri errori specifici della piattaforma.
OT_ERROR_NONE
Codice regione impostato.
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Transizione della radio da Ricevi a Sonno (disattiva la radio).

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Transizione alla modalità Sonno riuscita.
OT_ERROR_BUSY
La radio stava trasmettendo.
OT_ERROR_INVALID_STATE
La radio è stata disattivata.

Trasmissione via otPlat

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Inizia la sequenza di trasmissione alla radio.

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

La sequenza di trasmissione è composta da:

  1. La transizione della radio in Trasmissione da 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 è disattivato quando il dispositivo è inattivo ed è supportato OT_RADIO_CAPS_SLEEP_TO_TX.
  2. Trasmette lo 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 restituiti
OT_ERROR_NONE
Transizione a Trasmissione riuscita.
OT_ERROR_INVALID_STATE
La radio non era in stato Ricevi.

otPlatRadioTxFine

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

Il driver radio chiama questa funzione per notificare a OpenThread il completamento dell'operazione di trasmissione, fornendo sia il frame trasmesso che, se applicabile, il frame ACK ricevuto.

Quando la radio fornisce la funzionalità OT_RADIO_CAPS_TRANSMIT_SEC, il livello della piattaforma radio aggiorna aFrame con il contatore dei frame di sicurezza e i valori degli indici chiave mantenuti tramite radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al 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 ACK, OT_ERROR_CHANNEL_ACCESS_FAILURE tx non riuscito a causa dell'attività sul canale, OT_ERROR_ABORT quando la trasmissione è stata interrotta per altri motivi.

otPlatRadioTxAvviato

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Il driver radio chiama questo metodo per notificare a OpenThread che la trasmissione è iniziata.

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

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

Aggiorna l'ora di esempio CSL nel driver radio.

L'ora di campionamento viene memorizzata nel driver radio come copia per calcolare la fase durante l'invio di ACK con CSL IE. Il campione CSL (finestra) del ricevitore CSL si estende prima e dopo l'ora di campionamento. Il tempo di campionamento CSL contrassegna un timestamp nella finestra di esempio CSL quando un frame dovrebbe essere ricevuto in "condizioni ideali" se non ci sono imprecisioni o deviazioni dell'orologio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aCslSampleTime
L'ora di campionamento successiva, in microsecondi. È l'ora in cui è previsto il primo simbolo della MHR del frame.

Risorse

Gli argomenti di riferimento API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.