Inhoudsopgave:

Windows Bluetooth-systeemanalyse - een SensorTag-aanpak: 7 stappen (met afbeeldingen)
Windows Bluetooth-systeemanalyse - een SensorTag-aanpak: 7 stappen (met afbeeldingen)

Video: Windows Bluetooth-systeemanalyse - een SensorTag-aanpak: 7 stappen (met afbeeldingen)

Video: Windows Bluetooth-systeemanalyse - een SensorTag-aanpak: 7 stappen (met afbeeldingen)
Video: What is CarLock? Is CarLock Legit!? FULL in depth review of this vehicle tracking and alert system. 2024, Juli-
Anonim
Windows Bluetooth-systeemanalyse – een SensorTag-aanpak
Windows Bluetooth-systeemanalyse – een SensorTag-aanpak

In het volgende zal ik een analyse maken van het Windows-besturingssysteem (OS) vanuit het oogpunt van communicatie met Bluetooth Low Energy-apparaten - in ons geval met verschillende soorten SensorTags: Thunderboard React, Thunderboard Sense (beide geproduceerd door Silicon Labs Company), CC2650STK en CC2541DK (beide ontwikkeld door Texas Instruments Company).

Stap 1: Windows Bluetooth-systeemanalyse - een SensorTag-aanpak

Windows Bluetooth-systeemanalyse – een SensorTag-aanpak
Windows Bluetooth-systeemanalyse – een SensorTag-aanpak

In het volgende zal ik een analyse maken van het Windows-besturingssysteem (OS) vanuit het oogpunt van communicatie met Bluetooth Low Energy-apparaten - in ons geval met verschillende soorten SensorTags: Thunderboard React, Thunderboard Sense (beide geproduceerd door Silicon Labs Company), CC2650STK en CC2541DK (beide ontwikkeld door Texas Instruments Company).

In wat volgt, zal ik Windows 7, Windows 8.1 en de volgende Windows 10-versies analyseren:

· Jubileumupdate (uitgebracht op 2 augustus 2016; einde ondersteuning: voorlopig maart 2018), · Creators Update (uitgebracht op 5 april 2017; einde ondersteuning: voorlopig september 2018) en

· Fall Creators Update (uitgebracht op 17 oktober 2017; einde ondersteuning: voorlopig maart 2019).

De analyse zal gebeuren vanuit de volgende gezichtspunten:

1. De mogelijkheid van het besturingssysteem (OS) om te koppelen met een SensorTag;

2. De mogelijkheid om Generic Access-gegevens te verkrijgen (dit is een verplichte dienst);

3. De mogelijkheid om apparaatinformatie te krijgen (deze service onthult informatie over de fabrikant en/of leverancier met betrekking tot een specifieke SensorTag);

4. De mogelijkheid om de gegevens van de SensorTag te krijgen, met behulp van de leesbenadering en

5. De mogelijkheid om de gegevens van de SensorTag op te halen met behulp van de meldingsaanpak.

Alle tests zijn uitgevoerd met versie 9.7.8.0 van de blessTags-toepassing. De blessTags applicatie is gebouwd met als ondersteuning de Windows SDK – Bluetoothapis. Functies zoals BluetoothGATTGetCharacteristicValue, BluetoothGATTGetDescriptorValue, BluetoothGATTGetServices of BluetoothGATTSetCharacteristicValue werden gebruikt.

Deze applicatie, blessTags (BLE SensorTags) applicatie, kan worden gedownload van de Windows Store Apps: https://www.microsoft.com/store/apps/9p054xsjjr1n. Voor meer informatie, demo, praktische toepassingen, voorbeelden etc. bezoek de volgende blog:

Stap 2: Windows 10 - Jubileumupdate - Versie 1607

Image
Image

Deze versie van het Windows 10-besturingssysteem is de beste, vanuit het oogpunt van Bluetooth Low Energy-apparaten. Het kan probleemloos worden gekoppeld aan alle SensorTags (ongeacht de softwareversie die erop draait), waarmee de blessTags-applicatie weet te werken (CC2650STK, Thunderboard React, Thunderboard Sense en CC2541DK), en alle informatie van de Bluetooth-services Get Generic Toegang tot en verkrijgen van apparaatinformatie wordt zonder enig probleem verkregen.

Bij het analyseren van de data-acquisitiesnelheid (voor CC2650STK- en CC2541DK-apparaten) met behulp van het meldings- en leesmechanisme van gegevensoverdracht, kunnen we het volgende waarnemen:

1. via het meldingsmechanisme kunnen we zonder problemen gegevens krijgen van alle sensoren (acht) van 150 [ms] tot 150 [ms];

2. in plaats daarvan, wanneer we de acquisitietijd instellen op 150 [ms] en we het mechanisme voor het lezen van gegevens gebruiken - in de gelukkigste situatie krijgen we 713 [ms] en in het ergste geval krijgen we 840 [ms].

Als we Thunderboard React en Thunderboard Sense gaan analyseren, krijgen we dezelfde resultaten: ze werken probleemloos in de Windows 10 Anniversary Update-omgeving.

In feite zijn alle presentatiefilms van de hoofdfuncties van de blessTags-toepassing en van de verschillende specifieke functies (zoals gadgets) gemaakt met de ondersteuning van de Windows 10 Jubileumupdate.

Stap 3: Windows 10 - Creators Update - Versie 1703

Windows 7
Windows 7

De Creators Update-versie van Windows 10 is het slechtste besturingssysteem (OS) vanuit het oogpunt van Bluetooth Low Energy-apparaten.

Bijna niets werkt. Microsoft heeft erkend dat de Creators Update Bluetooth Low Energy heeft verbroken (referentie 1 en referentie 2). Het Microsoft-bedrijf beloofde zo snel mogelijk een hotfix. Maar sindsdien hebben ze een bijgewerkte versie van Windows (Fall Creators Update) uitgebracht en is er niets gebeurd - tot nu toe werkt de Bluetooth Low Energy nog steeds niet in de Windows 10 Creators Update-versie.

Er zijn een groot aantal berichten op forums waarin verschillende mensen klagen over verschillende soorten Bluetooth-apparaten die niet meer werken na het upgraden naar Creators Update (zie hier, zie hier, zie hier, zie hier enz.).

De resultaten, die ik meteen zal laten zien, werden verkregen na vele tests: (1) op een desktop-pc met een CSR4.0 Bluetooth USB-dongle (CSR8510 A10) en (2) op een Dell Inspiron P66F-laptop met een geïntegreerd Bluetooth LE-apparaat. Ik weet dat er veel oplossingen op internet zijn om verschillende soorten Bluetooth-problemen op te lossen. Ik heb bijna alles geprobeerd, maar niets werkte (update het Bluetooth-stuurprogramma, voer de probleemoplosser van Windows uit, schakel Bluetooth-gerelateerde services uit en in enz.)

Dus laten we de resultaten presenteren:

1. CC2650STK:

A. Op de firmwareversie 1.40 is het koppelen van het SensorTag-apparaat met Windows onmogelijk (ik heb het proces verschillende keren herhaald, minstens 8-10 keer, ik heb Bluetooth in- en uitgeschakeld en ik probeerde het opnieuw - de resultaten waren hetzelfde: het was onmogelijk om dit apparaat toevoegen).

B. Op firmwareversie 1.20 ontdekte de pc de SensorTag en kon ik de SensorTag met de pc koppelen.

Ook was ik in staat om Generic Access-gegevens te krijgen. Maar bij de service Apparaatinformatie ophalen reageerden slechts 6 van 9 kenmerken en alleen van hen was het mogelijk om informatie te krijgen.

In plaats daarvan kan ik het apparaat niet instellen en kan ik geen gegevens van sensoren ophalen, noch via het leesmechanisme, noch via de meldingen.

2. Thunderboard Reageren:

Het besturingssysteem gedraagt zich vreemd wanneer het koppelingsproces wordt gestart. In de lijst met gedetecteerde apparaten verschijnt en verdwijnt de SensorTag (met een periode van 1 … 1,5 s). Ten slotte, wanneer een muisklik op de SensorTag slaagt, wordt het koppelingsproces voltooid en hebben de LED's op de Thunderboard React (de blauwe en de groene) een periode waarin ze opeenvolgend knipperen in een atypische modus.

Het uitlezen van de kenmerken van de Generic Access Service (0x1800) kan probleemloos, maar het uitlezen van Device Information Service (0x180A) mislukt op alle vier de bestaande kenmerken.

Instellen van de sensoren (ingesloten op SensorTag), de modus voor het verkrijgen van gegevens (op Thunderboard React heb je alleen de volgende mogelijkheid: (1) om gegevens te krijgen via de melding van 3 sensoren en (2) om gegevens van de andere vier sensoren te lezen) is onmogelijk. Daarom is de onmogelijkheid om de werkelijke gegevens van sensoren te verkrijgen hier rechtstreeks het gevolg van.

3. Thunderboard-gevoel:

Hetzelfde pulserende proces, waargenomen voor Thunderboard React, bleek ook te bestaan voor Thunderboard Sense - wanneer we het koppelingsproces willen bereiken. Maar hier is het nog erger: na het koppelen kan het blessTag-programma de SensorTag niet detecteren. Dus geen actief apparaat - geen entiteit waar de blessTags-toepassing de gegevens vandaan haalt.

4. CC2541DK:

Het gedrag is identiek aan het gedrag van CC2650STK (firmwareversie 1.40). Bij elke verbindingspoging krijgt u de volgende foutmelding: "Probeer uw apparaat opnieuw te verbinden".

Dus, tot slot, binnen deze versie van Windows 10 (Creators Update), is het onmogelijk om te communiceren met een van de vier soorten SensorTags die hierboven worden vermeld. Daarom vermeld ik (nogmaals) dat ik hier dezelfde softwareversie heb gebruikt die ik ook heb gebruikt in alle tests die zijn gemaakt op Windows 10 Jubileumupdate.

Stap 4: Windows 10 – Fall Creators Update - Versie 1709

Image
Image

Deze versie van Windows 10 (1709 – OS Build 16299.19) is een enorme stap voorwaarts, vergeleken met Windows 10 Creators Update (op BLE werkte bijna niets), maar heeft nog een lange weg te gaan naar het niveau van Windows 10 Anniversary Update (1607) besturingssysteem

Maar laten we eens kijken waarom ik deze uitspraak deed:

1. CC2650STK (firmwareversie 1.40) & CC2541DK:

Ik zal deze twee apparaten hier tegelijkertijd behandelen omdat hun gedrag met betrekking tot het besturingssysteem Windows 10 (1709) vergelijkbaar is.

De koppelingsbewerking en het lezen, van de Generic Access- en de Device Information-services, werken perfect zonder enige problemen.

De problemen treden alleen op als we informatie van de sensoren willen uitlezen. Het mechanisme voor gegevensoverdracht via meldingen werkt helemaal niet.

De enige manier om gegevens van de sensoren, ingebed in de SensorTag, te krijgen, is door middel van het directe uitleesmechanisme van het apparaat. Deze aanpak heeft twee problemen: (1) lagere gegevensoverdrachtsnelheid (zoals we hierboven hebben aangetoond) en (2) als alle sensoren een van de twee gegevensoverdrachtmethoden accepteren (via lezen en notificatie), kunnen de knoppen op de SensorTag alleen ondervraagd via het meldingsmechanisme. Dankzij deze "functie" van het besturingssysteem Windows 10 (1709) implementeert de blessTags-toepassing, te beginnen met versie 9.7.8.0, ook de leesmethode voor data-acquisitie.

Er doet zich een probleem voor met de CC2650STK SensorTag met firmwareversie 1.20. Als het proces van koppelen en het lezen van gegevens van de Generic Access-service heel goed werkt, is het leesproces van Device Information-services niet mogelijk. Bovendien werkt het lezen van de sensoren (van deze SensorTag met deze firmwareversie) niet via een van de twee mogelijke mechanismen (uitlezen of notificatie).

2. Thunderboard Reageren:

In dezelfde modus als in Windows 10 Creators Update, verschijnt en verdwijnt de SensorTag wanneer we een nieuw Bluetooth-apparaat willen toevoegen. Hetzelfde gedrag kan worden gemarkeerd in het actiecentrum op de snelle actieknop van Bluetooth waar "Not connected" en "Thunderboard React" herhaaldelijk worden weergegeven (zie in de volgende film dit proces vanaf de tijdindex 5,14 s). Meteen kunnen we concluderen dat Thunderboard React schuldig is, voornamelijk vanwege een gebrekkige implementatie van het advertentiemechanisme door technici van Silicon Labs. Maar als we op internet zoeken, zullen we merken dat andere gebruikers hetzelfde probleem hebben gemeld bij andere soorten BLE-apparaten, na installatie van de Fall Creators Update – bekijk bijvoorbeeld deze film op YouTube.

Na het koppelen van de SensorTag kan de blessTags-toepassing het Thunderboard React-apparaat niet vinden. Dus op dit moment werkt niets: Generic Access en de Device Information-services of data-acquisitie van de sensoren die zijn ingebed in Thunderboard React SensorTag.

3. Thunderboard-gevoel:

De te gedragen modus is vergelijkbaar met die van Thunderboard React. Dit Bluetooth-apparaat wordt herhaaldelijk weergegeven en verdwijnt. Wanneer het koppelingsproces is geslaagd, is het mogelijk om gegevens van Generic Access Service te nemen. Maar vanaf dit punt werkt niets meer.

Als conclusie, tot nu toe op Windows 10 Fall Creators Update (1709, build 16229.19) werken alleen de SensorTags geproduceerd door TI (CC2650STK en CC2541DK). Meer nog, ze werken alleen in de leesmodus. Maar aandacht! Alleen CC2650STK-firmwareversie 1.40 werkt in deze modus. Helaas heb je bij aankoop van een CC2650STK een zeer grote kans om een toestel met firmware revisie 1.20 te pakken. Om dus met zo'n type SensorTag te kunnen communiceren is een upgrade nodig naar minimaal de firmwareversie 1.40.

In verband met deze stap presenteer ik een film die al deze uitspraken bewijst die hierboven zijn gemaakt voor Windows 10 Fall Creators Update.

Sinds de eerste release van Windows 10 Fall Creators Update (build 16229.19), op 17 oktober 2017, zijn er geen verbeteringen of foutcorrecties geweest met betrekking tot Bluetooth LE tot KB4054517 (uitgebracht op 12 december 2017). In KB4054517 (OS Build 16299.125) is er een belangrijke wijziging op Bluetooth LE (zie hier): "Adressen probleem met gepersonaliseerde Bluetooth-apparaten die geen bonding ondersteunen". Aangezien dit bericht erg cryptisch is, heb ik besloten om al mijn analyses tot nu toe te hervatten en te kijken of er verbeteringen zijn in vergelijking met de eerste release van Windows 10 Fall Creators Update (build 16229.19). … en een kleine verrassing, ik kan nu het volgende krijgen: (1) gegevens van Thunderboard Sense (van de sensoren die zijn ingebed in de SensorTag, maar alleen via het leesmechanisme) en (2) alle informatie van Generic Access en Device Information-services. Er zijn geen andere verbeteringen.

Stap 5: Windows 8

Als eerste Microsoft-besturingssysteem met BLE-ondersteuning is de implementatie bevredigend, maar het is verre van uitstekend. De enige apparaten die met dit besturingssysteem werken zijn CC2650STK en CC2541DK.

Door de acquisitietijd in te stellen op 150 [ms], kunnen we voor de CC2650STK de gegevens (van alle ingebouwde sensoren), die voldoen aan de bemonsteringsfrequentie van 150 [ms], zonder problemen via het meldingsmechanisme krijgen. Helaas kunnen we met behulp van het CCC2650STK-leesmechanisme gegevens krijgen (van alle sensoren) met een periode van 2 seconden.

De situatie wordt erger als we het hebben over CC2541DK. Via het meldingsmechanisme worden de gegevens verkregen met een periode van 0,4 … 0,6 seconden. Tijdens het gebruik van het uitleesmechanisme kunnen we de gegevens ophalen met een fluctuerende periode van 2,8 … 3 seconden. De voorwaarden zijn hetzelfde: acquisitieperiode 150 [ms] van alle sensoren die zijn ingebed in de CC2541DK SensorTag.

Stap 6: Windows 7

Het Microsoft-bedrijf heeft ondersteuning toegevoegd voor de Bluetooth Low Energy (BLE) -stack, te beginnen met het Windows 8-besturingssysteem. Ze hebben een API geleverd waarmee applicaties toegang hebben tot BLE-apparaten.

Maar Microsoft heeft de BLE API's niet overgezet naar Windows 7. De ingebouwde stack van Windows 7 ondersteunt alleen Bluetooth-versie 2.1/3.0, er is geen ondersteuning voor BLE (4.0, 4.1 of 4.2). Dus vanuit het oogpunt van een ontwikkelaar is het onmogelijk om in Windows 7 te communiceren met een BLE-apparaat dat de Windows 7-stack gebruikt.

Het TI-bedrijf heeft een programma genaamd BLE Device Monitor dat in staat is: (1) te draaien op Windows 7 en (2) te communiceren met een SensorTag. Maar u moet hiervoor een speciale USB-dongle gebruiken (bijvoorbeeld CC2540 Bluetooth Low Energy USB). Als de broncode voor de USB-dongle gratis is, is de broncode voor de BLE Device Monitor niet beschikbaar - deze is alleen voor intern gebruik van het TI-bedrijf.

Stap 7: Conclusies

conclusies
conclusies

De Windows 10-jubileumupdate (versie 1607) is de beste Windows-versie die ooit door Microsoft is gemaakt vanuit het oogpunt van Bluetooth Low Energy (BLE) -apparaten - SensorTags in ons geval. Dit is uiteraard ook te wijten aan het aanzienlijke aantal verbeteringen dat plaatsvond op Bluetooth LE-niveau in de volgende OS-builds (zie voor meer info: https://support.microsoft.com/en-us/help/4000825): 14393.51, 14393.105, 14393.189, 14393.222, 14393.321, 14393.351, 14393.726 en 14393.1083.

De blessTags (BLE SensorTags) applicatie kan worden gedownload van de Windows Store Apps: https://www.microsoft.com/store/apps/9p054xsjjr1n. Voor meer informatie, demo, praktische toepassingen, voorbeelden etc. kunt u terecht op de volgende blog:

Als we alle bovenstaande resultaten synthetiseren, krijgen we de tabel die bij deze stap hoort.

Aanbevolen: