我通常使用GNU screen在服务器上打开虚拟终端,以便在我注销或断开连接时可以运行长时间运行的程序。我现在正在使用覆盆子pi,我附上一个Sparkfun OpenScale来读出load cell(一个衡量我体重的加权比例)。
要读出此OpenScale板,我使用
连接到它screen /dev/ttyUSB0 9600
之后我得到了一个带有一些选项的终端程序:
Serial Load Cell Converter version 1.0
By SparkFun Electronics
No remote sensor found
System Configuration
1) Tare scale to zero [-23555]
2) Calibrate scale [-9649]
3) Timestamp [Off]
4) Set report rate [95]
5) Set baud rate [9600 bps]
6) Change units of measure [kg]
7) Decimals [1]
8) Average amount [1]
9) Local temp [Off]
r) Remote temp [Off]
s) Status LED [Off]
t) Serial trigger [Off]
q) Raw reading [Off]
c) Trigger character: [120]
x) Exit
这很好用,经过一些校准后我得到了很好的读数。事情是,我不明白如何退出这个程序。如果您看到上面的菜单,您可能会认为我只需按x
,但只是退出此菜单,之后您将进入测量读数模式(它只是开始打印从秤中获得的重量)。如果我再次按x
,则只需再次打开此菜单。
我尝试了很多东西来关闭它:
q
x
Ctrl + c
Ctrl + d
Esc
Backspace
我当然可以从会话中分离(使用Ctrl + a
,然后按d
),然后终止屏幕会话,但程序不会将目标存储为零。它正确地存储校准,但不是零点,这使得读数完全错误,并且每次重新启动时都需要将tar降至零。这就是为什么我认为正确退出程序可能会正确地保存零点。
有人知道正确退出此计划的方法吗?
答案 0 :(得分:0)
由于您使用屏幕作为串行设备的终端仿真器,除非串行设备本身将校准数据存储在某种NVRAM中,否则每次重置Raspberry Pi时都可能需要重新校准。
我建议使用-L
选项启动屏幕,将输出记录到文件中。校准例程完成后,您可以使用Ctrl-a d
从屏幕会话中分离。但是,日志文件应该随着测量的权重而继续增长。
但是,如果您真的想退出屏幕以便其他进程可以打开并从串行设备读取,那么您可以使用Ctrl-a \
。屏幕将提示您是否要退出,键入y
退出。