我有一个连接到 Raspberry Pi 的 Arduino Nano,它将文本数据(GY-91 传感器的输出)传输到 Raspberry Pi 上的监听器。
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
接收程序是一个小cpp程序,它只是将数据转发到cout。
我./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 中断它,存档将无法正确关闭。