发送AT命令并在'确定'不在回应中

时间:2016-11-04 13:10:25

标签: python pyserial at-command

我无法在任何地方找到答案,所以我来找你,希望有人可以帮助我。

我有一个Python脚本,通过串行连接将AT命令发送到ZigBee模块,然后读取模块提供的答案。实际上我已经可以捕捉并阅读这个答案,但有时我会有不受欢迎的字符结束它或根本没有响应。我的目标是拥有一个包含答案的完美输出,只有它。

Here is an example of this behavior

因此,为了避免这种情况,我尝试逐个字符地读取模块响应,直到它包含“确定”为止。或者命令返回的另一条预期消息表明它已经结束,但问题是我的代码从那时起无限循环。

我使用的方法:

def sendAtCommand(command):

# vars
response = ''

if ser.inWaiting() > 0:
    #flush input buffer, discarding all its contents
    ser.flushInput()
    #flush output buffer, aborting current output
    #ser.flushOutput()

ser.write(command.encode('ascii')+'\r')
#response = ser.read(size=1024)

# while True:
    # response = ser.read(size=1024)
    # if 'OK' in response:
        # break

while True:
    response += ser.read(size=1)
    print(response)

    if 'OK' in response:
        break

print('--------------')
print('Msg received : ')
print('--------------')
print(response)
print('--------------')

0 个答案:

没有答案