2017-06-01 55 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退出。