pyserial - 如何连续读取和解析

时间:2018-03-29 23:11:52

标签: python serial-port pyserial sniffing

我正在尝试从通过usb连接的硬件设备捕获数据到运行ubuntu的linux计算机。这是我目前非常简单的脚本:

import serial
ser = serial.Serial('/dev/ttyUB0', 9600)
s = ser.read(10000)
print(s)
  1. 如何连续打印?
  2. 数据以十六进制形式出现,我想解释一下。我应该将连续数据保存到文本文件然后分析另一个脚本吗?从本质上讲,我正在尝试构建一个嗅探器来获取数据并进行解释。
  3. 感谢您的帮助!我是新手:)

1 个答案:

答案 0 :(得分:0)

<强> 1) 只需将阅读和打印放在while True:部分。

示例:

import serial
ser = serial.Serial('/dev/ttyUB0', 9600)
while True:
    s = ser.read(10000)
    print(s)

如果你需要嗅探发送和接收,请查看另一个答案以获取更多信息。 https://stackoverflow.com/a/19232484/3533874

<强> 2) 对于速度,我将保存数据而不处理文件,并让另一个脚本执行十六进制数据的解码/处理。确保以二进制模式写入文件。

示例:

import serial
ser = serial.Serial('/dev/ttyUB0', 9600)

# This will just keep going over and over again
with open('hexdatafile.dat', 'wb') as datafile:
    datafile.write(ser.read(10000))