用于配置XBee模块的Python脚本在raspberry pi上失败

用于配置XBee模块的Python脚本在raspberry pi上失败,python,configuration,raspberry-pi,xbee,Python,Configuration,Raspberry Pi,Xbee,我有一个python脚本,我想用它来配置一些XBee模块。当通过连接到计算机时,它可以完美地工作,但当通过pi板的薄片连接到树莓pi时,它会失败 我已经将问题缩小到无法进入命令模式,在发送++之后,xbee从未发送OK消息。以下是相关代码: ... CC = '+' GT = '1.1' # Tried different values here ... def startCommandMode(self): self.emptyBuffer() # Tried with and wi

我有一个python脚本,我想用它来配置一些XBee模块。当通过连接到计算机时,它可以完美地工作,但当通过pi板的薄片连接到树莓pi时,它会失败

我已经将问题缩小到无法进入命令模式,在发送++之后,xbee从未发送OK消息。以下是相关代码:

...
CC = '+'
GT = '1.1' # Tried different values here
...

def startCommandMode(self):
    self.emptyBuffer() # Tried with and without this line
    sleep(self.GT) # Tried with and without this line
    self.ser.write(self.CC + self.CC + self.CC)
    sleep(self.GT)
    return self.getReply() == 'OK'

...

def getReply(self):
    count = 0
    reply = ''
    while True:
        char = self.ser.read()
        if char == '\r':
            break
        if len(char) == 0:
            return None
        reply += char

    return reply
如果需要,可在上获取完整的源代码

我知道xbee模块、raspberry pi或pi板片没有问题,因为如果我使用picocom-lc/dev/ttyam0手动尝试它,它工作得非常好。

需要检查的一些事项:

你得到什么回应了吗

您是否在XBee上启用了流量控制?确保D6和D7设置为0,因为Raspberry Pi串行端口没有流量控制

Python代码是为流控制配置的吗?它可能正在等待从未断言的CTS信号

你能试着在Raspberry Pi的USB端口上使用XBee开发板吗

使用以下命令:

....
if args.common:
    args.at = ['ID', 'CH', 'MY', 'DL', 'DH', 'AP'] + args.at
xbee = XBee(args.port, args.baud);
sleep(2)
xbee.CC = args.CC
xbee.GT = args.GT
....
....
我想我需要更多的时间来初始化串行端口,这就是为什么我使用这个延迟 . 也适用于透明模式,因此在端口初始化后添加延迟

我希望这对你合适。对我来说,问题已经解决了

比尔。
Manel.

您能确认sleep实际上是睡眠1.1秒吗?xbee模块上的默认保护时间是1秒,在此之前您必须确保没有读取发生。我已经尝试了各种各样的值,最长可达5秒,但没有成功,因此计时中的一点错误是可以接受的。在我的桌面上,所有这些值都按预期工作。