2011-04-17 44 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()写入用户名,同样的事情重复输入密码。

一旦你登录,你现在可以运行你需要执行

相关问题