scPower Übertragung erweitert:

- Ablaufplan hinzugefügt
- Abnappung des Textes
main
Sebastian Preisner 3 years ago
parent 4f4cd4fc99
commit 3f71a8ffc2

@ -370,15 +370,19 @@ Für den Versuchsmodus wird der Beacon in den Advertising-\ac{pdu} ``ADV_NONCONN
Im Programmiermodus befindet sich der Beacon im Advertising-\ac{pdu} ``ADV_IND``. Dieser ist notwendig damit eine Verbindung mit dem Beacon zur erneuten Programmierung hergestellt werden kann. Auch der Advertising-Name des Beacons wird in diesem Modus mit ausgesendet um das Gerät leichter zu Identifizieren. Im Programmiermodus befindet sich der Beacon im Advertising-\ac{pdu} ``ADV_IND``. Dieser ist notwendig damit eine Verbindung mit dem Beacon zur erneuten Programmierung hergestellt werden kann. Auch der Advertising-Name des Beacons wird in diesem Modus mit ausgesendet um das Gerät leichter zu Identifizieren.
### scPower ### Verarbeitung der $scPower$
Zur Umsetzung eines selbst korrigierenden Systems müssen die Bluetooth-Beacon sowohl als Scanner wie auch als Advertiser fungieren. Im Versuchsmodus scannen die Beacon hierzu, parallel zum Aussenden der Advertising-Pakete, nach solche Paketen von den anderen beiden Beacon. Abbildung \ref{fig:selfkorrekting} zeigt den Ablauf des selbst korrigierenden Systems bei dem Beacon 5b5b ein Advertising-Paket aussendet, welches von den Beacon 690f und 9d31 empfangen und verarbeitet wird. Die Beacon 690f und 9d31 speichern den \ac{rssi}-Wert des Empfangenen Pakets von Beacon 5b5b als $scPower$ in ihrem Advertising-Paket und senden dieses aus. Bei jedem erneuten empfang eines Advertising-Pakets von Beacon 5b5b wird die $scPower$ aktualisiert. Zur Umsetzung eines selbst korrigierenden Systems müssen die Bluetooth-Beacon sowohl als Scanner wie auch als Advertiser fungieren. Im Versuchsmodus scannen die Beacon hierzu, parallel zum Aussenden der Advertising-Pakete, nach solche Paketen von den anderen beiden Beacon. Abbildung \ref{fig:selfcorrecting} zeigt schematisch den Ablauf des selbst korrigierenden Systems anhand der Beacon 5b5b und 690f. Der Beacon 5b5b sendet sein Advertising-Paket aus, welches von dem Beacon 690 empfangen und verarbeitet wird. Der Beacon 690f speichert den \ac{rssi}-Wert des Empfangenen Pakets von Beacon 5b5b als $scPower$ in seinem Advertising-Paket und senden dieses aus. Bei jedem erneuten empfang eines Advertising-Pakets von Beacon 5b5b wird die $scPower$ aktualisiert.
![Ablauf des Advertisings am Beispiel von zwei Beacon. \label{fig:selfcorrecting}](../static/Ablaufplan-Advertising.pdf){ width=60% }
## Smartphone ## Smartphone
Als Smartphone für die Messungen kommt ein OnePlus 7t mit Android-Betriebssystem in der Version 11 zum Einsatz. Für die Anwendungsentwicklung wird die \ac{ide} Android Studio verwendet. Als Programmiersprache wurde Kotlin gewählt und die Smartphone-Anwendung als Bluetooth-Scanner umgesetzt. Über die Benutzeroberfläche, zu sehen in Abbildung \ref{fig:appfrontend}, müssen 4 Eingabefelder vor dem Versuchsstart durch den Anwender ausgefüllt werden. Der Testname dient dazu, die Testdaten bei der Auswertung zu identifizieren, er dient auch als Dateiname für die gespeicherten Daten. In den weiteren drei Feldern wird die, für den durchgeführten Versuch, real gemessene Entfernung zwischen Smartphone und dem jeweiligen Beacon notiert. Sollten ein oder mehrere Beacon im durchgeführten Versuch keine Relevanz haben, so muss hier eine 0 eingetragen werden. Über den Start/Stop-Button am unteren Bildschirmrand der Anwendung wird die Aufzeichnung gestartet. Nach dem Start können die empfangenen Daten im oberen Bildschirmbereich zur Funktionsüberprüfung eingesehen werden. Diese Daten aktualisieren sich automatisch mit jedem empfangenen Advertising-Paket. Als Smartphone für die Messungen kommt ein OnePlus 7t mit Android-Betriebssystem in der Version 11 zum Einsatz. Für die Anwendungsentwicklung wird die \ac{ide} Android Studio verwendet. Als Programmiersprache wurde Kotlin gewählt und die Smartphone-Anwendung als Bluetooth-Scanner umgesetzt.
Über die Benutzeroberfläche, zu sehen in Abbildung \ref{fig:appfrontend}, müssen 4 Eingabefelder vor dem Versuchsstart durch den Anwender ausgefüllt werden. Der Testname dient dazu, die Testdaten bei der Auswertung zu identifizieren, er dient auch als Dateiname für die gespeicherten Daten. In den weiteren drei Feldern wird die, für den durchgeführten Versuch, real gemessene Entfernung zwischen Smartphone und dem jeweiligen Beacon notiert. Sollten ein oder mehrere Beacon im durchgeführten Versuch keine Relevanz haben, so muss hier eine 0 eingetragen werden. Über den Start/Stop-Button am unteren Bildschirmrand der Anwendung wird die Aufzeichnung gestartet. Nach dem Start können die empfangenen Daten im oberen Bildschirmbereich zur Funktionsüberprüfung eingesehen werden. Diese Daten aktualisieren sich automatisch mit jedem empfangenen Advertising-Paket.
![Screenshot der Smartphone-Testanwendung: Bluetooth Advertise Logger. \label{fig:appfrontend}](../static/appfrontend.jpg){ height=600px } ![Screenshot der Smartphone-Testanwendung: Bluetooth Advertise Logger. \label{fig:appfrontend}](../static/appfrontend.jpg){ height=400px }
Beim Empfang eines Advertising-Pakets wird geprüft, ob das Paket von einem der Beacon versendet wurde. Hierzu wird zunächst nach der \ac{uuid} gefiltert und anschließend nach den \ac{mac}-Adressen der drei Beacon. Ist das Paket von einem der Beacon, so werden die Daten des Advertising-Pakets in einer Textdatei, mit dem Testnamen als Dateinamen, auf dem Smartphone abgelegt. Die Daten werden im \ac{csv}-Format gespeichert, dabei sind die einzelnen Spalten mit Hilfe eines Kommas voneinander getrennt. In Tabelle \ref{tab:datastore} werden die Spalten aufgelistet und ihr Inhalt kurz erläutert. Beim Empfang eines Advertising-Pakets wird geprüft, ob das Paket von einem der Beacon versendet wurde. Hierzu wird zunächst nach der \ac{uuid} gefiltert und anschließend nach den \ac{mac}-Adressen der drei Beacon. Ist das Paket von einem der Beacon, so werden die Daten des Advertising-Pakets in einer Textdatei, mit dem Testnamen als Dateinamen, auf dem Smartphone abgelegt. Die Daten werden im \ac{csv}-Format gespeichert, dabei sind die einzelnen Spalten mit Hilfe eines Kommas voneinander getrennt. In Tabelle \ref{tab:datastore} werden die Spalten aufgelistet und ihr Inhalt kurz erläutert.

@ -0,0 +1,8 @@
sequenceDiagram
participant 5 as 5b5b
participant 6 as 690f
loop alle 100 ms
5 ->>+ 6: Advertising
6 ->> 6: Speichern scPower 5b5b<br/> im Advertising Paket
6 ->>- 5: Advertising
end

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

Loading…
Cancel
Save