Cuprins:

Analiza sistemului Windows Bluetooth - o abordare SensorTag: 7 pași (cu imagini)
Analiza sistemului Windows Bluetooth - o abordare SensorTag: 7 pași (cu imagini)

Video: Analiza sistemului Windows Bluetooth - o abordare SensorTag: 7 pași (cu imagini)

Video: Analiza sistemului Windows Bluetooth - o abordare SensorTag: 7 pași (cu imagini)
Video: Cum se da Windows 10 in limba romana 2020 2024, Iulie
Anonim
Analiza sistemului Windows Bluetooth - o abordare SensorTag
Analiza sistemului Windows Bluetooth - o abordare SensorTag

În cele ce urmează, voi face o analiză a sistemului de operare Windows (OS) din punctul de vedere al comunicării cu dispozitivele Bluetooth Low Energy - în cazul nostru cu diferite tipuri de senzori: Thunderboard React, Thunderboard Sense (ambele produse de Silicon Labs) Company), CC2650STK și CC2541DK (ambele dezvoltate de Texas Instruments Company).

Pasul 1: Analiza sistemului Windows Bluetooth - o abordare SensorTag

Analiza sistemului Windows Bluetooth - o abordare SensorTag
Analiza sistemului Windows Bluetooth - o abordare SensorTag

În cele ce urmează, voi face o analiză a sistemului de operare Windows (OS) din punctul de vedere al comunicării cu dispozitivele Bluetooth Low Energy - în cazul nostru cu diferite tipuri de senzori: Thunderboard React, Thunderboard Sense (ambele produse de Silicon Labs) Company), CC2650STK și CC2541DK (ambele dezvoltate de Texas Instruments Company).

Ceea ce urmează, voi analiza Windows 7, Windows 8.1 și următoarele versiuni de Windows 10:

· Actualizare aniversară (lansată la 2 august 2016; sfârșitul asistenței: provizoriu martie 2018), · Actualizarea creatorilor (lansată la 5 aprilie 2017; sfârșitul asistenței: provizoriu septembrie 2018) și

· Actualizare Fall Creators (lansată la 17 octombrie 2017; sfârșitul asistenței: provizoriu martie 2019).

Analiza se va face din următoarele puncte de vedere:

1. Capacitatea sistemului de operare (SO) de a se asocia cu un SensorTag;

2. Capacitatea de a obține date de acces generic (acesta este un serviciu obligatoriu);

3. Capacitatea de a obține informații despre dispozitiv (acest serviciu expune informații despre producător și / sau furnizor legate de un anumit SensorTag);

4. Capacitatea de a obține datele SensorTag, utilizând abordarea de citire și

5. Capacitatea de a obține datele SensorTag, utilizând abordarea de notificare.

Toate testele au fost efectuate folosind versiunea 9.7.8.0 a aplicației blessTags. Aplicația blessTags a fost construită având ca suport Windows SDK - Bluetoothapis. Au fost utilizate funcții precum BluetoothGATTGetCharacteristicValue, BluetoothGATTGetDescriptorValue, BluetoothGATTGetServices sau BluetoothGATTSetCharacteristicValue.

Această aplicație, aplicația blessTags (BLE SensorTags), poate fi descărcată din aplicațiile Windows Store: https://www.microsoft.com/store/apps/9p054xsjjr1n. Pentru mai multe informații, demo, aplicații practice, exemple etc., vă rugăm să vizitați următorul blog:

Pasul 2: Windows 10 - Actualizare aniversară - Versiunea 1607

Image
Image

Această versiune a sistemului de operare Windows 10 este cea mai bună, din punctul de vedere al dispozitivelor Bluetooth Low Energy. Se poate împerechea fără nicio problemă cu toate SensorTags (indiferent de versiunea software care rulează pe ele), cu care aplicația blessTags știe cum să funcționeze (CC2650STK, Thunderboard React, Thunderboard Sense și CC2541DK) și toate informațiile din serviciile Bluetooth Obțineți generice Accesarea și obținerea informațiilor despre dispozitiv se obține fără nicio problemă.

Analizând viteza de achiziție a datelor (pentru dispozitivele CC2650STK și CC2541DK) utilizând mecanismul de notificare și citire a transferului de date, putem observa următoarele:

1. prin mecanismul de notificare, putem obține date de la toți senzorii (opt) de la 150 [ms] la 150 [ms] fără probleme;

2. în schimb, când stabilim timpul de achiziție la 150 [ms] și folosim mecanismul de citire a datelor - în cea mai fericită situație, obținem 713 [ms] și, în cel mai rău caz, obținem 840 [ms].

Dacă vom analiza Thunderboard React și Thunderboard Sense, vom obține rezultate echivalente - acestea funcționează fără nicio problemă în mediul Windows 10 Anniversary Update.

De fapt, toate filmele de prezentare ale funcțiilor principale ale aplicației blessTags și ale diferitelor caracteristici specifice (cum ar fi gadgeturile) au fost realizate cu sprijinul actualizării aniversare Windows 10.

Pasul 3: Windows 10 - Actualizarea creatorilor - Versiunea 1703

Windows 7
Windows 7

Versiunea Windows Creators Update este cel mai prost sistem de operare (SO) din punctul de vedere al dispozitivelor Bluetooth cu consum redus de energie.

Aproape nimic nu funcționează. Microsoft a recunoscut că Actualizarea creatorilor a rupt Bluetooth Low Energy (referință 1 și referință 2). Compania Microsoft a promis o remediere rapidă cât mai curând posibil. Dar de atunci au lansat o versiune actualizată a Windows (Fall Creators Update) și nu s-a întâmplat nimic - până acum în versiunea Windows 10 Creators Update, Bluetooth Low Energy încă nu funcționează.

Există un număr mare de postări pe forumuri în care diferite persoane se plâng de diferitele tipuri de dispozitive Bluetooth care nu mai funcționează după actualizarea la Creators Update (vezi aici, vezi aici, vezi aici, vezi aici etc.).

Rezultatele, pe care le voi arăta imediat, au fost obținute după mai multe teste: (1) pe un computer desktop care avea un dongle USB CSR4.0 Bluetooth (CSR8510 A10) și (2) pe un laptop Dell Inspiron P66F cu un dispozitiv Bluetooth LE integrat. Știu că există multe soluții pe internet pentru a remedia mai multe tipuri de probleme Bluetooth. Am încercat aproape toate, dar nimic nu funcționa (actualizați driverul Bluetooth, rulați instrumentul de depanare Windows, dezactivați și activați serviciile conexe Bluetooth etc.)

Deci, să prezentăm rezultatele:

1. CC2650STK:

A. Pe versiunea de firmware 1.40 asocierea dispozitivului SensorTag cu Windows este imposibilă (am repetat procesul de mai multe ori, de cel puțin 8-10 ori, am pornit și oprit Bluetooth și am încercat din nou - rezultatele au fost aceleași: a fost imposibil să adăugați acest dispozitiv).

b. Pe versiunea de firmware 1.20, PC-ul a descoperit SensorTag și am reușit să asociez SensorTag cu computerul.

De asemenea, am putut obține date de acces generic. Dar, la serviciul Obțineți informații despre dispozitiv, din 9 caracteristici doar 6 au răspuns și numai de la acestea a fost posibil să obțineți informații.

În schimb, nu pot configura dispozitivul și nu pot extrage date de la senzori, fie prin mecanismul de citire, fie prin notificări.

2. Thunderboard React:

Sistemul de operare are un comportament ciudat atunci când este inițiat procesul de asociere. În lista dispozitivelor descoperite, SensorTag apare și dispare (cu o perioadă de 1… 1,5 s). În cele din urmă, atunci când un mouse dă clic pe SensorTag, procesul de asociere se realizează și LED-urile de pe Thunderboard React (cele albastre și cele verzi) au o perioadă în care clipesc consecutiv într-un mod atipic.

Citirea caracteristicilor Serviciului de acces generic (0x1800) se poate face fără nicio problemă, dar citirea de la Device Information Service (0x180A) eșuează pe toate cele patru caracteristici existente.

Setarea senzorilor (încorporați pe SensorTag), modul de obținere a datelor (pe Thunderboard React aveți doar următoarea posibilitate: (1) pentru a obține date prin notificarea de la 3 senzori și (2) pentru a citi date de la ceilalți patru senzori) este imposibil. Prin urmare, imposibilitatea de a obține datele reale de la senzori rezultă direct de aici.

3. Thunderboard Sense:

Același proces pulsatoriu, observat pentru Thunderboard React, s-a constatat că există și pentru Thunderboard Sense - atunci când vrem să realizăm procesul de împerechere. Dar aici lucrurile sunt și mai rele: după asociere, programul blessTag nu poate detecta SensorTag. Deci, nici un dispozitiv activ - nicio entitate de unde aplicația blessTags să dobândească datele.

4. CC2541DK:

Comportamentul este identic cu comportamentul CC2650STK (versiunea de firmware 1.40). La fiecare încercare de conectare, veți primi următorul mesaj de eroare: „Încercați să vă conectați din nou dispozitivul”.

Deci, în concluzie, în cadrul acestei versiuni de Windows 10 (Creators Update), este imposibil să comunicați cu oricare dintre cele patru tipuri de SensorTags menționate mai sus. În consecință, menționez (încă o dată) că aici am folosit aceeași versiune de software pe care am folosit-o și în toate testele făcute pe Windows 10 Anniversary Update.

Pasul 4: Windows 10 - Actualizare Fall Creators - Versiunea 1709

Image
Image

Această versiune de Windows 10 (1709 - OS Build 16299.19) este un mare pas înainte, în comparație cu Windows 10 Creators Update (erau pe BLE, aproape nimic nu funcționează), dar mai are un drum lung până la nivelul de Windows 10 Anniversary Update (1607) sistem de operare

Dar să vedem de ce am făcut această afirmație:

1. CC2650STK (versiunea firmware 1.40) și CC2541DK:

Voi trata aceste două dispozitive aici simultan, deoarece comportamentul lor legat de sistemul de operare Windows 10 (1709) este similar.

Operațiunea de asociere și citirea, de la serviciile Generic Access și Device Information, funcționează perfect fără niciun fel de probleme.

Problemele apar doar atunci când vrem să citim informații de la senzori. Mecanismul de transfer de date prin notificări nu funcționează deloc.

Singura modalitate de a obține date de la senzori, încorporate în SensorTag, este prin intermediul mecanismului de citire directă de pe dispozitiv. Această abordare are două probleme: (1) viteza mai mică de transfer de date (așa cum am arătat mai sus) și (2) dacă toți senzorii acceptă una dintre cele două metode de transfer de date (prin citire și notificare), butoanele de pe senzorul de etichetă pot fi interogat numai prin mecanismul de notificare. Datorită acestei „caracteristici” a sistemului de operare Windows 10 (1709), aplicația blessTags implementează, începând cu versiunea 9.7.8.0, metoda de citire și pentru achiziționarea datelor.

Apare o problemă cu CC2650STK SensorTag care are versiunea de firmware 1.20. Dacă procesul de asociere și citire a datelor din serviciul de acces generic funcționează foarte bine, procesul de citire din serviciile de informații despre dispozitiv nu este posibil. Mai mult, citirea senzorilor (din acest SensorTag cu această versiune de firmware) nu funcționează prin nici unul dintre cele două mecanisme posibile (citire sau notificare).

2. Thunderboard React:

În același mod ca în Windows 10 Creators Update, SensorTag apare și dispare atunci când dorim să adăugăm un nou dispozitiv Bluetooth. Același comportament poate fi evidențiat în centrul de acțiune de pe butonul de acțiune rapidă al Bluetooth-ului, în cazul în care „Nu este conectat” și „Thunderboard React” sunt afișate în mod repetat (vă rugăm să vedeți în filmul următor acest proces începând de la indexul de timp 5.14 s). Imediat putem concluziona că Thunderboard React este vinovat, în principal datorită unei implementări defectuoase a mecanismului de publicitate de către inginerii Silicon Labs. Dar, căutând pe internet, vom observa că alți utilizatori au raportat aceeași problemă altor tipuri de dispozitive BLE, după instalarea Fall Creators Actualizare - de exemplu, vizionați acest film pe YouTube.

După asocierea SensorTag, aplicația blessTags nu poate găsi dispozitivul Thunderboard React. Deci, în acest moment nimic nu funcționează: accesul generic și serviciile de informații despre dispozitiv sau achiziția de date de la senzorii încorporați pe Thunderboard React SensorTag.

3. Thunderboard Sense:

Modul de comportament este similar cu cel al Thunderboard React. Acest dispozitiv Bluetooth este afișat și dispare în mod repetat. Când procesul de împerechere a reușit, este posibil să preluați date de la serviciul de acces generic. Dar din acest punct, nimic nu mai funcționează.

Ca o concluzie, acum în Windows 10 Fall Creators Update (1709, versiunea 16229.19) funcționează numai etichetele senzorului produse de TI (CC2650STK și CC2541DK). Mai mult, funcționează numai în modul de citire. Dar atenție! Numai versiunea de firmware CC2650STK 1.40 va funcționa în acest mod. Din păcate, atunci când cumpărați un CC2650STK, aveți șanse foarte mari să luați un dispozitiv cu revizuirea firmware-ului 1.20. Deci, pentru a putea comunica cu un astfel de tip de SensorTag o actualizare este necesar cel puțin la versiunea de firmware 1.40.

Asociat cu acest pas, vă prezint un film care dovedește toate aceste afirmații făcute mai sus pentru Windows 10 Fall Creators Update.

De la prima versiune a Windows 10 Fall Creators Update (versiunea 16229.19), pe 17 octombrie 2017, nu au existat îmbunătățiri sau corecții de erori legate de Bluetooth LE până la KB4054517 (lansat pe 12 decembrie 2017). În KB4054517 (OS Build 16299.125) există o modificare cheie pe Bluetooth LE (vezi aici): „Se adresează problemelor cu dispozitive Bluetooth personalizate care nu acceptă legarea”. Deoarece acest mesaj este foarte criptic, am decis să reiau toate analizele mele făcute până acum și să văd dacă există îmbunătățiri comparativ cu prima versiune a Windows 10 Fall Creators Update (versiunea 16229.19). … și o mică surpriză, acum pot obține: (1) date de la Thunderboard Sense (de la senzorii încorporați pe SensorTag, dar numai prin intermediul mecanismului de citire) și (2) toate informațiile de la serviciile de acces generic și informații despre dispozitiv. Nu există alte îmbunătățiri.

Pasul 5: Windows 8

Ca prim sistem de operare Microsoft cu suport BLE, implementarea este satisfăcătoare, dar este departe de a fi una excelentă. Singurele dispozitive care funcționează cu acest sistem de operare sunt CC2650STK și CC2541DK.

Setând timpul de achiziție la 150 [ms], pentru CC2650STK, putem obține datele (de la toți senzorii încorporați), respectând rata de eșantionare de 150 [ms], prin mecanismul de notificare fără probleme. Din păcate, folosind mecanismul de citire CCC2650STK, putem obține date (de la toți senzorii) cu o perioadă de 2 secunde.

Situația se înrăutățește când vorbim despre CC2541DK. Prin mecanismul de notificare, datele sunt obținute cu o perioadă de 0,4 … 0,6 secunde. Folosind mecanismul de citire putem prelua datele cu o perioadă fluctuantă de 2,8 … 3 secunde. Condițiile sunt aceleași: perioada de achiziție 150 [ms] de la toți senzorii încorporați pe CC2541DK SensorTag.

Pasul 6: Windows 7

Compania Microsoft a adăugat suport pentru stiva Bluetooth Low Energy (BLE) începând cu sistemul de operare Windows 8. Au furnizat un API care permite aplicațiilor să acceseze dispozitivele BLE.

Dar Microsoft nu a portat API-urile BLE în Windows 7. Stiva încorporată din Windows 7 acceptă doar versiunea Bluetooth 2.1 / 3.0, nu există suport pentru BLE (4.0, 4.1 sau 4.2). Deci, din punctul de vedere al unui dezvoltator, este imposibil să comunicați, în Windows 7, cu un dispozitiv BLE care utilizează stiva Windows 7.

Compania TI are un program numit BLE Device Monitor care este capabil: (1) să ruleze pe Windows 7 și (2) să comunice cu un SensorTag. Dar trebuie să utilizați pentru acestea un dongle USB special (de exemplu, CC2540 Bluetooth Low Energy USB). Dacă codul sursă pentru dongle USB este gratuit, codul sursă pentru monitorul dispozitivului BLE nu este disponibil - este doar pentru utilizarea internă a companiei TI.

Pasul 7: Concluzii

Concluzii
Concluzii

Actualizarea Windows 10 Anniversary (versiunea 1607) este cea mai bună versiune Windows realizată vreodată de Microsoft din punctul de vedere al dispozitivelor Bluetooth Low Energy (BLE) - SensorTags în cazul nostru. Evident, acest lucru se datorează și numărului considerabil de îmbunătățiri care au avut loc la nivelul Bluetooth LE în următoarele versiuni de sistem de operare (consultați mai multe informații: https://support.microsoft.com/en-us/help/4000825): 14393.51, 14393.105, 14393.189, 14393.222, 14393.321, 14393.351, 14393.726 și 14393.1083.

Aplicația blessTags (BLE SensorTags) poate fi descărcată din aplicațiile Windows Store: https://www.microsoft.com/store/apps/9p054xsjjr1n. Pentru mai multe informații, demo, aplicații practice, exemple etc., vă rugăm să vizitați următorul blog:

Sintetizând toate rezultatele de mai sus vom obține tabelul asociat cu acest pas.

Recomandat: