2017-04-19 3 views
0

Wie implementiere ich Benachrichtigungen in BLE?Implementieren der Benachrichtigung in BLE

Ich habe ein Smartphone, und jede Stunde sendet es eine Benachrichtigung an alle nahegelegenen BLE-Geräte (Smartwatch, RFduino, etc) für die Zeitsynchronisation Zweck.

Andere Geräte sind jetzt Server (da es Daten bereitstellt), und Smartphone ist der Client, der die Daten sammelt.

Könnte ich in die Werbepakete pendeln? Zum Beispiel sendet das Smartphone immer ein Werbepaket, um seine Anwesenheit anzuzeigen (so können andere Geräte es finden). Kann ich dieses Paket als Zeitsynchronisierung ändern?

Antwort

1

Um Benachrichtigungen oder Werbung senden zu können, muss Ihr Smartphone als Server fungieren. Dies bedeutet auch, dass Ihre Peripheriegeräte als Clients fungieren müssen, um Benachrichtigungen empfangen oder nach Werbung suchen zu können.

Dies kann ein bisschen schwierig sein, denn wenn zwei Geräte als Client und Server fungieren, können sie nicht gleichzeitig die andere Rolle erfüllen. Sie müssen bei Bedarf die Rollen wechseln, was ein offenes Feld für alle Arten von Problemen ist.

Auch ich bin nicht überzeugt, dass es wirklich die optimale Wahl ist, das Smartphone regelmäßig alle Geräte in der Nähe zu benachrichtigen. Jedes der Geräte, die die Benachrichtigung erhalten möchten, muss mit dem Gerät verbunden sein, um die Benachrichtigung zu erhalten, und diese Verbindung muss bereits aktiv sein, wenn die Benachrichtigung gesendet wird, um wirklich die richtige Zeit zu erhalten. Daher müssen sich alle diese Geräte im Voraus mit der erwarteten Benachrichtigungszeit verbinden und die Verbindung halten, bis die Benachrichtigung erfolgt ist.

Es könnte besser sein, nur die aktuelle Zeit anzukündigen, aber denken Sie daran, dass Sie während der Werbung keine Verbindung zum Smartphone als Server herstellen können, da sich die Verknüpfungsebene möglicherweise nicht gleichzeitig im Such- und Werbemodus befindet und Sie sind möglicherweise auch nicht verbunden, wenn Sie aus einem ähnlichen Grund werben.

Wenn Sie es so machen möchten, können Sie die Zeitinformation in die Werbedaten aufnehmen. Weitere Informationen zur Struktur der Werbedaten finden Sie in der Ergänzung zur Bluetooth Core Specification v6, Teil A. Sie könnten es in die herstellerspezifischen Daten einfügen.

Eine andere Option wäre jedoch, die Uhrzeit mit einer Schreibanforderung direkt auf das Gerät zu schreiben. Sie können eigene Dienste und Merkmale definieren. Sie können in die Werbedaten der Server eine "Zeitsynchronisation erforderlich" -Information einbeziehen, und wenn das Smartphone die Werbung auswertet, kann es sich mit dem entsprechenden Gerät verbinden und die Uhrzeit direkt senden.

Der Vorteil dieses Verfahrens ist, dass die Zeit nur dann aktualisiert wird, wenn Sie sie wirklich auf dem Gerät benötigen und Sie keine Client/Server-Rollen wechseln müssen, da das Gerät in der Serverrolle wie üblich annoncieren kann Smartphone kann immer in Client-Rolle bleiben.

Verwandte Themen