如何在串行写入和读取之间延迟工作

时间:2019-04-16 13:42:24

标签: python python-3.x pyserial modem

我的python脚本正在使用调制解调器,该过程的第一步是检查是否有足够的信号。通过AT命令,我可以向调制解调器询问信号强度,因此我制作了一个循环,不断询问信号强度,然后在信号强度足够大时继续操作。

如果有可用信号,则可以正常工作。问题是没有信号时。我已经尝试增加睡眠时间,但似乎不起作用。

Signal = False

    while Signal is not True:    
        x = ser.readline()
        y = x.rstrip()
        z = y.decode('utf-8')
        ser.write(str.encode('AT+CSQ?\r'))
        time.sleep(9)
        if (z.startswith("+CSQ")):
            a = int(z[5])
            if a >= 3:
                Signal = True
                time.sleep(4)
                enough_signal_write()
            else:
                checking_signal

在长循环中,就像10次尝试捕获信号一样,它似乎工作异常,就像有时忽略信号是否足够强,然后最终捕获并运行。 (我可以通过“ print(z)”行通过调制解调器输出的奇怪顺序来检查这一点)

我感觉我需要一些东西来等待调制解调器响应,然后对此采取措施,但是我不确定该怎么做。

感谢您的时间

0 个答案:

没有答案