jpnevulator를 사용하여 직렬 포트를 읽는 응용 프로그램을 스니핑합니다.
jpnevulator --tty /dev/ttyS0 --read
다음 바이트가 직렬 포트로 전송된다고 가정합니다: ABCD E. 때때로 jpnevulator는 ACE 바이트만 인쇄하는 반면 애플리케이션은 BD 바이트를 가져옵니다.
jpnevulator는 바이트: ABCDE를 인쇄해야 하며 애플리케이션은 또한 모든 바이트: ABCD E를 가져와야 합니다. 무엇이 잘못되었나요? jpnevulator를 실행해야 하는 특정 옵션이 있습니까?
답변1
익숙하지 않지만 jpnevulator
일반적으로 tty에서 데이터를 읽는 두 개의 애플리케이션이 있는 경우 하나의 애플리케이션만 데이터를 가져옵니다.
데이터를 복사하려면 두 번째(또는 세 번째) tty를 생성하고 애플리케이션이 여기에서 데이터를 읽도록 해야 합니다.
한 가지 방법은 다음과 같은 것을 사용하는 것입니다.터미널 버스. 그런 다음 jpnevulator
새 tty에 연결하고 애플리케이션을 다른 tty에 연결할 수 있습니다 .
socat
또 다른 방법은 or like와 -x
함께 사용하는 것입니다.-v
socat -x PTY,link=/tmp/ptya /dev/ttyS0
그런 다음 16진수 트래픽을 덤핑 /tmp/ptya
하는 동안 애플리케이션을 가리킵니다 .socat
stderr