2015-02-09 60 views
0

我有一個腳本的問題。我有一個電壓表連接到串行USB設備(ttyUSB1)。 智能電錶需要一個初始序列,緊接着是第二個命令以提供所有信息。這工作正常。例如,1.8.0 * 00(000898.46)出現在我感興趣的行中。括號中的數字是我想要的kWh數。如果我打開第二個終端並執行一個貓/ dev/ttyUSB1,它可以正常工作,並且我可以看到信息進入。4到5秒後,我想要的線路進入。但腳本無法正常工作。如果我在一個終端上啓動腳本,它會一直等待。 Grep沒有完成。如果我在第二個終端啓動它,則第一個終端完成。或者只是在另一個終端中的grep 1.8.0/dev/ttyUSB1 -m1工作,但不在腳本中。 我嘗試了不同的方法閱讀,所以沒有工作。說實話我不明白很多的腳本,並總是成功莫名其妙,但這裏沒有任何事情幫助:(Grep不能在腳本中工作,但在控制檯上

請幫忙,謝謝 阿恩

這裏的腳本:!

#! /bin/bash 
echo start 
echo $'\x2f\x3f\x21\x0d' > /dev/ttyUSB1 
sleep 1 
echo ask 
echo $'\x06\x30\x30\x30\x0d' > /dev/ttyUSB1 
echo wait 
grep 1.8.0 /dev/ttyUSB1 -m1 
echo end  

回答

0

你可以嘗試使用電壓表的輸出和grep從該文件創建一個文件:

#! /bin/bash 

dev=/dev/ttyUSB1 
file=/tmp/testfile 

(tail -f $dev | tee $file) & # let's continuously copy in background 
echo start 
echo $'\x2f\x3f\x21\x0d' > $dev 
sleep 1 
echo ask 
echo $'\x06\x30\x30\x30\x0d' > $dev 
echo wait 
grep 1.8.0 $file # lets get the info from the file instead 
echo end 
sleep 1 
exit 
+0

感謝您的回答它創建/ tmp/testfile但它是空的如果我打開第二個終端與cat/dev/USBtty1它顯示數據正在進入,我認爲腳本不知何故無法控制來自ttyUSB1的輸入數據。也許我必須製作兩個腳本,一個讓電錶發送數據,另一個嘗試獲取我的電話號碼。其實我只想要一個能讓我回來的數據。想知道爲什麼它不工作:( – Arne 2015-02-09 18:28:22

+0

是/ dev/USBtty1還是/ dev/ttyUSB1? – Tiago 2015-02-09 18:29:50

+0

/dev/ttyUSB1抱歉沒有其他方法 – Arne 2015-02-09 18:38:37

相關問題