Recriar o dispositivo HID depois que o BlueZ 5 for reiniciado

4

Eu trabalho em um dispositivo incorporado que usa teclado Bluetooth para interação com o usuário.

Quando o teclado é conectado pela primeira vez após a reinicialização ou o reinício do BlueZ, o BlueZ estabelecerá uma conexão e, após um curto período de tempo (< 1s), aparecerá o seguinte no log do kernel:

input: DA1458x as /devices/virtual/misc/uhid/0005:00D2:0580.0001/input/input1

Até que isso apareça, as teclas pressionadas não são detectadas pelo SO (o que é lógico). As reconexões subseqüentes funcionam bem porque o dispositivo HID já está criado.

Às vezes, o dispositivo é reinicializado, fazendo com que o BlueZ e o kernel percam o dispositivo e solicitem que o teclado seja conectado novamente para criar um dispositivo de entrada.

Isso é ruim para o UX porque reiniciamos os dispositivos para atualizações de manutenção quando eles não estão em uso, então a tecla pressionada mais comumente é energia, que é perdida porque é enviada antes que o BlueZ crie o dispositivo HID.

É possível instruir o BlueZ (ou fazê-lo em outro lugar) para criar e vincular o dispositivo de entrada ao teclado emparelhado logo após começar a evitar esse problema?

    
por Blagus 30.06.2017 / 10:41

0 respostas