직렬 포트 스니프 - jpnevulator는 일부 바이트만 스니핑합니다.

직렬 포트 스니프 - jpnevulator는 일부 바이트만 스니핑합니다.

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하는 동안 애플리케이션을 가리킵니다 .socatstderr

관련 정보