2017-06-01 60 views
0

我通常使用GNU screen在服务器上打开虚拟终端,以便在注销或断开连接时运行长时间运行的程序。我现在正在用Raspberry pi搞一个Sparkfun OpenScale来读出load cell(衡量我体重的体重秤)。如何关闭Raspberry Pi上的usb屏幕会话?

要读出使用这种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),然后杀死屏幕会话,但程序不将防腐层存储为零。它正确地存储校准,但不是零点,这会使读数完全为假,并且每次重新启动时都需要将焦点归零。这就是为什么我认为正确退出程序可能会正确保存零点的原因。

有没有人知道一种方法来正确退出该程序?

回答

0

由于您使用屏幕作为串行设备的终端仿真程序,除非串行设备本身将校准数据存储在某种NVRAM中,您可能需要在每次重置Raspberry Pi时运行重新校准。

我会推荐使用-L选项的开始屏幕将输出记录到文件中。校准例程完成后,您可以使用Ctrl-a d从屏幕会话中分离。但是,日志文件应该随着衡量的权重继续增长。

但是,如果您确实想要退出屏幕以便另一个进程可以打开并从串口设备读取,那么您可以使用Ctrl-a \。屏幕会提示你是否要退出,请输入y退出。