Inhaltsverzeichnis:

Windows Bluetooth-Systemanalyse – ein SensorTag-Ansatz - Gunook
Windows Bluetooth-Systemanalyse – ein SensorTag-Ansatz - Gunook

Video: Windows Bluetooth-Systemanalyse – ein SensorTag-Ansatz - Gunook

Video: Windows Bluetooth-Systemanalyse – ein SensorTag-Ansatz - Gunook
Video: So passt Du die automatische Systemanalyse im WinOptimizer an 2024, Juli
Anonim
Windows Bluetooth-Systemanalyse – ein SensorTag-Ansatz
Windows Bluetooth-Systemanalyse – ein SensorTag-Ansatz

Im Folgenden werde ich das Windows-Betriebssystem (OS) aus Sicht der Kommunikation mit Bluetooth Low Energy Geräten analysieren – in unserem Fall mit unterschiedlichen SensorTags: Thunderboard React, Thunderboard Sense (beide produziert von Silicon Labs Company), CC2650STK und CC2541DK (beide entwickelt von Texas Instruments Company).

Schritt 1: Windows Bluetooth-Systemanalyse – ein SensorTag-Ansatz

Windows Bluetooth-Systemanalyse – ein SensorTag-Ansatz
Windows Bluetooth-Systemanalyse – ein SensorTag-Ansatz

Im Folgenden werde ich das Windows-Betriebssystem (OS) aus Sicht der Kommunikation mit Bluetooth Low Energy Geräten analysieren – in unserem Fall mit unterschiedlichen SensorTags: Thunderboard React, Thunderboard Sense (beide produziert von Silicon Labs Company), CC2650STK und CC2541DK (beide entwickelt von Texas Instruments Company).

Im Folgenden werde ich Windows 7, Windows 8.1 und die folgenden Windows 10-Versionen analysieren:

· Jubiläums-Update (veröffentlicht am 2. August 2016; Supportende: voraussichtlich März 2018), · Creators Update (veröffentlicht am 5. April 2017; Supportende: voraussichtlich September 2018) und

· Fall Creators Update (veröffentlicht am 17. Oktober 2017; Ende des Supports: voraussichtlich März 2019).

Die Analyse erfolgt unter folgenden Gesichtspunkten:

1. Die Fähigkeit des Betriebssystems (OS), sich mit einem SensorTag zu koppeln;

2. Die Möglichkeit, generische Zugangsdaten zu erhalten (dies ist ein obligatorischer Dienst);

3. Die Möglichkeit, Geräteinformationen abzurufen (dieser Dienst stellt Hersteller- und/oder Verkäuferinformationen zu einem bestimmten SensorTag offen);

4. Die Möglichkeit, die Daten des SensorTags mithilfe des Leseansatzes zu erhalten und

5. Die Möglichkeit, die Daten des SensorTags mithilfe des Benachrichtigungsansatzes abzurufen.

Alle Tests wurden mit der Version 9.7.8.0 der blessTags-Anwendung durchgeführt. Die blessTags-Anwendung wurde mit Unterstützung des Windows SDK – Bluetoothapis erstellt. Es wurden Funktionen wie BluetoothGATTGetCharacteristicValue, BluetoothGATTGetDescriptorValue, BluetoothGATTGetServices oder BluetoothGATTSetCharacteristicValue verwendet.

Diese Anwendung, blessTags (BLE SensorTags) Anwendung, kann von den Windows Store Apps heruntergeladen werden: https://www.microsoft.com/store/apps/9p054xsjjr1n. Für weitere Informationen, Demo, praktische Anwendungen, Beispiele usw. besuchen Sie bitte den folgenden Blog:

Schritt 2: Windows 10 - Jubiläums-Update - Version 1607

Image
Image

Diese Version des Betriebssystems Windows 10 ist aus Sicht von Bluetooth Low Energy-Geräten die beste. Es kann problemlos mit allen SensorTags gekoppelt werden (unabhängig von der darauf laufenden Softwareversion), mit denen die blessTags-Anwendung zu arbeiten weiß (CC2650STK, Thunderboard React, Thunderboard Sense und CC2541DK) und alle Informationen aus den Bluetooth-Diensten Get Generic Der Zugriff auf und das Abrufen von Geräteinformationen erfolgt problemlos.

Bei der Analyse der Datenerfassungsgeschwindigkeit (für CC2650STK- und CC2541DK-Geräte) mithilfe des Benachrichtigungs- und Lesemechanismus der Datenübertragung können wir Folgendes beobachten:

1. durch den Benachrichtigungsmechanismus können wir problemlos Daten von allen Sensoren (acht) von 150 [ms] bis 150 [ms] abrufen;

2. Wenn wir stattdessen die Erfassungszeit auf 150 [ms] setzen und den Datenlesemechanismus verwenden, erhalten wir im glücklichsten Fall 713 [ms] und im schlimmsten Fall 840 [ms].

Wenn wir Thunderboard React und Thunderboard Sense analysieren, erhalten wir die gleichen Ergebnisse – sie funktionieren problemlos in der Windows 10 Anniversary Update-Umgebung.

Tatsächlich wurden alle Präsentationsfilme der Hauptfunktionen der blessTags-Anwendung und der verschiedenen spezifischen Funktionen (wie Gadgets) mit Unterstützung des Windows 10-Jubiläumsupdates erstellt.

Schritt 3: Windows 10 – Creators Update – Version 1703

Windows 7
Windows 7

Die Creators Update-Version von Windows 10 ist aus Sicht von Bluetooth Low Energy-Geräten das schlechteste Betriebssystem (OS).

Fast nichts funktioniert. Microsoft hat bestätigt, dass das Creators Update Bluetooth Low Energy (Referenz 1 und Referenz 2) beschädigt hat. Das Microsoft-Unternehmen versprach einen Hotfix so schnell wie möglich. Aber seitdem haben sie eine aktualisierte Version von Windows (Fall Creators Update) veröffentlicht und es ist nichts passiert – bis jetzt funktioniert das Bluetooth Low Energy innerhalb der Windows 10 Creators Update-Version immer noch nicht.

Es gibt eine große Anzahl von Beiträgen in Foren, in denen sich verschiedene Leute über verschiedene Arten von Bluetooth-Geräten beschweren, die nach dem Upgrade auf Creators Update nicht mehr funktionieren (siehe hier, siehe hier, siehe hier, siehe hier usw.).

Die Ergebnisse, die ich gleich zeigen werde, wurden nach vielen Tests erhalten: (1) auf einem Desktop-PC mit einem CSR4.0 Bluetooth USB-Dongle (CSR8510 A10) und (2) auf einem Dell Inspiron P66F Laptop mit einem integriertes Bluetooth LE-Gerät. Ich weiß, dass es im Internet viele Lösungen gibt, um verschiedene Arten von Bluetooth-Problemen zu beheben. Ich habe fast alles versucht, aber nichts hat funktioniert (Aktualisieren Sie den Bluetooth-Treiber, führen Sie die Windows-Fehlerbehebung aus, deaktivieren und aktivieren Sie Bluetooth-bezogene Dienste usw.)

Also stellen wir die Ergebnisse vor:

1. CC2650STK:

A. Auf der Firmware-Version 1.40 ist es nicht möglich, das SensorTag-Gerät mit Windows zu koppeln (ich habe den Vorgang mehrmals wiederholt, mindestens 8-10 Mal, ich habe Bluetooth ein- und ausgeschaltet und es erneut versucht – das Ergebnis war das gleiche: Es war unmöglich, dieses Gerät hinzufügen).

B. Auf der Firmware-Version 1.20 hat der PC den SensorTag entdeckt und ich konnte den SensorTag mit dem PC koppeln.

Außerdem konnte ich Generic Access-Daten abrufen. Aber beim Dienst Geräteinformationen abrufen haben von 9 Merkmalen nur 6 geantwortet und nur von ihnen war es möglich, Informationen zu erhalten.

Stattdessen kann ich das Gerät nicht einrichten und weder über den Lesemechanismus noch über die Benachrichtigungen Daten von Sensoren abrufen.

2. Thunderboard-Reaktion:

Das Betriebssystem hat ein seltsames Verhalten, wenn der Pairing-Vorgang eingeleitet wird. In der Liste der erkannten Geräte erscheinen und verschwinden die SensorTags (mit einer Dauer von 1 … 1,5 s). Wenn schließlich ein Mausklick auf das SensorTag erfolgreich ist, wird der Pairing-Prozess abgeschlossen und die LEDs auf dem Thunderboard React (die blauen und die grünen) blinken nacheinander in einem atypischen Modus.

Das Auslesen der Merkmale des Generic Access Service (0x1800) ist problemlos möglich, das Auslesen des Device Information Service (0x180A) schlägt jedoch bei allen vier vorhandenen Merkmalen fehl.

Einstellen der Sensoren (eingebettet auf SensorTag), des Modus der Datenerfassung (auf Thunderboard React haben Sie nur folgende Möglichkeit: (1) Daten durch die Benachrichtigung von 3 Sensoren zu erhalten und (2) Daten von den anderen vier Sensoren auszulesen) ist unmöglich. Daher ergibt sich die Unmöglichkeit, die Ist-Daten von Sensoren direkt zu erhalten.

3. Thunderboard-Erkennung:

Der gleiche pulsierende Prozess, der für Thunderboard React beobachtet wurde, wurde auch für Thunderboard Sense gefunden – wenn wir den Pairing-Prozess erreichen möchten. Aber hier ist es noch schlimmer: Nach dem Pairing kann das blessTag-Programm den SensorTag nicht erkennen. Also kein aktives Gerät – keine Entität, von der die blessTags-Anwendung die Daten erfasst.

4. CC2541DK:

Das Verhalten ist identisch mit dem Verhalten von CC2650STK (Firmware-Version 1.40). Bei jedem Verbindungsversuch erhalten Sie die folgende Fehlermeldung: "Versuchen Sie, Ihr Gerät erneut zu verbinden".

Zusammenfassend lässt sich sagen, dass es in dieser Version von Windows 10 (Creators Update) unmöglich ist, mit einem der vier oben genannten Arten von SensorTags zu kommunizieren. Folglich erwähne ich (noch einmal), dass ich hier dieselbe Softwareversion verwendet habe, die ich auch in allen Tests zum Windows 10 Anniversary Update verwendet habe.

Schritt 4: Windows 10 – Fall Creators Update – Version 1709

Image
Image

Diese Version von Windows 10 (1709 – OS Build 16299.19) ist ein großer Schritt nach vorne, verglichen mit Windows 10 Creators Update (wo auf BLE fast nichts funktionierte), aber es ist noch ein langer Weg, um das Niveau von Windows 10 Anniversary Update zu erreichen (1607) Betriebssystem

Aber mal sehen, warum ich diese Aussage gemacht habe:

1. CC2650STK (Firmware-Version 1.40) & CC2541DK:

Ich werde diese beiden Geräte hier gleichzeitig behandeln, da ihr Verhalten in Bezug auf das Betriebssystem Windows 10 (1709) ähnlich ist.

Der Pairing-Vorgang und das Auslesen der Dienste Generic Access und Device Information funktionieren einwandfrei und problemlos.

Die Probleme treten nur auf, wenn wir Informationen von den Sensoren auslesen wollen. Der Datenübertragungsmechanismus über Benachrichtigungen funktioniert überhaupt nicht.

Die einzige Möglichkeit, Daten von den im SensorTag eingebetteten Sensoren zu erhalten, ist der direkte Lesemechanismus vom Gerät. Dieser Ansatz hat zwei Probleme: (1) niedrigere Datenübertragungsgeschwindigkeit (wie oben gezeigt) und (2) wenn alle Sensoren eine der beiden Datenübertragungsmethoden akzeptieren (durch Lesen und Benachrichtigung), können die Schaltflächen auf dem SensorTag sein nur über den Benachrichtigungsmechanismus abgefragt. Dank dieses "Features" des Betriebssystems Windows 10 (1709) implementiert die blessTags-Anwendung ab Version 9.7.8.0 auch die Lesemethode für die Datenerfassung.

Es tritt ein Problem mit dem CC2650STK SensorTag mit der Firmware-Version 1.20 auf. Wenn der Vorgang des Pairings und des Datenlesens vom Generic Access-Dienst sehr gut funktioniert, ist der Lesevorgang von den Geräteinformationsdiensten nicht möglich. Außerdem funktioniert das Auslesen des Sensors (von diesem SensorTag mit dieser Firmware-Version) über keinen der beiden möglichen Mechanismen (Auslesen oder Benachrichtigung).

2. Thunderboard-Reaktion:

Im gleichen Modus wie in Windows 10 Creators Update erscheint und verschwindet das SensorTag, wenn wir ein neues Bluetooth-Gerät hinzufügen möchten. Das gleiche Verhalten kann im Action Center auf Bluetooths Quick Action Button hervorgehoben werden, wenn „Not connected“und „Thunderboard React“wiederholt angezeigt werden (siehe im folgenden Film diesen Vorgang ab dem Zeitindex 5,14 s). Sofort können wir abschließen dass Thunderboard React schuldig ist, hauptsächlich aufgrund einer fehlerhaften Implementierung des Werbemechanismus durch die Ingenieure von Silicon Labs. Aber bei einer Suche im Internet werden wir feststellen, dass andere Benutzer nach der Installation der Fall Creators das gleiche Problem bei anderen Arten von BLE-Geräten gemeldet haben Update – z. B. diesen Film auf YouTube ansehen.

Nach dem Koppeln des SensorTags kann die blessTags-Anwendung das Thunderboard React-Gerät nicht finden. An dieser Stelle funktioniert also nichts: Generic Access und die Geräteinformationsdienste oder die Datenerfassung von den Sensoren, die auf Thunderboard React SensorTag eingebettet sind.

3. Thunderboard-Erkennung:

Das Verhalten ähnelt dem des Thunderboard React. Dieses Bluetooth-Gerät wird wiederholt angezeigt und ausgeblendet. Wenn der Pairing-Prozess erfolgreich war, können Daten vom Generic Access Service übernommen werden. Aber ab diesem Zeitpunkt funktioniert nichts mehr.

Zusammenfassend lässt sich sagen, dass bis jetzt auf Windows 10 Fall Creators Update (1709, build 16229.19) nur die von TI produzierten SensorTags (CC2650STK und CC2541DK) funktionieren. Außerdem arbeiten sie nur im Lesemodus. Aber Achtung! In diesem Modus funktioniert nur die CC2650STK-Firmwareversion 1.40. Leider haben Sie beim Kauf eines CC2650STK eine sehr hohe Chance, ein Gerät mit der Firmware-Revision 1.20 zu kaufen. Um also mit einem solchen SensorTag kommunizieren zu können, ist ein Upgrade mindestens auf die Firmware-Version 1.40 erforderlich.

Im Zusammenhang mit diesem Schritt präsentiere ich einen Film, der all diese oben gemachten Aussagen für Windows 10 Fall Creators Update beweist.

Seit der ersten Veröffentlichung von Windows 10 Fall Creators Update (Build 16229.19) am 17. Oktober 2017 gab es keine Verbesserungen oder Fehlerkorrekturen im Zusammenhang mit Bluetooth LE bis KB4054517 (veröffentlicht am 12. Dezember 2017). In KB4054517 (OS Build 16299.125) gibt es eine wichtige Änderung bei Bluetooth LE (siehe hier): „Adressiert das Problem mit personalisierten Bluetooth-Geräten, die das Bonden nicht unterstützen“. Da diese Nachricht sehr kryptisch ist, habe ich beschlossen, alle meine bisherigen Analysen fortzusetzen und zu sehen, ob es Verbesserungen im Vergleich zur ersten Version von Windows 10 Fall Creators Update (Build 16229.19) gibt. … und eine kleine Überraschung, im Moment kann ich Folgendes abrufen: (1) Daten von Thunderboard Sense (von den Sensoren, die auf dem SensorTag eingebettet sind, aber nur durch den Lesemechanismus) und (2) alle Informationen von den Diensten Generic Access und Device Information. Es gibt keine weiteren Verbesserungen.

Schritt 5: Windows 8

Als erstes Microsoft-Betriebssystem mit BLE-Unterstützung ist die Implementierung zufriedenstellend, aber es ist bei weitem eine hervorragende. Die einzigen Geräte, die mit diesem Betriebssystem funktionieren, sind CC2650STK und CC2541DK.

Wenn Sie die Erfassungszeit auf 150 [ms] einstellen, können wir beim CC2650STK die Daten (von allen eingebetteten Sensoren) unter Einhaltung der Abtastrate von 150 [ms] problemlos über den Benachrichtigungsmechanismus abrufen. Leider können wir mit dem CCC2650STK-Lesemechanismus Daten (von allen Sensoren) innerhalb von 2 Sekunden abrufen.

Die Situation wird schlimmer, wenn wir über CC2541DK sprechen. Durch den Benachrichtigungsmechanismus werden die Daten mit einem Zeitraum von 0,4 … 0,6 Sekunden erhalten. Bei Verwendung des Lesemechanismus können wir die Daten mit einer schwankenden Periode von 2,8 … 3 Sekunden abrufen. Die Bedingungen sind die gleichen: Erfassungszeitraum 150 [ms] von allen Sensoren, die auf dem CC2541DK SensorTag eingebettet sind.

Schritt 6: Windows 7

Das Unternehmen Microsoft hat ab dem Betriebssystem Windows 8 Unterstützung für den Bluetooth Low Energy (BLE)-Stack hinzugefügt. Sie haben eine API bereitgestellt, die es Anwendungen ermöglicht, auf BLE-Geräte zuzugreifen.

Aber Microsoft hat die BLE APIs nicht auf Windows 7 portiert. Der eingebaute Stack von Windows 7 unterstützt nur Bluetooth Version 2.1/3.0, es gibt keine Unterstützung für BLE (4.0, 4.1 oder 4.2). Aus der Sicht eines Entwicklers ist es also unmöglich, in Windows 7 mit einem BLE-Gerät zu kommunizieren, das den Stack von Windows 7 verwendet.

Die Firma TI hat ein Programm namens BLE Device Monitor, das in der Lage ist: (1) auf Windows 7 zu laufen und (2) mit einem SensorTag zu kommunizieren. Dafür müssen Sie jedoch einen speziellen USB-Dongle verwenden (z. B. CC2540 Bluetooth Low Energy USB). Wenn der Quellcode für den USB-Dongle kostenlos ist, ist der Quellcode für den BLE Device Monitor nicht verfügbar – er ist nur für den internen Gebrauch der Firma TI.

Schritt 7: Schlussfolgerungen

Schlussfolgerungen
Schlussfolgerungen

Das Windows 10 Anniversary Update (Version 1607) ist aus Sicht von Bluetooth Low Energy (BLE)-Geräten – in unserem Fall SensorTags – die beste Windows-Version, die Microsoft jemals erstellt hat. Dies liegt natürlich auch an der beträchtlichen Anzahl von Verbesserungen, die auf Bluetooth LE-Ebene in den folgenden OS-Builds stattgefunden haben (weitere Informationen finden Sie unter: https://support.microsoft.com/en-us/help/4000825): 14393.51, 14393.105, 14393.189, 14393.222, 14393.321, 14393.351, 14393.726 und 14393.1083.

Die Anwendung blessTags (BLE SensorTags) kann von den Windows Store Apps heruntergeladen werden: https://www.microsoft.com/store/apps/9p054xsjjr1n. Für weitere Informationen, Demo, praktische Anwendungen, Beispiele usw. besuchen Sie bitte den folgenden Blog:

Wenn wir alle oben genannten Ergebnisse synthetisieren, erhalten wir die mit diesem Schritt verbundene Tabelle.

Empfohlen: