2011-04-17 46 views
0

讀命令輸出我有一個嵌入式Linux設備,這裏是我想使用Python做什麼:如何從串行設備使用python

  1. 獲得通過串行端口的設備控制檯。我能做到這一點是這樣的:

    >>> ser = serial.Serial('/dev/ttyUSB-17', 115200, timeout=1)

  2. 現在我要到嵌入式設備的命令行中運行一個tail命令,就像這樣:

    # tail -f /var/log/messages

,並捕獲o/p並顯示在我的python >>>控制檯上。

我該怎麼做?

+0

你有關於Python編程具體問題的命令? – 2011-04-17 00:25:57

+0

@ MIke不,我不知道。我的目的完全讓我的問題模糊不清,以獲得更多的建議。 – abc 2011-04-17 00:27:22

+0

我已經多次重讀這個問題,我在這裏沒有看到實際的問題,所以@Mike並不是唯一一個想知道你的具體問題是什麼的人。沒有使問題更明確,你可能得不到任何**建議。 python腳本在哪裏運行? tail命令在哪裏運行?你是否期待python腳本將消息放入'/ var/etc/messages'?你想讓python腳本運行'tail'並將這些消息輸出到串口? – 2011-04-17 00:54:14

回答

0

只需打開python中的文件,並保持從它readign。如果需要,可以在另一個線程:

>>> ser = serial.Serial('/dev/ttyUSB-17', 115200, timeout=1) 
>>> output = open("/var/log/messages", "rb") 

而且任何程序循環裏面,只是做:

data = output.read() 
print(data) 

如果你希望它只是去控制檯上打印,你繼續做其他的東西,類型 類似於:

from time import sleep 
from threading import Thread 
class Display(Thread): 
    def run(self): 
     while True: 
      data = self.output.read() 
      if data: print(data) 
      sleep(1) 


t = Display() 
t.output = output 
t.start() 
+0

那不是我所問的。對不起,我不清楚。請參閱編輯的問題。 – abc 2011-04-21 17:58:52

+0

我正試圖在嵌入式設備提示符上運行尾部並在linux主機提示符上獲得o/p。 – abc 2011-04-22 23:00:17

0

首先,您需要先登錄設備。 然後您可以在該設備上運行指定的命令。 注意:您要運行的命令必須受該設備支持。

現在使用open()打開串口後,您需要使用Read()找到登錄提示符,然後使用write()寫入用戶名,同樣的事情重複輸入密碼。

一旦你登錄,你現在可以運行你需要執行

相關問題