pyserial - 如何连续读取和解析

pyserial - how to continuously read and parse

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

import serial
ser = serial.Serial('/dev/ttyUB0', 9600)
s = ser.read(10000)
print(s)
  1. 如何连续打印这个?
  2. 数据是十六进制的,我想解释一下。我是否应该将连续数据保存到文本文件中,然后再进行另一个脚本分析?本质上,我正在尝试构建一个嗅探器来获取数据并进行解释。

感谢您的帮助!我是新手 :)

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

示例:

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

如果您需要嗅探发送和接收,请查看另一个答案以获取更多信息。

2) 为了提高速度,我会在不处理的情况下将数据保存到文件中,并让其他脚本执行十六进制数据的 decoding/processing。确保以二进制模式写入文件。

示例:

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))