Spisu treści:

Analiza systemu Windows Bluetooth - podejście SensorTag: 7 kroków (ze zdjęciami)
Analiza systemu Windows Bluetooth - podejście SensorTag: 7 kroków (ze zdjęciami)

Wideo: Analiza systemu Windows Bluetooth - podejście SensorTag: 7 kroków (ze zdjęciami)

Wideo: Analiza systemu Windows Bluetooth - podejście SensorTag: 7 kroków (ze zdjęciami)
Wideo: Smart sensors IoT - zabawa z Delphi 2024, Lipiec
Anonim
Analiza systemu Windows Bluetooth - podejście SensorTag
Analiza systemu Windows Bluetooth - podejście SensorTag

Poniżej dokonam analizy systemu operacyjnego (OS) Windows pod kątem komunikacji z urządzeniami Bluetooth Low Energy – w naszym przypadku z różnymi typami SensorTagów: Thunderboard React, Thunderboard Sense (oba produkowane przez Silicon Labs Company), CC2650STK i CC2541DK (oba opracowane przez Texas Instruments Company).

Krok 1: Analiza systemu Windows Bluetooth - podejście SensorTag

Analiza systemu Windows Bluetooth - podejście SensorTag
Analiza systemu Windows Bluetooth - podejście SensorTag

Poniżej dokonam analizy systemu operacyjnego (OS) Windows pod kątem komunikacji z urządzeniami Bluetooth Low Energy – w naszym przypadku z różnymi typami SensorTagów: Thunderboard React, Thunderboard Sense (oba produkowane przez Silicon Labs Company), CC2650STK i CC2541DK (oba opracowane przez Texas Instruments Company).

Poniżej przeanalizuję Windows 7, Windows 8.1 oraz następujące wersje Windows 10:

· Aktualizacja rocznicowa (wydana 2 sierpnia 2016; koniec wsparcia: wstępnie marzec 2018), · Aktualizacja dla twórców (wydana 5 kwietnia 2017; koniec wsparcia: wstępnie wrzesień 2018) oraz

· Jesienna aktualizacja twórców (wydana 17 października 2017 r.; koniec wsparcia: wstępnie marzec 2019 r.).

Analiza zostanie przeprowadzona z następujących punktów widzenia:

1. Zdolność systemu operacyjnego (OS) do parowania z SensorTag;

2. Możliwość uzyskania danych Generic Access (jest to usługa obowiązkowa);

3. Możliwość uzyskania informacji o urządzeniu (ta usługa ujawnia informacje o producencie i/lub dostawcy związane z określonym znacznikiem SensorTag);

4. Możliwość uzyskania danych z SensorTag przy użyciu metody czytania i

5. Możliwość uzyskania danych z SensorTag przy użyciu metody powiadamiania.

Wszystkie testy zostały wykonane przy użyciu wersji 9.7.8.0 aplikacji blessTags. Aplikacja blessTags została zbudowana mając jako wsparcie Windows SDK – Bluetoothapis. Wykorzystano funkcje takie jak BluetoothGATTGetCharacteristicValue, BluetoothGATTGetDescriptorValue, BluetoothGATTGetServices lub BluetoothGATTSetCharacteristicValue.

Tę aplikację, aplikację blessTags (BLE SensorTags), można pobrać ze sklepu Windows Store Apps: https://www.microsoft.com/store/apps/9p054xsjjr1n. Więcej informacji, demo, praktyczne zastosowania, przykłady itp. można znaleźć na następującym blogu:

Krok 2: Windows 10 - rocznicowa aktualizacja - wersja 1607

Image
Image

Ta wersja systemu operacyjnego Windows 10 jest najlepsza z punktu widzenia urządzeń Bluetooth Low Energy. Może bez problemu sparować się ze wszystkimi SensorTags (niezależnie od uruchomionej na nich wersji oprogramowania), z którymi aplikacja blessTags umie pracować (CC2650STK, Thunderboard React, Thunderboard Sense i CC2541DK), a wszystkie informacje z usług Bluetooth Get Generic Uzyskaj dostęp i uzyskaj informacje o urządzeniu bez żadnego problemu.

Analizując szybkość akwizycji danych (dla urządzeń CC2650STK i CC2541DK) za pomocą mechanizmu powiadamiania i odczytu transferu danych możemy zaobserwować:

1. poprzez mechanizm powiadomień możemy bez problemu uzyskać dane ze wszystkich czujników (osiem) od 150 [ms] do 150 [ms];

2. zamiast tego, gdy ustawimy czas akwizycji na 150 [ms] i skorzystamy z mechanizmu odczytu danych - w najszczęśliwszej sytuacji otrzymujemy 713 [ms] a w najgorszym 840 [ms].

Jeśli przeanalizujemy Thunderboard React i Thunderboard Sense, uzyskamy równoważne wyniki – działają bez problemu w środowisku Windows 10 Anniversary Update.

W rzeczywistości wszystkie filmy prezentacyjne głównych funkcji aplikacji blessTags i różnych specyficznych funkcji (takich jak gadżety) zostały nakręcone przy wsparciu rocznicowej aktualizacji systemu Windows 10.

Krok 3: Windows 10 - aktualizacja twórców - wersja 1703

System Windows 7
System Windows 7

Wersja Windows 10 Creators Update to najgorszy system operacyjny (OS) z punktu widzenia urządzeń Bluetooth Low Energy.

Prawie nic nie działa. Microsoft przyznał, że Aktualizacja twórców zepsuła technologię Bluetooth Low Energy (odniesienie 1 i odniesienie 2). Firma Microsoft obiecała poprawkę tak szybko, jak to możliwe. Ale od tego czasu wydali zaktualizowaną wersję systemu Windows (Fall Creators Update) i nic się nie wydarzyło – do tej pory w wersji Windows 10 Creators Update Bluetooth Low Energy nadal nie działa.

Istnieje wiele postów na forach, na których różne osoby skarżą się na różne typy urządzeń Bluetooth, które przestają działać po aktualizacji do Aktualizacji twórców (zobacz tutaj, zobacz tutaj, zobacz tutaj, zobacz tutaj itp.).

Wyniki, które zaraz pokażę, zostały uzyskane po wielu testach: (1) na komputerze stacjonarnym z kluczem USB Bluetooth CSR4.0 (CSR8510 A10) oraz (2) na laptopie Dell Inspiron P66F z zintegrowane urządzenie Bluetooth LE. Wiem, że w Internecie jest wiele rozwiązań, które pozwalają naprawić kilka rodzajów problemów z Bluetooth. Próbowałem prawie wszystkich, ale nic nie działało (zaktualizuj sterownik Bluetooth, uruchom narzędzie do rozwiązywania problemów z systemem Windows, wyłącz i włącz usługi związane z Bluetooth itp.)

Przedstawmy więc wyniki:

1. CC2650STK:

a. Na firmware w wersji 1.40 sparowanie urządzenia SensorTag z Windowsem jest niemożliwe (powtarzałem proces kilka razy, co najmniej 8-10 razy, włączałem i wyłączałem Bluetooth i spróbowałem ponownie – wyniki były takie same: nie dało się dodaj to urządzenie).

b. W wersji oprogramowania 1.20 komputer wykrył SensorTag i udało mi się sparować SensorTag z komputerem.

Udało mi się również uzyskać dane Generic Access. Ale w usłudze Get Device Information z 9 cech odpowiedziało tylko 6 i tylko z nich można było uzyskać informacje.

Zamiast tego nie mogę skonfigurować urządzenia i nie mogę pobrać danych z czujników ani przez mechanizm odczytu, ani przez powiadomienia.

2. Reakcja Thunderboard:

System operacyjny zachowuje się dziwnie po zainicjowaniu procesu parowania. Na liście wykrytych urządzeń pojawia się i znika SensorTag (z okresem 1…1,5 s). Wreszcie, gdy kliknięcie myszą na SensorTag zakończy się powodzeniem, proces parowania zostaje zakończony, a diody LED na Thunderboard React (niebieskie i zielone) mają okres, w którym migają kolejno w nietypowym trybie.

Odczyt charakterystyk usługi Generic Access Service (0x1800) można wykonać bez żadnego problemu, ale odczyt z usługi informacji o urządzeniu (0x180A) kończy się niepowodzeniem dla wszystkich czterech istniejących charakterystyk.

Ustawienie czujników (osadzone na SensorTag), trybu pozyskiwania danych (w Thunderboard React masz tylko następujące możliwości: (1) pobranie danych poprzez powiadomienie z 3 czujników oraz (2) odczytanie danych z pozostałych czterech czujników) jest niemożliwe. Stąd bezpośrednio wynika niemożność uzyskania rzeczywistych danych z czujników.

3. Wyczucie Thunderboardu:

Stwierdzono, że ten sam pulsujący proces, obserwowany w przypadku Thunderboard React, występuje również w przypadku Thunderboard Sense – gdy chcemy osiągnąć proces parowania. Ale tutaj jest jeszcze gorzej: po sparowaniu program blessTag nie może wykryć SensorTag. Tak więc nie ma aktywnego urządzenia – nie ma podmiotu, z którego aplikacja blessTags pozyskuje dane.

4. CC2541DK:

Zachowanie jest identyczne z zachowaniem CC2650STK (wersja oprogramowania układowego 1.40). Przy każdej próbie połączenia otrzymasz następujący komunikat o błędzie: „Spróbuj ponownie podłączyć urządzenie”.

Podsumowując, w tej wersji systemu Windows 10 (aktualizacja twórców) nie można komunikować się z żadnym z czterech typów znaczników SensorTag wskazanych powyżej. W związku z tym wspominam (jeszcze raz), że tutaj użyłem tej samej wersji oprogramowania, której używałem również we wszystkich testach wykonanych na Windows 10 Anniversary Update.

Krok 4: Windows 10 – jesienna aktualizacja twórców – wersja 1709

Image
Image

Ta wersja Windows 10 (1709 – OS Build 16299.19) jest ogromnym krokiem naprzód w porównaniu z Windows 10 Creators Update (na BLE prawie nic nie działa), ale wciąż ma długą drogę, aby osiągnąć poziom Windows 10 Anniversary Update (1607) system operacyjny

Zobaczmy jednak, dlaczego złożyłem to oświadczenie:

1. CC2650STK (wersja oprogramowania 1.40) i CC2541DK:

Potraktuję tutaj te dwa urządzenia jednocześnie, ponieważ ich zachowanie związane z systemem operacyjnym Windows 10 (1709) jest podobne.

Operacja parowania i odczyt z usług Generic Access i Device Information działają idealnie bez żadnych problemów.

Problemy pojawiają się tylko wtedy, gdy chcemy odczytać informacje z czujników. Mechanizm przesyłania danych poprzez powiadomienia w ogóle nie działa.

Jedynym sposobem na uzyskanie danych z czujników wbudowanych w SensorTag jest mechanizm bezpośredniego odczytu z urządzenia. Takie podejście ma dwa problemy: (1) niższa prędkość przesyłania danych (jak pokazaliśmy powyżej) i (2) jeśli wszystkie czujniki akceptują jedną z dwóch metod przesyłania danych (poprzez odczyt i powiadomienie), przyciski na SensorTag mogą być przesłuchiwany tylko poprzez mechanizm powiadamiania. Dzięki tej „funkcji” systemu operacyjnego Windows 10 (1709) aplikacja blessTags od wersji 9.7.8.0 implementuje również metodę odczytu do akwizycji danych.

Pojawia się problem z CC2650STK SensorTag z oprogramowaniem układowym w wersji 1.20. Jeżeli proces parowania i odczytu danych z usługi Generic Access przebiega bardzo dobrze, to proces odczytu z usług Device Information nie jest możliwy. Co więcej, odczyt czujników (z tego SensorTag z tą wersją oprogramowania) nie działa poprzez jeden z dwóch możliwych mechanizmów (odczyt lub powiadomienie).

2. Reakcja Thunderboard:

W tym samym trybie, co w Windows 10 Creators Update, SensorTag pojawia się i znika, gdy chcemy dodać nowe urządzenie Bluetooth. To samo zachowanie można podświetlić w centrum akcji na przycisku szybkiego działania Bluetooth, gdzie „Nie połączono” i „Thunderboard React” są wyświetlane wielokrotnie (proszę zobaczyć na poniższym filmie ten proces od indeksu czasu 5,14 s). że Thunderboard React jest winny, głównie ze względu na wadliwą implementację mechanizmu reklamowego przez inżynierów Silicon Labs, ale przeszukując internet zauważymy, że inni użytkownicy zgłaszali ten sam problem innym typom urządzeń BLE, po zainstalowaniu Fall Creators Aktualizacja – np. obejrzyj ten film na YouTube.

Po sparowaniu SensorTag aplikacja blessTags nie może znaleźć urządzenia Thunderboard React. W tym momencie nic nie działa: usługi Generic Access i Device Information lub akwizycja danych z czujników osadzonych w Thunderboard React SensorTag.

3. Wyczucie Thunderboardu:

Tryb zachowania jest podobny do trybu Thunderboard React. To urządzenie Bluetooth jest wielokrotnie wyświetlane i znika. Gdy proces parowania się powiedzie, możliwe jest pobranie danych z usługi Generic Access Service. Ale od tego momentu nic już nie działa.

Podsumowując, teraz w Windows 10 Fall Creators Update (1709, kompilacja 16229.19) działają tylko SensorTags wyprodukowane przez TI (CC2650STK i CC2541DK). Co więcej, działają tylko w trybie czytania. Ale uwaga! W tym trybie będzie działać tylko oprogramowanie CC2650STK w wersji 1.40. Niestety kupując CC2650STK masz bardzo dużą szansę na zakup urządzenia z oprogramowaniem w wersji 1.20. Tak więc, aby móc komunikować się z tego typu tagami SensorTag konieczna jest aktualizacja oprogramowania co najmniej do wersji 1.40.

W związku z tym krokiem przedstawiam film, który udowadnia wszystkie powyższe stwierdzenia dotyczące aktualizacji Windows 10 Fall Creators Update.

Od pierwszego wydania Windows 10 Fall Creators Update (kompilacja 16229.19), 17 października 2017 r., nie wprowadzono żadnych ulepszeń ani poprawek błędów związanych z Bluetooth LE do KB4054517 (wydanego 12 grudnia 2017 r.). W KB4054517 (OS Build 16299.125) jest kluczowa zmiana w Bluetooth LE (patrz tutaj): „Rozwiązuje problem ze spersonalizowanymi urządzeniami Bluetooth, które nie obsługują łączenia”. Ponieważ ta wiadomość jest bardzo tajemnicza, postanowiłem wznowić wszystkie moje dotychczasowe analizy i sprawdzić, czy są jakieś ulepszenia w porównaniu z pierwszym wydaniem Windows 10 Fall Creators Update (kompilacja 16229.19). …i mała niespodzianka, w tej chwili jestem w stanie uzyskać: (1) dane z Thunderboard Sense (z czujników osadzonych w SensorTag ale tylko poprzez mechanizm odczytu) oraz (2) wszystkie informacje z usług Generic Access i Device Information. Nie ma innych ulepszeń.

Krok 5: Windows 8

Jako pierwszy Microsoft OS z obsługą BLE implementacja jest zadowalająca, ale daleko jej do doskonałej. Jedyne urządzenia współpracujące z tym systemem operacyjnym to CC2650STK i CC2541DK.

Ustawiając czas akwizycji na 150 [ms], dla CC2650STK możemy bez problemu pozyskać dane (ze wszystkich wbudowanych czujników), zgodne z częstotliwością próbkowania 150 [ms], poprzez mechanizm powiadomień. Niestety, korzystając z mechanizmu odczytu CCC2650STK, możemy uzyskać dane (ze wszystkich czujników) z okresem 2 sekund.

Sytuacja pogarsza się, gdy mówimy o CC2541DK. Dzięki mechanizmowi powiadomień dane są pozyskiwane z okresem 0,4 … 0,6 sekundy. Korzystając z mechanizmu odczytu, możemy pobierać dane z okresem wahań 2,8…3 sekund. Warunki są takie same: okres akwizycji 150 [ms] ze wszystkich czujników osadzonych na CC2541DK SensorTag.

Krok 6: Windows 7

Firma Microsoft dodała obsługę stosu Bluetooth Low Energy (BLE), począwszy od systemu operacyjnego Windows 8. Dostarczyli API, które umożliwia aplikacjom dostęp do urządzeń BLE.

Ale Microsoft nie przeniósł BLE API do Windows 7. Wbudowany stos Windows 7 obsługuje tylko Bluetooth w wersji 2.1/3.0, nie ma obsługi BLE (4.0, 4.1 lub 4.2). Tak więc z punktu widzenia programisty nie jest możliwe komunikowanie się w Windows 7 z urządzeniem BLE przy użyciu stosu Windows 7.

Firma TI posiada program o nazwie BLE Device Monitor, który może: (1) działać w systemie Windows 7 i (2) komunikować się z SensorTag. Ale musisz użyć do tego specjalnego klucza USB (np. CC2540 Bluetooth Low Energy USB). Jeśli kod źródłowy klucza USB jest wolny, kod źródłowy dla BLE Device Monitor nie jest dostępny – jest tylko do użytku wewnętrznego firmy TI.

Krok 7: Wnioski

Wnioski
Wnioski

Windows 10 Anniversary Update (Version 1607) to najlepsza wersja Windowsa, jaką kiedykolwiek stworzył Microsoft z punktu widzenia urządzeń Bluetooth Low Energy (BLE) – w naszym przypadku SensorTags. Oczywiście wynika to również ze znacznej liczby ulepszeń, które miały miejsce na poziomie Bluetooth LE w następujących kompilacjach systemu operacyjnego (więcej informacji: 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.

Aplikację blessTags (BLE SensorTags) można pobrać z aplikacji Windows Store: https://www.microsoft.com/store/apps/9p054xsjjr1n. Więcej informacji, demo, praktyczne zastosowania, przykłady itp. można znaleźć na następującym blogu:

Syntetyzując wszystkie powyższe wyniki, otrzymamy tabelę powiązaną z tym krokiem.

Zalecana: