Sommario:

Analisi del sistema Bluetooth Windows: un approccio SensorTag: 7 passaggi (con immagini)
Analisi del sistema Bluetooth Windows: un approccio SensorTag: 7 passaggi (con immagini)

Video: Analisi del sistema Bluetooth Windows: un approccio SensorTag: 7 passaggi (con immagini)

Video: Analisi del sistema Bluetooth Windows: un approccio SensorTag: 7 passaggi (con immagini)
Video: Usare Alexa come sistema anti intrusione? con i nuovi sensori della Switchbot si può! 2024, Dicembre
Anonim
Analisi del sistema Bluetooth di Windows: un approccio SensorTag
Analisi del sistema Bluetooth di Windows: un approccio SensorTag

Di seguito farò un'analisi del sistema operativo (OS) Windows dal punto di vista della comunicazione con dispositivi Bluetooth Low Energy – nel nostro caso con diversi tipi di SensorTag: Thunderboard React, Thunderboard Sense (entrambi prodotti da Silicon Labs Company), CC2650STK e CC2541DK (entrambi sviluppati da Texas Instruments Company).

Passaggio 1: analisi del sistema Bluetooth di Windows: un approccio SensorTag

Analisi del sistema Bluetooth di Windows: un approccio SensorTag
Analisi del sistema Bluetooth di Windows: un approccio SensorTag

Di seguito farò un'analisi del sistema operativo Windows (OS) dal punto di vista della comunicazione con dispositivi Bluetooth Low Energy – nel nostro caso con diversi tipi di SensorTag: Thunderboard React, Thunderboard Sense (entrambi prodotti da Silicon Labs Company), CC2650STK e CC2541DK (entrambi sviluppati da Texas Instruments Company).

In quanto segue, analizzerò Windows 7, Windows 8.1 e le seguenti versioni di Windows 10:

· Aggiornamento dell'anniversario (rilasciato il 2 agosto 2016; fine del supporto: provvisoriamente marzo 2018), · Creators Update (rilasciato il 5 aprile 2017; fine del supporto: provvisoriamente settembre 2018) e

· Fall Creators Update (rilasciato il 17 ottobre 2017; fine del supporto: provvisoriamente marzo 2019).

L'analisi sarà condotta dai seguenti punti di vista:

1. La capacità del sistema operativo (OS) di accoppiarsi con un SensorTag;

2. La possibilità di ottenere i dati di Accesso Generico (servizio obbligatorio);

3. La possibilità di ottenere informazioni sul dispositivo (questo servizio espone le informazioni del produttore e/o del fornitore relative a uno specifico SensorTag);

4. La capacità di ottenere i dati del SensorTag, utilizzando l'approccio di lettura e

5. La possibilità di ottenere i dati del SensorTag, utilizzando l'approccio di notifica.

Tutti i test sono stati eseguiti utilizzando la versione 9.7.8.0 dell'applicazione blessTags. L'applicazione blessTags è stata realizzata avendo come supporto Windows SDK – Bluetoothapis. Sono state utilizzate funzioni come BluetoothGATTGetCharacteristicValue, BluetoothGATTGetDescriptorValue, BluetoothGATTGetServices o BluetoothGATTSetCharacteristicValue.

Questa applicazione, l'applicazione blessTags (BLE SensorTags), può essere scaricata dalle app di Windows Store: https://www.microsoft.com/store/apps/9p054xsjjr1n. Per ulteriori informazioni, demo, applicazioni pratiche, esempi ecc., visitare il seguente blog:

Passaggio 2: Windows 10 - Aggiornamento Anniversario - Versione 1607

Image
Image

Questa versione del sistema operativo Windows 10 è la migliore, dal punto di vista dei dispositivi Bluetooth Low Energy. Può accoppiarsi senza problemi con tutti i SensorTag (indipendentemente dalla versione software in esecuzione su di essi), con cui l'applicazione blessTags sa come lavorare (CC2650STK, Thunderboard React, Thunderboard Sense e CC2541DK), e tutte le informazioni dai servizi Bluetooth Get Generic L'accesso e l'acquisizione delle informazioni sul dispositivo vengono acquisiti senza alcun problema.

Analizzando la velocità di acquisizione dati (per dispositivi CC2650STK e CC2541DK) utilizzando il meccanismo di notifica e lettura del trasferimento dati, possiamo osservare quanto segue:

1. attraverso il meccanismo di notifica, possiamo ottenere i dati da tutti i sensori (otto) da 150 [ms] a 150 [ms] senza problemi;

2. invece, quando impostiamo il tempo di acquisizione a 150 [ms] e utilizziamo il meccanismo di lettura dei dati - nella situazione più felice, otteniamo 713 [ms] e nel caso peggiore, otteniamo 840 [ms].

Se analizzeremo Thunderboard React e Thunderboard Sense, otterremo risultati equivalenti: funzionano senza problemi nell'ambiente Windows 10 Anniversary Update.

Infatti, tutti i filmati di presentazione delle funzioni principali dell'applicazione blessTags e delle diverse funzionalità specifiche (come i Gadget) sono stati realizzati con il supporto di Windows 10 Anniversary Update.

Passaggio 3: Windows 10 - Aggiornamento dei creatori - Versione 1703

Windows 7
Windows 7

La versione Creators Update di Windows 10 è il peggior sistema operativo (OS) dal punto di vista dei dispositivi Bluetooth Low Energy.

Non funziona quasi niente. Microsoft ha riconosciuto che il Creators Update ha interrotto Bluetooth Low Energy (riferimento 1 e riferimento 2). La società Microsoft ha promesso un hotfix il prima possibile. Ma da allora hanno rilasciato una versione aggiornata di Windows (Fall Creators Update) e non è successo nulla: fino ad ora all'interno della versione di Windows 10 Creators Update, il Bluetooth Low Energy non funziona ancora.

Ci sono un gran numero di post sui forum in cui persone diverse si lamentano di diversi tipi di dispositivi Bluetooth che smettono di funzionare dopo l'aggiornamento a Creators Update (vedi qui, vedi qui, vedi qui, vedi qui ecc.).

I risultati, che dimostrerò subito, sono stati ottenuti dopo molti test: (1) su un PC desktop che disponeva di un dongle USB Bluetooth CSR4.0 (CSR8510 A10) e (2) su un laptop Dell Inspiron P66F con un dispositivo Bluetooth LE integrato. So che ci sono molte soluzioni su Internet per risolvere diversi tipi di problemi Bluetooth. Ho provato quasi tutto, ma non funzionava nulla (aggiornare il driver Bluetooth, eseguire lo strumento di risoluzione dei problemi di Windows, disabilitare e abilitare i servizi relativi al Bluetooth, ecc.)

Quindi, presentiamo i risultati:

1. CC2650STK:

un. Sulla versione firmware 1.40 non è possibile accoppiare il dispositivo SensorTag con Windows (ho ripetuto più volte la procedura, almeno 8-10 volte, ho acceso e spento il Bluetooth e ho riprovato – i risultati sono stati gli stessi: è stato impossibile aggiungi questo dispositivo).

B. Nella versione firmware 1.20, il PC ha rilevato il SensorTag e sono stato in grado di associare il SensorTag al PC.

Inoltre, sono stato in grado di ottenere i dati di accesso generico. Ma, al servizio Ottieni informazioni sul dispositivo, da 9 caratteristiche solo 6 hanno risposto e solo da loro è stato possibile ottenere informazioni.

Non riesco invece a configurare il dispositivo e non riesco a recuperare i dati dai sensori né tramite il meccanismo di lettura né tramite le notifiche.

2. Reazione di Thunderboard:

Il sistema operativo ha uno strano comportamento quando viene avviato il processo di associazione. Nell'elenco dei dispositivi rilevati, i SensorTag compaiono e scompaiono (con un periodo di 1 … 1,5 s). Infine, quando un clic del mouse riesce sul SensorTag, il processo di accoppiamento viene completato e i LED sulla Thunderboard React (quelli blu e verdi) hanno un periodo in cui lampeggiano consecutivamente in una modalità atipica.

La lettura delle caratteristiche del Generic Access Service (0x1800) può essere eseguita senza alcun problema, ma la lettura da Device Information Service (0x180A) fallisce su tutte e quattro le caratteristiche esistenti.

Impostazione dei sensori (incorporati su SensorTag), modalità di acquisizione dati (su Thunderboard React si ha solo la seguente possibilità: (1) ricevere dati tramite la notifica da 3 sensori e (2) leggere dati dagli altri quattro sensori) è impossibile. Pertanto, l'impossibilità di ottenere i dati reali dai sensori deriva direttamente da qui.

3. Senso del tuono:

Lo stesso processo pulsante, osservato per Thunderboard React, è stato riscontrato anche per Thunderboard Sense, quando vogliamo ottenere il processo di abbinamento. Ma qui le cose vanno anche peggio: dopo l'associazione, il programma blessTag non è in grado di rilevare il SensorTag. Quindi, nessun dispositivo attivo - nessuna entità da cui l'applicazione blessTags per acquisire i dati.

4. CC2541DK:

Il comportamento è identico al comportamento di CC2650STK (versione firmware 1.40). Ad ogni tentativo di connessione, riceverai il seguente messaggio di errore: "Prova a connettere di nuovo il tuo dispositivo".

Quindi, in conclusione, all'interno di questa versione di Windows 10 (Creators Update), è impossibile comunicare con nessuno dei quattro tipi di SensorTag indicati sopra. Di conseguenza, menziono (ancora una volta) che qui ho utilizzato la stessa versione software che ho utilizzato anche in tutti i test effettuati su Windows 10 Anniversary Update.

Passaggio 4: Windows 10 - Aggiornamento dei creativi autunnali - Versione 1709

Image
Image

Questa versione di Windows 10 (1709 – OS Build 16299.19) è un enorme passo avanti rispetto a Windows 10 Creators Update (in BLE non funziona quasi nulla), ma ha ancora molta strada da fare per arrivare al livello di Windows 10 Anniversary Update (1607) sistema operativo

Ma vediamo perché ho fatto questa affermazione:

1. CC2650STK (versione firmware 1.40) e CC2541DK:

Tratterò questi due dispositivi qui contemporaneamente perché il loro comportamento relativo al sistema operativo Windows 10 (1709) è simile.

L'operazione di abbinamento e la lettura, dai servizi Accesso Generico e Informazioni Dispositivo, funzionano perfettamente senza alcun tipo di problema.

I problemi si verificano solo quando vogliamo leggere le informazioni dai sensori. Il meccanismo di trasferimento dei dati tramite notifiche non funziona affatto.

L'unico modo per ottenere i dati dai sensori, incorporati nel SensorTag, è tramite il meccanismo di lettura diretta dal dispositivo. Questo approccio ha due problemi: (1) velocità di trasferimento dati inferiore (come mostrato sopra) e (2) se tutti i sensori accettano uno dei due metodi di trasferimento dati (tramite lettura e notifica), i pulsanti sul SensorTag possono essere interrogato solo attraverso il meccanismo di notifica. Grazie a questa "caratteristica" del sistema operativo Windows 10 (1709), l'applicazione blessTags implementa, a partire dalla versione 9.7.8.0, anche il metodo di lettura per l'acquisizione dei dati.

Viene visualizzato un problema con il SensorTag CC2650STK con la versione firmware 1.20. Se il processo di associazione e lettura dei dati dal servizio Accesso generico funziona molto bene, il processo di lettura dai servizi Informazioni dispositivo non è possibile. Inoltre, la lettura dei sensori (da questo SensorTag con questa versione firmware) non funziona attraverso nessuno dei due possibili meccanismi (lettura o notifica).

2. Reazione di Thunderboard:

Nella stessa modalità di Windows 10 Creators Update, il SensorTag appare e scompare quando vogliamo aggiungere un nuovo dispositivo Bluetooth. Lo stesso comportamento può essere evidenziato nel centro operativo sul pulsante di azione rapida del Bluetooth dove vengono visualizzati ripetutamente "Non connesso" e "Thunderboard React" (si prega di vedere nel filmato seguente questo processo a partire dall'indice di tempo 5.14 s). Immediatamente possiamo concludere che Thunderboard React è colpevole, principalmente a causa di un'implementazione difettosa del meccanismo pubblicitario da parte degli ingegneri di Silicon Labs. Ma, cercando su Internet, noteremo che altri utenti hanno segnalato lo stesso problema ad altri tipi di dispositivi BLE, dopo aver installato i Fall Creators Aggiorna – ad esempio guarda questo film su YouTube.

Dopo aver associato il SensorTag, l'applicazione blessTags non è in grado di trovare il dispositivo Thunderboard React. Quindi, a questo punto non funziona niente: Generic Access e i servizi Device Information o acquisizione dati dai sensori embedded su Thunderboard React SensorTag.

3. Senso del tuono:

La modalità di comportamento è simile a quella del Thunderboard React. Questo dispositivo Bluetooth viene visualizzato e scompare ripetutamente. Quando il processo di associazione è andato a buon fine, è possibile prendere i dati dal servizio di accesso generico. Ma da questo punto non funziona più niente.

In conclusione, al momento su Windows 10 Fall Creators Update (1709, build 16229.19) funzionano solo i SensorTag prodotti da TI (CC2650STK e CC2541DK). Inoltre, funzionano solo in modalità lettura. Ma attenzione! Solo la versione 1.40 del firmware CC2650STK funzionerà in questa modalità. Sfortunatamente, quando acquisti un CC2650STK hai un'alta probabilità di prendere un dispositivo con revisione del firmware 1.20. Quindi, per poter comunicare con un tale tipo di SensorTag è necessario un aggiornamento almeno alla versione firmware 1.40.

Associato a questo passaggio, presento un filmato che dimostra tutte queste affermazioni fatte sopra per Windows 10 Fall Creators Update.

Dalla prima versione di Windows 10 Fall Creators Update (build 16229.19), il 17 ottobre 2017, non sono stati apportati miglioramenti o correzioni di errori relativi a Bluetooth LE fino a KB4054517 (rilasciato il 12 dicembre 2017). In KB4054517 (OS Build 16299.125) c'è una modifica chiave su Bluetooth LE (vedi qui): "Risolve il problema con i dispositivi Bluetooth personalizzati che non supportano il bonding". Poiché questo messaggio è molto criptico, ho deciso di riprendere tutte le mie analisi fatte finora e di vedere se ci sono miglioramenti rispetto alla prima versione di Windows 10 Fall Creators Update (build 16229.19). … e una piccola sorpresa, in questo momento sono in grado di ottenere: (1) i dati da Thunderboard Sense (dai sensori incorporati nel SensorTag ma solo attraverso il meccanismo di lettura) e (2) tutte le informazioni dai servizi Generic Access e Device Information. Non ci sono altri miglioramenti.

Passaggio 5: Windows 8

Come primo sistema operativo Microsoft con supporto BLE, l'implementazione è soddisfacente, ma è lungi dall'essere eccellente. Gli unici dispositivi che funzionano con questo sistema operativo sono CC2650STK e CC2541DK.

Impostando il tempo di acquisizione a 150 [ms], per il CC2650STK, possiamo ottenere i dati (da tutti i sensori incorporati), rispettando la frequenza di campionamento di 150 [ms], attraverso il meccanismo di notifica senza problemi. Sfortunatamente, utilizzando il meccanismo di lettura CCC2650STK, possiamo ottenere dati (da tutti i sensori) con un periodo di 2 secondi.

La situazione peggiora quando si parla di CC2541DK. Attraverso il meccanismo di notifica si ottengono i dati con un periodo di 0,4 … 0,6 secondi. Utilizzando il meccanismo di lettura possiamo recuperare i dati con un periodo fluttuante di 2,8 … 3 secondi. Le condizioni sono le stesse: periodo di acquisizione 150 [ms] da tutti i sensori integrati nel SensorTag CC2541DK.

Passaggio 6: Windows 7

La società Microsoft ha aggiunto il supporto per lo stack Bluetooth Low Energy (BLE) a partire dal sistema operativo Windows 8. Hanno fornito un'API che consente alle applicazioni di accedere ai dispositivi BLE.

Ma Microsoft non ha portato le API BLE su Windows 7. Lo stack integrato di Windows 7 supporta solo la versione Bluetooth 2.1/3.0, non c'è supporto per BLE (4.0, 4.1 o 4.2). Quindi, dal punto di vista di uno sviluppatore, è impossibile comunicare, in Windows 7, con un dispositivo BLE utilizzando lo stack di Windows 7.

L'azienda TI ha un programma chiamato BLE Device Monitor che è in grado di: (1) funzionare su Windows 7 e (2) comunicare con un SensorTag. Ma per questi è necessario utilizzare uno speciale dongle USB (ad es. CC2540 Bluetooth Low Energy USB). Se il codice sorgente per il dongle USB è libero, il codice sorgente per BLE Device Monitor non è disponibile – è solo per uso interno dell'azienda TI.

Passaggio 7: Conclusioni

Conclusioni
Conclusioni

L'aggiornamento per l'anniversario di Windows 10 (versione 1607) è la migliore versione di Windows mai realizzata da Microsoft dal punto di vista dei dispositivi Bluetooth Low Energy (BLE) – SensorTags nel nostro caso. Ovviamente, ciò è dovuto anche al numero considerevole di miglioramenti avvenuti a livello di Bluetooth LE nelle seguenti build del sistema operativo (vedi per maggiori informazioni: https://support.microsoft.com/en-us/help/4000825): 14393.51, 14393.105, 14393.189, 14393.222, 14393.321, 14393.351, 14393.726 e 14393.1083.

L'applicazione blessTags (BLE SensorTags) può essere scaricata dalle app di Windows Store: https://www.microsoft.com/store/apps/9p054xsjjr1n. Per ulteriori informazioni, demo, applicazioni pratiche, esempi ecc., visitare il seguente blog:

Sintetizzando tutti i risultati precedenti otterremo la tabella associata a questo passaggio.

Consigliato: