2016-07-15 5 views
1

Ich habe eine Frage bezüglich des Bluetooth LE-Protokolls.

Ich habe ein Android-Gerät und ein Peripheriegerät.
Betrachtet man die Übertragung mit einem Sniffer und Wireshark, gibt es +/- alle 40ms eine leere PDU Nachricht. Wie ich das Protokoll verstanden habe, bedeutet dies, dass das Verbindungsintervall, das das Gerät auswählte, 40 ms beträgt.

Zum Testen verwende ich eine einfache "UART" -Anwendung, bei der das Android-Gerät die Benachrichtigung auf einem Attribut des Peripheriegeräts aktiviert und benachrichtigt wird, sobald sich das Attribut ändert.

Wenn ich jetzt mehrere 20-Byte-Pakete durch dieses Setup "sende", zeigt mir wireshark, dass diese Wert-Benachrichtigungen nur etwa 7-10 ms voneinander entfernt sind. Jede Benachrichtigung enthält 20 Bytes

Bedeutet das, dass das Verbindungsintervall nicht für Benachrichtigungen gilt und dass jede Benachrichtigung max. 20 Bytes?
Bluetooth Low Energy Notification Intervall

Danke & Grüße!

Antwort

3

Es gibt ein Verbindungsereignis pro Verbindungsintervall. In jedem Verbindungsereignis können mehrere Pakete direkt nacheinander gesendet werden. Wenn keine Seite mehr zu senden hat, wird das Verbindungsereignis geschlossen und der nächste Austausch findet am nächsten Verbindungsintervallpunkt statt. Also ja, viele Benachrichtigungen können in einem Verbindungsintervall gesendet werden.

+0

Also ist die Wertbenachrichtigung nicht asynchron, und jedes geänderte Attribut wird bis zum nächsten Verbindungsereignis gepuffert? – Chuchaki

+0

Ja, jede Benachrichtigung wird für das nächste Verbindungsereignis geplant und gepuffert. Ich würde den Begriff asynchron hier nicht verwenden. – Emil

Verwandte Themen