BLE

Dieses Modul enthält die Plattformabstraktion für die BLE-Host-Kommunikation.

Zusammenfassung

Auf der Plattform muss Bluetooth LE 4.2 oder höher implementiert sein.

Typedefs

otBleRadioPacket typedef
Stellt ein BLE-Paket dar.

Funktionen

otPlatBleDisable(otInstance *aInstance)
Bluetooth Low Energy-Radio deaktivieren
otPlatBleEnable(otInstance *aInstance)
Aktiviere die Bluetooth Low Energy-Funkschnittstelle.
otPlatBleGapAdvStart(otInstance *aInstance, uint16_t aInterval)
Startet das BLE Advertising-Verfahren.
otPlatBleGapAdvStop(otInstance *aInstance)
Beendet das BLE Advertising-Verfahren.
otPlatBleGapDisconnect(otInstance *aInstance)
Trennt die BLE-Verbindung.
otPlatBleGapOnConnected(otInstance *aInstance, uint16_t aConnectionId)
void
Der BLE-Treiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass ein BLE Central Device verbunden wurde.
otPlatBleGapOnDisconnected(otInstance *aInstance, uint16_t aConnectionId)
void
Der BLE-Treiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass die Verbindung zum BLE Central Device getrennt wurde.
otPlatBleGattMtuGet(otInstance *aInstance, uint16_t *aMtu)
Lesevorgänge verwenden derzeit den Wert ATT_MTU.
otPlatBleGattOnMtuUpdate(otInstance *aInstance, uint16_t aMtu)
void
Der BLE-Treiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass ATT_MTU aktualisiert wurde.
otPlatBleGattServerIndicate(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
Sendet eine Wertangabe für den ATT-Handle.
otPlatBleGattServerOnWriteRequest(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
void
Der BLE-Treiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass ein ATT-Schreibanfragepaket empfangen wurde.

Strukturen

otBleRadioPacket

Stellt ein BLE-Paket dar.

Typedefs

otBleRadioPacket

struct otBleRadioPacket otBleRadioPacket

Stellt ein BLE-Paket dar.

Funktionen

otPlatBleDisable

otError otPlatBleDisable(
  otInstance *aInstance
)

Bluetooth Low Energy-Radio deaktivieren

Wenn diese Option deaktiviert ist, leert der BLE-Stack Ereigniswarteschlangen und generiert keine neuen Ereignisse. Das BLE-Peripheriegerät ist ausgeschaltet oder in einen Energiesparmodus versetzt. Jeder vom Stack verwendete dynamische Arbeitsspeicher sollte freigegeben werden, statischer Arbeitsspeicher kann jedoch reserviert bleiben.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
OT_ERROR_NONE
Auf „Deaktiviert“ umgestellt.
OT_ERROR_FAILED
BLE konnte nicht deaktiviert werden.

otPlatBleEnable

otError otPlatBleEnable(
  otInstance *aInstance
)

Aktiviere die Bluetooth Low Energy-Funkschnittstelle.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
OT_ERROR_NONE
Aktiviert.
OT_ERROR_FAILED
BLE Radio konnte nicht aktiviert werden.

otPlatBleGapAdvStart

otError otPlatBleGapAdvStart(
  otInstance *aInstance,
  uint16_t aInterval
)

Startet das BLE Advertising-Verfahren.

Das BLE-Gerät darf ungerichtete Werbung ohne angewendeten Filter verwenden. Ein einzelnes BLE-Werbepaket muss an alle Werbekanäle (37, 38 und 39) gesendet werden.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aInterval
Das Intervall zwischen nachfolgenden Werbepaketen in OT_BLE_ADV_INTERVAL_UNIT-Einheiten. Muss im Bereich OT_BLE_ADV_INTERVAL_MIN und OT_BLE_ADV_INTERVAL_MAX liegen oder OT_BLE_ADV_INTERVAL_DEFAULT für einen bei der Kompilierung festgelegten Standardwert sein.
Rückgabewerte
OT_ERROR_NONE
Das Werbeverfahren wurde gestartet.
OT_ERROR_INVALID_STATE
BLE-Gerät hat einen ungültigen Status.
OT_ERROR_INVALID_ARGS
Ein ungültiger Intervallwert wurde angegeben.

otPlatBleGapAdvStop

otError otPlatBleGapAdvStop(
  otInstance *aInstance
)

Beendet das BLE Advertising-Verfahren.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
OT_ERROR_NONE
Der Werbevorgang wurde beendet.
OT_ERROR_INVALID_STATE
BLE-Gerät hat einen ungültigen Status.

otPlatBleGapDisconnect

otError otPlatBleGapDisconnect(
  otInstance *aInstance
)

Trennt die BLE-Verbindung.

Das BLE-Gerät verwendet beim Trennen der Verbindung zum Peer-BLE-Gerät den Ursachencode für die Remote-Nutzer-Verbindung (0x13).

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
OT_ERROR_NONE
Verfahren zum Trennen der Verbindung wurde gestartet.
OT_ERROR_INVALID_STATE
BLE-Gerät hat einen ungültigen Status.

otPlatBleGapOnConnected

void otPlatBleGapOnConnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

Der BLE-Treiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass ein BLE Central Device verbunden wurde.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aConnectionId
Die ID der offenen Verbindung.

otPlatBleGapOnDisconnected

void otPlatBleGapOnDisconnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

Der BLE-Treiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass die Verbindung zum BLE Central Device getrennt wurde.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aConnectionId
Die ID der geschlossenen Verbindung.

otPlatBleGattMtuGet

otError otPlatBleGattMtuGet(
  otInstance *aInstance,
  uint16_t *aMtu
)

Lesevorgänge verwenden derzeit den Wert ATT_MTU.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[out] aMtu
Ein Zeiger zur Ausgabe des aktuellen ATT_MTU-Werts.
Rückgabewerte
OT_ERROR_NONE
ATT_MTU-Wert wurde in aMtu eingefügt.
OT_ERROR_FAILED
BLE-Gerät kann seine ATT_MTU nicht ermitteln.

otPlatBleGattOnMtuUpdate

void otPlatBleGattOnMtuUpdate(
  otInstance *aInstance,
  uint16_t aMtu
)

Der BLE-Treiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass ATT_MTU aktualisiert wurde.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aMtu
Der aktualisierte ATT_MTU-Wert

otPlatBleGattServerIndicate

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

Sendet eine Wertangabe für den ATT-Handle.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aHandle
Der Handle des anzugebenden Attributs.
[in] aPacket
Ein Zeiger auf das Paket enthält den Wert, der angegeben werden soll.
Rückgabewerte
OT_ERROR_NONE
Wertangabe für ATT-Alias wurde gesendet.
OT_ERROR_INVALID_STATE
BLE-Gerät hat einen ungültigen Status.
OT_ERROR_INVALID_ARGS
Ungültiger Alias-Wert, Daten oder Datenlänge wurden nicht angegeben.
OT_ERROR_NO_BUFS
Kein verfügbarer interner Puffer gefunden.

otPlatBleGattServerOnWriteRequest

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

Der BLE-Treiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass ein ATT-Schreibanfragepaket empfangen wurde.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aHandle
Der Handle des zu schreibenden Attributs.
[in] aPacket
Ein Zeiger auf das Paket enthält einen Wert, der in das Attribut geschrieben werden soll.

Makros

OT_BLE_ADV_INTERVAL_DEFAULT

 OT_BLE_ADV_INTERVAL_DEFAULT 100

Standardintervall für das Advertising-Paket (ms).

OT_BLE_ADV_INTERVAL_MAX

 OT_BLE_ADV_INTERVAL_MAX 0x4000

Maximal zulässiges Intervall für das Werbepaket in OT_BLE_ADV_INTERVAL_UNIT-Einheiten (10,24 s).

OT_BLE_ADV_INTERVAL_MIN

 OT_BLE_ADV_INTERVAL_MIN 0x0020

Zulässiges Mindestintervall für das Werbepaket in OT_BLE_ADV_INTERVAL_UNIT-Einheiten (20 ms).

OT_BLE_ADV_INTERVAL_UNIT

 OT_BLE_ADV_INTERVAL_UNIT OT_BLE_TIMESLOT_UNIT

Einheit zur Berechnung der Intervalldauer (0,625 ms).

OT_BLE_ATT_MTU_MAX

 OT_BLE_ATT_MTU_MAX 67

Maximal zulässige ATT-MTU-Größe (muss >= 23 sein).

OT_BLE_DEFAULT_POWER

 OT_BLE_DEFAULT_POWER 0

Standardwert für BLE.

OT_BLE_TIMESLOT_UNIT

 OT_BLE_TIMESLOT_UNIT 625

Slotdauer auf der PHY-Schicht in Mikrosekunden (0,625 ms).

Ressourcen

OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.