저는 Raspberry Pi의 청취자에게 텍스트 데이터(GY-91 센서의 출력)를 전송하는 Raspberry Pi에 Arduino Nano를 연결했습니다.
P: 974.044 | T: 22.65 | AG: -0.17 -0.10 1.01 | GD: 1.16 0.91 0.98 | MT: -59.0 94.4 105.1
P: 974.044 | T: 22.65 | AG: -0.17 -0.10 1.00 | GD: 1.34 0.85 1.04 | MT: -58.3 94.7 105.1
P: 974.066 | T: 22.64 | AG: -0.17 -0.10 1.00 | GD: 0.98 1.10 1.04 | MT: -58.5 94.9 104.2
P: 974.066 | T: 22.64 | AG: -0.17 -0.10 1.01 | GD: 0.98 0.85 1.16 | MT: -59.2 94.2 104.2
수신 프로그램은 데이터를 cout으로 전달하는 작은 cpp 프로그램입니다.
./a.out > log.txt
센서 데이터를 log.txt
파일 로 덤프 할 수 있습니다.
샘플링 속도는 초당 약 50줄(센서 전체 판독값 50회)이며, 이 기록을 약 12시간 동안 실행하고 싶습니다. 말할 필요도 없이 이렇게 하면 상대적으로 큰 로그 파일이 생성됩니다.
이 데이터를 로그 파일에 쓰기 전에 어떻게 동적으로 압축할 수 있습니까?
그런 것 같지만 a.out | gzip > log.txt
작동하지 않습니다.
이상적으로는 Windows 컴퓨터에 다운로드하고 프로그램을 사용하여 "압축 해제"할 수 있지만 일부 cygwin 도구를 사용하는 것도 가능합니다.
저는 데이터에 가장 적합한 집계/요약/분석을 결정하기 위해 다양한 알고리즘을 실행할 수 있도록 이와 같은 로그 파일을 만들 계획입니다.
답변1
다음과 같이 시도해 볼 수 있습니다.
./a.out | gzip -c - > log.gz
7-zip으로 압축을 풀 수 있지만 아카이브 손상을 방지하려면 프로그램에 타이머를 구현해야 합니다. Ctrl-C로 중단하면 아카이브가 제대로 닫히지 않습니다.