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)
只需将阅读和打印放在 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))
我正在尝试从通过 USB 连接到我的 linux 运行 ubuntu 计算机的硬件设备捕获数据。这是我目前拥有的非常简单的脚本:
import serial
ser = serial.Serial('/dev/ttyUB0', 9600)
s = ser.read(10000)
print(s)
- 如何连续打印这个?
- 数据是十六进制的,我想解释一下。我是否应该将连续数据保存到文本文件中,然后再进行另一个脚本分析?本质上,我正在尝试构建一个嗅探器来获取数据并进行解释。
感谢您的帮助!我是新手 :)
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))