gpt4 book ai didi

python - XBee API Python 库中缺少超时

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:11 25 4
gpt4 key购买 nike

我对这个库有疑问: https://code.google.com/p/python-xbee/

有一个没有超时的xbee.wait_read_frame()函数。

我正在测试所有串行端口的信号,但如果我无法使尝试超时,则无法做到这一点。

Python 是否可以在不编辑库的情况下升级此功能?或者在库内进行一些小的更改?

ports_available = []

for port in range(0,20):
try:
ser = serial.Serial(port, 9600)
ports_available.append(port)
ser.close()
except:
pass

print(ports_available)

for port in ports_available:
ser = serial.Serial(port, 9600)
bee = ZigBee(ser)
bee.at(command=b"MY")
print(bee.wait_read_frame()) #<----------
ser.close()

最佳答案

看来您需要使用 documentation 第 3 页中描述的异步模式。除非数据帧包含接收它的串行端口的参数,否则这可能会很棘手。如果没有,您将无法将数据连接到接收它的端口。

import serial
import time
from xbee import XBee

serial_port = serial.Serial('/dev/ttyUSB0', 9600)

def print_data(data): """
This method is called whenever data is received
from the associated XBee device. Its first and
only argument is the data contained within the
frame.
"""
print data

xbee = XBee(serial_port, callback=print_data)

while True:
try:
time.sleep(0.001)
except KeyboardInterrupt:
break

xbee.halt()
serial_port.close()

关于python - XBee API Python 库中缺少超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22362766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com