BLE

Questo modulo include l'astrazione della piattaforma per la comunicazione con host BLE.

Riepilogo

La piattaforma deve implementare Bluetooth LE 4.2 o versioni successive.

Typedef

otBleRadioPacket typedef
Rappresenta un pacchetto BLE.

Funzioni

otPlatBleDisable(otInstance *aInstance)
Disattiva la radio Bluetooth Low Energy.
otPlatBleEnable(otInstance *aInstance)
Attiva la radio Bluetooth Low Energy.
otPlatBleGapAdvStart(otInstance *aInstance, uint16_t aInterval)
Avvia la procedura per la pubblicità BLE.
otPlatBleGapAdvStop(otInstance *aInstance)
Arresta la procedura BLE Advertising.
otPlatBleGapDisconnect(otInstance *aInstance)
Disconnette la connessione BLE.
otPlatBleGapOnConnected(otInstance *aInstance, uint16_t aConnectionId)
void
Il driver BLE chiama questo metodo per notificare a OpenThread che un dispositivo centrale BLE è stato connesso.
otPlatBleGapOnDisconnected(otInstance *aInstance, uint16_t aConnectionId)
void
Il driver BLE chiama questo metodo per notificare a OpenThread che il dispositivo centrale BLE è stato disconnesso.
otPlatBleGattMtuGet(otInstance *aInstance, uint16_t *aMtu)
Le letture attualmente utilizzano il valore di ATT_MTU.
otPlatBleGattOnMtuUpdate(otInstance *aInstance, uint16_t aMtu)
void
Il driver BLE chiama questo metodo per notificare a OpenThread che ATT_MTU è stato aggiornato.
otPlatBleGattServerIndicate(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
Invia un'indicazione del valore dell'handle ATT.
otPlatBleGattServerOnWriteRequest(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
void
Il driver BLE chiama questo metodo per notificare a OpenThread la ricezione di un pacchetto di richiesta di scrittura ATT.

Strutture

otBleRadioPacket

Rappresenta un pacchetto BLE.

Typedef

otBleRadioPacket

struct otBleRadioPacket otBleRadioPacket

Rappresenta un pacchetto BLE.

Funzioni

otPlatBleDisable

otError otPlatBleDisable(
  otInstance *aInstance
)

Disattiva la radio Bluetooth Low Energy.

Se disattivato, lo stack BLE svuota le code di eventi e non genera nuovi eventi. La periferica BLE viene spenta o messa in sospensione a basso consumo. Qualsiasi memoria dinamica utilizzata dallo stack dovrebbe essere rilasciata, ma la memoria statica potrebbe rimanere riservata.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Transizione eseguita correttamente in disattivato.
OT_ERROR_FAILED
Impossibile disattivare la radio BLE.

otPlatBleEnable

otError otPlatBleEnable(
  otInstance *aInstance
)

Attiva la radio Bluetooth Low Energy.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Attivazione eseguita correttamente.
OT_ERROR_FAILED
Impossibile attivare il segnale radio BLE.

otPlatBleGapAdvStart

otError otPlatBleGapAdvStart(
  otInstance *aInstance,
  uint16_t aInterval
)

Avvia la procedura per la pubblicità BLE.

Il dispositivo BLE utilizzerà pubblicità non diretta senza filtro applicato. È necessario inviare un singolo pacchetto BLE Advertising su tutti i canali pubblicitari (37, 38 e 39).

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aInterval
L'intervallo tra i pacchetti pubblicitari successivi in unità OT_BLE_ADV_INTERVAL_UNIT. Devono essere compresi tra OT_BLE_ADV_INTERVAL_MIN e OT_BLE_ADV_INTERVAL_MAX o OT_BLE_ADV_INTERVAL_DEFAULT per un valore predefinito impostato al momento della compilazione.
Valori restituiti
OT_ERROR_NONE
La procedura pubblicitaria è stata avviata.
OT_ERROR_INVALID_STATE
Il dispositivo BLE è in stato non valido.
OT_ERROR_INVALID_ARGS
È stato specificato un valore non valido per l'intervallo.

otPlatBleGapAdvStop

otError otPlatBleGapAdvStop(
  otInstance *aInstance
)

Arresta la procedura BLE Advertising.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
La procedura pubblicitaria è stata interrotta.
OT_ERROR_INVALID_STATE
Il dispositivo BLE è in stato non valido.

otPlatBleGapDisconnect

otError otPlatBleGapDisconnect(
  otInstance *aInstance
)

Disconnette la connessione BLE.

Il dispositivo BLE utilizzerà il codice motivo della connessione con terminazione utente remota (0x13) quando si disconnette dal dispositivo BLE peer.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
La procedura di disconnessione è stata avviata.
OT_ERROR_INVALID_STATE
Il dispositivo BLE è in stato non valido.

otPlatBleGapOnConnected

void otPlatBleGapOnConnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

Il driver BLE chiama questo metodo per notificare a OpenThread che un dispositivo centrale BLE è stato connesso.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aConnectionId
L'identificatore della connessione aperta.

otPlatBleGapOnDisconnected

void otPlatBleGapOnDisconnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

Il driver BLE chiama questo metodo per notificare a OpenThread che il dispositivo centrale BLE è stato disconnesso.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aConnectionId
L'identificatore della connessione chiusa.

otPlatBleGattMtuGet

otError otPlatBleGattMtuGet(
  otInstance *aInstance,
  uint16_t *aMtu
)

Le letture attualmente utilizzano il valore di ATT_MTU.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aMtu
Un puntatore che restituisce il valore ATT_MTU corrente.
Valori restituiti
OT_ERROR_NONE
Il valore ATT_MTU è stato inserito in aMtu.
OT_ERROR_FAILED
Il dispositivo BLE non è in grado di determinare il valore ATT_MTU.

otPlatBleGattOnMtuUpdate

void otPlatBleGattOnMtuUpdate(
  otInstance *aInstance,
  uint16_t aMtu
)

Il driver BLE chiama questo metodo per notificare a OpenThread che ATT_MTU è stato aggiornato.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aMtu
Il valore ATT_MTU aggiornato.

otPlatBleGattServerIndicate

otError otPlatBleGattServerIndicate(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

Invia un'indicazione del valore dell'handle ATT.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aHandle
L'handle dell'attributo da indicare.
[in] aPacket
Un puntatore al pacchetto contiene il valore da indicare.
Valori restituiti
OT_ERROR_NONE
L'indicazione del valore dell'handle ATT è stata inviata.
OT_ERROR_INVALID_STATE
Il dispositivo BLE è in stato non valido.
OT_ERROR_INVALID_ARGS
È stato specificato un valore non valido per l'handle, dei dati o una lunghezza dei dati.
OT_ERROR_NO_BUFS
Nessun buffer interno disponibile trovato.

otPlatBleGattServerOnWriteRequest

void otPlatBleGattServerOnWriteRequest(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

Il driver BLE chiama questo metodo per notificare a OpenThread la ricezione di un pacchetto di richiesta di scrittura ATT.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aHandle
L'handle dell'attributo da scrivere.
[in] aPacket
Un puntatore al pacchetto contiene un valore da scrivere nell'attributo.

Macro

OT_BLE_ADV_INTERVAL_DEFAULT

 OT_BLE_ADV_INTERVAL_DEFAULT 100

Intervallo predefinito per il pacchetto pubblicitario (ms).

OT_BLE_ADV_INTERVAL_MAX

 OT_BLE_ADV_INTERVAL_MAX 0x4000

Intervallo massimo consentito per il pacchetto pubblicitario in unità OT_BLE_ADV_INTERVAL_UNIT (10,24 s).

OT_BLE_ADV_INTERVAL_MIN

 OT_BLE_ADV_INTERVAL_MIN 0x0020

Intervallo minimo consentito per il pacchetto pubblicitario in unità OT_BLE_ADV_INTERVAL_UNIT (20 ms).

OT_BLE_ADV_INTERVAL_UNIT

 OT_BLE_ADV_INTERVAL_UNIT OT_BLE_TIMESLOT_UNIT

Unità utilizzata per calcolare la durata dell'intervallo (0,625 ms).

OT_BLE_ATT_MTU_MAX

 OT_BLE_ATT_MTU_MAX 67

Dimensione MTU ATT massima consentita (deve essere maggiore o uguale a 23).

OT_BLE_DEFAULT_POWER

 OT_BLE_DEFAULT_POWER 0

Valore di alimentazione predefinito per BLE.

OT_BLE_TIMESLOT_UNIT

 OT_BLE_TIMESLOT_UNIT 625

Durata dell'intervallo di tempo sul livello PHY in microsecondi (0,625 ms).

Risorse

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