Índice:

Análise do sistema Windows Bluetooth - uma abordagem SensorTag: 7 etapas (com imagens)
Análise do sistema Windows Bluetooth - uma abordagem SensorTag: 7 etapas (com imagens)

Vídeo: Análise do sistema Windows Bluetooth - uma abordagem SensorTag: 7 etapas (com imagens)

Vídeo: Análise do sistema Windows Bluetooth - uma abordagem SensorTag: 7 etapas (com imagens)
Vídeo: BFree: Enabling Battery-free Sensor Prototyping with Python 2024, Julho
Anonim
Análise do sistema Windows Bluetooth - uma abordagem SensorTag
Análise do sistema Windows Bluetooth - uma abordagem SensorTag

A seguir, farei uma análise do sistema operacional (SO) Windows do ponto de vista da comunicação com dispositivos Bluetooth Low Energy - no nosso caso com diferentes tipos de SensorTags: Thunderboard React, Thunderboard Sense (ambos produzidos pela Silicon Labs Company), CC2650STK e CC2541DK (ambos desenvolvidos pela Texas Instruments Company).

Etapa 1: Análise do sistema Windows Bluetooth - uma abordagem SensorTag

Análise do sistema Windows Bluetooth - uma abordagem SensorTag
Análise do sistema Windows Bluetooth - uma abordagem SensorTag

A seguir, farei uma análise do sistema operacional (SO) Windows do ponto de vista da comunicação com dispositivos Bluetooth Low Energy - no nosso caso com diferentes tipos de SensorTags: Thunderboard React, Thunderboard Sense (ambos produzidos pela Silicon Labs Company), CC2650STK e CC2541DK (ambos desenvolvidos pela Texas Instruments Company).

A seguir, analisarei o Windows 7, o Windows 8.1 e as seguintes versões do Windows 10:

· Atualização de aniversário (lançada em 2 de agosto de 2016; fim do suporte: provisoriamente em março de 2018), · Atualização de criadores (lançada em 5 de abril de 2017; fim do suporte: provisoriamente em setembro de 2018) e

· Atualização de criadores de outono (lançada em 17 de outubro de 2017; fim do suporte: provisoriamente em março de 2019).

A análise será feita sob os seguintes pontos de vista:

1. A capacidade do sistema operacional (SO) de emparelhar com um SensorTag;

2. A capacidade de obter dados de acesso genérico (este é um serviço obrigatório);

3. A capacidade de obter informações do dispositivo (este serviço expõe informações do fabricante e / ou fornecedor relacionadas a um SensorTag específico);

4. A capacidade de obter os dados do SensorTag, usando a abordagem de leitura e

5. A capacidade de obter os dados do SensorTag, usando a abordagem de notificação.

Todos os testes foram feitos usando a versão 9.7.8.0 do aplicativo blessTags. O aplicativo blessTags foi construído tendo como suporte o Windows SDK - Bluetoothapis. Funções como BluetoothGATTGetCharacteristicValue, BluetoothGATTGetDescriptorValue, BluetoothGATTGetServices ou BluetoothGATTSetCharacteristicValue foram usadas.

Este aplicativo, blessTags (BLE SensorTags), pode ser baixado dos aplicativos da Windows Store: https://www.microsoft.com/store/apps/9p054xsjjr1n. Para obter mais informações, demonstração, aplicações práticas, exemplos etc., visite o seguinte blog:

Etapa 2: Windows 10 - Atualização de aniversário - versão 1607

Image
Image

Esta versão do sistema operacional Windows 10 é a melhor do ponto de vista dos dispositivos Bluetooth Low Energy. Pode emparelhar sem problemas com todos os SensorTags (independentemente da versão do software em execução), com os quais o aplicativo blessTags sabe como trabalhar (CC2650STK, Thunderboard React, Thunderboard Sense e CC2541DK), e todas as informações dos serviços do Bluetooth são genéricos Acessar e obter informações do dispositivo é adquirido sem nenhum problema.

Analisando a velocidade de aquisição de dados (para dispositivos CC2650STK e CC2541DK) usando mecanismo de notificação e leitura de transferência de dados, podemos observar o seguinte:

1. através do mecanismo de notificação, podemos obter dados de todos os sensores (oito) de 150 [ms] a 150 [ms] sem problemas;

2. em vez disso, quando definimos o tempo de aquisição para 150 [ms] e usamos o mecanismo de leitura de dados - na situação mais feliz, obtemos 713 [ms] e no pior caso, 840 [ms].

Se analisarmos o Thunderboard React e o Thunderboard Sense, obteremos os resultados equivalentes - eles funcionam sem problemas no ambiente do Windows 10 Anniversary Update.

Na verdade, todos os filmes de apresentação das principais funções do aplicativo blessTags e dos diferentes recursos específicos (como Gadgets) foram feitos com o suporte da Atualização de Aniversário do Windows 10.

Etapa 3: Windows 10 - Atualização de criadores - Versão 1703

Windows 7
Windows 7

A versão Creators Update do Windows 10 é o pior sistema operacional (SO) do ponto de vista dos dispositivos Bluetooth Low Energy.

Quase nada está funcionando. A Microsoft reconheceu que a atualização dos criadores quebrou o Bluetooth Low Energy (referência 1 e referência 2). A empresa Microsoft prometeu um hotfix o mais rápido possível. Mas, desde então, eles lançaram uma versão atualizada do Windows (Fall Creators Update) e nada aconteceu - até agora, com a versão do Windows 10 Creators Update, o Bluetooth Low Energy ainda não funciona.

Há um grande número de postagens em fóruns em que diferentes pessoas reclamam sobre diferentes tipos de dispositivos Bluetooth que param de funcionar após a atualização para o Creators Update (veja aqui, veja aqui, veja aqui, veja aqui etc.).

Os resultados, vou mostrar imediatamente, foram obtidos após muitos testes: (1) em um PC desktop que tinha um dongle USB CSR4.0 Bluetooth (CSR8510 A10) e (2) em um laptop Dell Inspiron P66F com um dispositivo Bluetooth LE integrado. Sei que existem muitas soluções na Internet para consertar vários tipos de problemas de Bluetooth. Tentei quase tudo, mas nada funcionou (atualize o driver do Bluetooth, execute o solucionador de problemas do Windows, desative e ative os serviços relacionados ao Bluetooth, etc.)

Então, vamos apresentar os resultados:

1. CC2650STK:

uma. Na versão de firmware 1.40 emparelhar o dispositivo SensorTag com Windows é impossível (repeti o processo várias vezes, pelo menos 8 a 10 vezes, liguei e desliguei o Bluetooth e tentei novamente - os resultados foram os mesmos: era impossível adicionar este dispositivo).

b. Na versão de firmware 1.20, o PC descobriu o SensorTag e eu consegui emparelhar o SensorTag com o PC.

Além disso, consegui obter dados de acesso genérico. Porém, no serviço Get Device Information, das 9 características apenas 6 responderam e somente delas foi possível obter as informações.

Em vez disso, não consigo configurar o dispositivo e não consigo recuperar dados dos sensores por meio do mecanismo de leitura ou das notificações.

2. Reação do Thunderboard:

O sistema operacional apresenta um comportamento estranho quando o processo de emparelhamento é iniciado. Na lista de dispositivos descobertos, o SensorTag aparece e desaparece (com um período de 1… 1,5 s). Finalmente, quando um clique do mouse é bem-sucedido no SensorTag, o processo de emparelhamento é realizado e os LEDs no Thunderboard React (os azuis e verdes) têm um período em que estão piscando consecutivamente em um modo atípico.

A leitura das características do Generic Access Service (0x1800) pode ser feita sem problemas, mas a leitura do Device Information Service (0x180A) falha nas quatro características existentes.

Configurando os sensores (embutidos no SensorTag), o modo de aquisição de dados (no Thunderboard React você tem apenas a seguinte possibilidade: (1) obter dados por meio da notificação de 3 sensores e (2) ler dados dos outros quatro sensores) é impossível. Portanto, a impossibilidade de obter os dados reais dos sensores resulta diretamente daqui.

3. Sentido do Thunderboard:

O mesmo processo de pulsação, observado para o Thunderboard React, também existe para o Thunderboard Sense - quando queremos atingir o processo de emparelhamento. Mas aqui as coisas são ainda piores: após o emparelhamento, o programa blessTag não consegue detectar o SensorTag. Portanto, nenhum dispositivo ativo - nenhuma entidade de onde o aplicativo blessTags adquire os dados.

4. CC2541DK:

O comportamento é idêntico ao comportamento do CC2650STK (versão de firmware 1.40). A cada tentativa de conexão, você receberá a seguinte mensagem de erro: "Tente conectar seu dispositivo novamente".

Portanto, em conclusão, nesta versão do Windows 10 (Creators Update), é impossível se comunicar com qualquer um dos quatro tipos de SensorTags apontados acima. Consequentemente, menciono (mais uma vez) que aqui usei a mesma versão de software que também usei em todos os testes feitos na Atualização de Aniversário do Windows 10.

Etapa 4: Windows 10 - Atualização de criadores de outono - versão 1709

Image
Image

Esta versão do Windows 10 (1709 - OS Build 16299.19) é um grande passo à frente, em comparação com o Windows 10 Creators Update (estávamos no BLE, quase nada estava funcionando), mas ainda tem um longo caminho para chegar ao nível de Atualização de Aniversário do Windows 10 (1607) sistema operacional

Mas vamos ver por que fiz esta afirmação:

1. CC2650STK (versão de firmware 1.40) e CC2541DK:

Tratarei esses dois dispositivos aqui simultaneamente porque seu comportamento relacionado ao sistema operacional Windows 10 (1709) é semelhante.

A operação de emparelhamento e a leitura, desde os serviços Generic Access e Device Information, estão a funcionar perfeitamente sem quaisquer problemas.

Os problemas ocorrem apenas quando queremos ler as informações dos sensores. O mecanismo de transferência de dados por meio de notificações não funciona de todo.

A única forma de obter dados dos sensores, embutidos no SensorTag, é por meio do mecanismo de leitura direta do dispositivo. Esta abordagem tem dois problemas: (1) menor velocidade de transferência de dados (como mostramos acima) e (2) se todos os sensores aceitarem um dos dois métodos de transferência de dados (por meio de leitura e notificação), os botões no SensorTag podem ser interrogado apenas através do mecanismo de notificação. Graças a este "recurso" do SO Windows 10 (1709), o aplicativo blessTags implementa, a partir da versão 9.7.8.0, o método de leitura para aquisição de dados também.

Aparece um problema com o CC2650STK SensorTag com a versão de firmware 1.20. Se o processo de emparelhamento e leitura de dados do serviço de acesso genérico funcionar muito bem, o processo de leitura dos serviços de informações do dispositivo não é possível. Além disso, a leitura dos sensores (deste SensorTag com esta versão de firmware) não funciona por nenhum dos dois mecanismos possíveis (leitura ou notificação).

2. Reação do Thunderboard:

No mesmo modo como no Windows 10 Creators Update, o SensorTag aparece e desaparece quando queremos adicionar um novo dispositivo Bluetooth. O mesmo comportamento pode ser destacado no centro de ação do botão de ação rápida do Bluetooth onde “Não conectado” e “Thunderboard React” são exibidos repetidamente (veja no filme a seguir esse processo a partir do índice de tempo 5,14 s). Imediatamente podemos concluir que o Thunderboard React é culpado, principalmente devido a uma implementação falha do mecanismo de publicidade pelos engenheiros da Silicon Labs. Mas, pesquisando na internet, perceberemos que outros usuários relataram o mesmo problema para outros tipos de dispositivos BLE, após a instalação do Fall Creators Atualização - por exemplo, veja este filme no YouTube.

Depois de emparelhar o SensorTag, o aplicativo blessTags não consegue encontrar o dispositivo Thunderboard React. Portanto, neste ponto, nada está funcionando: o acesso genérico e os serviços de informações do dispositivo ou aquisição de dados dos sensores embutidos no Thunderboard React SensorTag.

3. Sentido do Thunderboard:

O modo de comportamento é semelhante ao do Thunderboard React. Este dispositivo Bluetooth é exibido e desaparece repetidamente. Quando o processo de emparelhamento for bem-sucedido, é possível obter dados do Serviço de Acesso Genérico. Mas a partir deste ponto, nada está funcionando mais.

Como conclusão, até agora no Windows 10 Fall Creators Update (1709, build 16229.19) apenas os SensorTags produzidos pela TI (CC2650STK e CC2541DK) estão funcionando. Mais, eles estão trabalhando apenas no modo de leitura. Mas atenção! Somente a versão 1.40 do firmware CC2650STK funcionará neste modo. Infelizmente, ao comprar um CC2650STK, você tem grandes chances de comprar um dispositivo com revisão de firmware 1.20. Assim, para poder se comunicar com tal tipo de SensorTag é necessário um upgrade pelo menos para a versão de firmware 1.40.

Associado a esta etapa, apresento um filme que prova todas essas afirmações feitas acima para a atualização do Windows 10 Fall Creators.

Desde a primeira versão da Atualização do Windows 10 Fall Creators (compilação 16229.19), em 17 de outubro de 2017, não houve melhorias ou correções de erros relacionados com Bluetooth LE até KB4054517 (lançado em 12 de dezembro de 2017). No KB4054517 (OS Build 16299.125), há uma mudança importante no Bluetooth LE (veja aqui): “Resolve o problema com dispositivos Bluetooth personalizados que não oferecem suporte a vinculação”. Como esta mensagem é muito enigmática, decidi retomar todas as minhas análises feitas até agora e ver se há alguma melhoria em comparação com a primeira versão da Atualização do Windows 10 Fall Creators (compilação 16229.19). … E uma pequena surpresa, agora eu sou capaz de obter: (1) dados do Thunderboard Sense (dos sensores embutidos no SensorTag, mas apenas por meio do mecanismo de leitura) e (2) todas as informações dos serviços de acesso genérico e informações de dispositivos. Não há outras melhorias.

Etapa 5: Windows 8

Como um primeiro sistema operacional da Microsoft com suporte BLE, a implementação é satisfatória, mas está longe de ser excelente. Os únicos dispositivos que funcionam com este sistema operacional são CC2650STK e CC2541DK.

Configurando o tempo de aquisição para 150 [ms], para o CC2650STK, podemos obter os dados (de todos os sensores embutidos), respeitando a taxa de amostragem de 150 [ms], através do mecanismo de notificação sem problemas. Infelizmente, usando o mecanismo de leitura CCC2650STK, podemos obter dados (de todos os sensores) com um período de 2 segundos.

A situação está piorando quando falamos sobre CC2541DK. Por meio do mecanismo de notificação, os dados são obtidos com um período de 0,4… 0,6 segundos. Ao usar o mecanismo de leitura, podemos recuperar os dados com um período de flutuação de 2,8… 3 segundos. As condições são as mesmas: período de aquisição 150 [ms] de todos os sensores embutidos no CC2541DK SensorTag.

Etapa 6: Windows 7

A empresa Microsoft adicionou suporte para a pilha Bluetooth Low Energy (BLE) começando com o sistema operacional Windows 8. Eles forneceram uma API que permite que os aplicativos acessem dispositivos BLE.

Mas a Microsoft não portou a API BLE para o Windows 7. A pilha embutida do Windows 7 suporta apenas Bluetooth versão 2.1 / 3.0, não há suporte para BLE (4.0, 4.1 ou 4.2). Portanto, do ponto de vista de um desenvolvedor, é impossível se comunicar, no Windows 7, com um dispositivo BLE usando a pilha do Windows 7.

A empresa de TI tem um programa chamado BLE Device Monitor que é capaz de: (1) rodar no Windows 7 e (2) se comunicar com um SensorTag. Mas você deve usar para eles um dongle USB especial (por exemplo, CC2540 Bluetooth USB de baixa energia). Se o código-fonte do dongle USB for gratuito, o código-fonte do BLE Device Monitor não está disponível - é apenas para uso interno da empresa de TI.

Etapa 7: Conclusões

Conclusões
Conclusões

A atualização de aniversário do Windows 10 (versão 1607) é a melhor versão do Windows já feita pela Microsoft do ponto de vista dos dispositivos Bluetooth de baixa energia (BLE) - SensorTags em nosso caso. Obviamente, isso também se deve ao número considerável de melhorias que ocorreram no nível do Bluetooth LE nas seguintes compilações de sistema operacional (consulte para obter mais informações: 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.

O aplicativo blessTags (BLE SensorTags) pode ser baixado dos aplicativos da Windows Store: https://www.microsoft.com/store/apps/9p054xsjjr1n. Para obter mais informações, demonstração, aplicações práticas, exemplos etc., visite o seguinte blog:

Sintetizando todos os resultados acima, obteremos a tabela associada a esta etapa.

Recomendado: