netcat을 통해 전송할 때 `cat /dev/ttyACM`에서 데이터가 손실됩니다.

netcat을 통해 전송할 때 `cat /dev/ttyACM`에서 데이터가 손실됩니다.

/dev/ttyACM0Raspberry Pi에서 사용되는 데이터를 읽고 있습니다 . cat /dev/ttyACM0데이터는 다음 형식으로 행을 보내는 장치에서 나옵니다.

15.00   1316013 15

여기서 첫 번째 숫자는 값이고 두 번째 숫자는 장치의 밀리초 타임스탬프입니다.

이렇게 하면 cat /dev/ttyACM0 > file.csv12~13ms마다 값을 받지만, 네트워크를 통해 똑같은 작업을 하면 5초마다 1~2초의 간격을 받습니다.

데이터가 어딘가에서 손실될 가능성이 있나요? 아니면 OS가 직렬 장치를 차단하고 있으므로 추가 데이터를 보내기 전에 몇 초 정도 기다려야 합니까? 직렬 장치와 파이프 네트워크 명령 사이에 어떤 관계가 있습니까?

데이터를 사용하거나 netcat전송 ssh하는 중입니다. 장치가 9600bps로 데이터를 전송하고 있습니다.

답변1

cat /dev/ttyACM0 | awk그것들은 완전히 동일하지 않다는 것이 밝혀졌습니다</dev/ttyACM awk

cpugeniusmv가 언급했듯이 awk는 버퍼링도 수행합니다.

관련 정보