Como obter o status dos buffers tx / rx da porta serial do bluetooth?

2

O problema vem do fato de eu ter que enviar dados via porta serial bluetooth de um minúsculo robô para meu laptop na taxa de transmissão 115200, o robô envia um pacote de 32 bytes a cada 10ms (100 vezes por segundo). A transmissão funciona apenas alguns segundos e, em seguida, cat não mostra nada. Quando diminuo a frequência para 10 vezes por segundo, funciona sem problemas. Eu suponho que o buffer rx da porta serial bluetooth transborda.

Obter o status das portas seriais ( ttyS* ) via terminal é simples:

sudo cat /proc/tty/driver/serial

Em seguida, mostra serinfo com a lista de todos os uarts e informações sobre status e buffers. Quando eu chamo

sudo cat /proc/tty/drivers

Posso ver que rfcomm drivers estão disponíveis:

rfcomm   /dev/rfcomm   216 0-255 serial

E, é claro, a leitura de dados provenientes de dispositivos Bluetooth pareados (por exemplo, via cat ou pipe) não é um problema.

A pergunta é: como obter o status de portas seriais rfcomm (por exemplo, dispositivos Blueotooth SPP), especialmente a quantidade de dados em buffers rx / tx? Esta informação está disponível em algum lugar no diretório /proc como por ttyS* ou eu poderia usar de maneira totalmente diferente?

    
por Jakub Rakus 13.03.2015 / 09:37

0 respostas