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?