farejando porta serial - jpnevulator fareja apenas alguns bytes

0

Eu uso o jpnevulator para farejar uma aplicação que lê uma porta serial:

jpnevulator --tty /dev/ttyS0 --read

Vamos supor que os seguintes bytes sejam enviados para a porta serial: A B C D E. Às vezes o jpnevulator imprime somente bytes: A C E enquanto o aplicativo obtém bytes B D.

O jpnevulator deve imprimir bytes: A B C D E e o aplicativo também deve obter todos os bytes: A B C D E. O que está errado? Devo executar o jpnevulator com alguma opção?

    
por Irbis 17.09.2018 / 16:31

1 resposta

0

Não familiarizado com jpnevulator , mas em geral: se você tiver dois aplicativos lendo de um único tty, somente um aplicativo obterá os dados.

Se você deseja duplicar os dados, você deve criar um segundo (ou terceiro) tty e deixar o aplicativo ler a partir dele.

Uma maneira de fazer isso é usar algo como ttybus . Você pode então anexar jpnevulator a um dos novos ttys e seu aplicativo a outro.

Outra maneira é usar socat com -x ou -v , por exemplo

socat -x PTY,link=/tmp/ptya /dev/ttyS0

e, em seguida, aponte seu aplicativo para /tmp/ptya , enquanto socat envia o tráfego em hex para stderr .

    
por 17.09.2018 / 17:39