ts를 사용하세요!

ts를 사용하세요!

두 가지 다른 데이터를 참조해야 하기 때문에 타임스탬프가 있으므로 직렬 포트에 Cutecom을 사용하고 있습니다. 하지만 타임스탬프를 사용하여 이러한 데이터를 기록할 수 없으며 ms 단위의 정확성이 필요합니다. 어떤 제안이 있나요?

고마워요, 셀림.

답변1

터미널 에뮬레이터가 필요하지 않은 경우 타임스탬프와 함께 모든 I/O를 기록하는 옵션 socat과 함께 사용할 수 있습니다 . -v예를 들어,

socat -v READLINE /dev/ttyS0,b19200,raw,echo=0 2>/tmp/log

ttyS0이 명령의 stdin에 입력하는 모든 내용은 지정된 전송 속도 등으로 직렬 포트로 전송됩니다 . 그리고 직렬 포트의 모든 입력은 stdout에 나타납니다. 당신 은 /tmp/log다음과 같은 줄을 찾을 수 있습니다

> 2019/11/06 13:56:27.996129  length=6 from=0 to=5
hello
< 2019/11/06 13:56:37.024451  length=8 from=0 to=7
my reply

이는 "hello\n"을 입력하고 "my reply"를 다시 보내는 것과 같습니다.

답변2

ts를 사용하세요!

모든 Unix 및 Linux용 Windows 하위 시스템(WSL이라고도 함)에 도구가 moreutils포함된 패키지를 설치할 수 있습니다 ts. ts표준 입력에 제공되는 텍스트 데이터에 타임스탬프를 추가합니다.

설치예를 들어 우분투에서:

$ sudo apt-get install moreutils

용법

예를 들어 직렬 포트가 이라고 가정하면 ttyS70이 명령줄을 실행하여 다음을 수행할 수 있습니다.

  • 이 포트에서 직렬 데이터를 읽습니다( 사용 cat).
  • 타임스탬프를 추가하고( 사용 ts)
  • 결과 줄을 인쇄하고 동시에 파일에 저장합니다( 사용 tee).
$ cat /dev/ttyS70 | ts | tee logfile

내 종류의 직렬 데이터의 경우 결과는 다음과 같습니다.

Feb 14 18:37:03 13438 1     0     0.0     19  -80.00    0.00 1
Feb 14 18:37:03 13440 1     0     0.0     19  -80.00    0.00 1
Feb 14 18:37:04 13441 1     0     0.0     19  -80.00    0.00 1
Feb 14 18:37:04 13442 1     0     0.0     19  -80.00    0.00 1
Feb 14 18:37:04 13444 1     0     0.0     19  -80.00    0.00 1

이 예에서 직렬 포트는 초당 두 개 이상의 회선을 수신합니다. 타임스탬프 해상도는 초 단위이므로 여러 줄에 동일한 타임스탬프가 있습니다. 더 높은 해상도의 타임스탬프를 추가하려면 ts타임스탬프 형식을 제어할 수 있습니다. 예를 들어 %.s1970년 이후의 초를 초 미만 해상도로 제공합니다.

$ cat /dev/ttyS70 | ts %.s | tee logfile

결과

1676396776.277146 18963 1     0     0.0     19  -80.00    0.00 1
1676396776.405363 18964 1     0     0.0     19  -80.00    0.00 1
1676396776.532999 18966 1     0     0.0     19  -80.00    0.00 1
1676396776.660920 18967 1     0     0.0     19  -80.00    0.00 1
1676396776.789261 18968 1     0     0.0     19  -80.00    0.00 1
1676396776.917136 18969 1     0     0.0     19  -80.00    0.00 1

절대 시간 데이터가 필요하지 않은 경우 스위치를 사용하십시오 -s. 그러면 프로그램 시작 이후 경과된 시간이 표시됩니다.

$ cat /dev/ttyS70 | ts -s %.s | tee logfile

결과

0.072230 6459 42     0     0.0  20567 -100.00    0.00 1
0.199964 6459 42     0     0.0  20567 -100.00    0.00 1
0.311792 6460 42     0     0.0  20568 -100.00    0.00 1
0.439221 6460 42     0     0.0  20566 -100.00    0.00 1
0.567191 6460 42     0     0.0  20566 -100.00    0.00 1
0.694773 6460 42     0     0.0  20566 -100.00    0.00 1
0.822279 6461 42     0     0.0  20567 -100.00    0.00 1
0.950085 6461 42     0     0.0  20566 -100.00    0.00 1
1.061797 6461 42     0     0.0  20567 -100.00    0.00 1
1.189510 6461 42     0     0.0  20568 -100.00    0.00 1

관련 정보