【问题标题】:pyserial - how to continuously read and parsepyserial - 如何连续读取和解析
【发布时间】:2018-03-29 23:11:52
【问题描述】:

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

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

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

【问题讨论】:

  • 你不知道while True:,还是你问的比这更复杂?

标签: python serial-port pyserial sniffing


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2015-06-15
    • 2011-04-01
    • 1970-01-01
    • 2014-05-01
    • 2021-01-04
    • 1970-01-01
    相关资源
    最近更新 更多