Как работать с задержкой между последовательной записью и чтением - PullRequest
0 голосов
/ 16 апреля 2019

Мой скрипт на 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)')

Мне кажется, мне нужно что-то подождать, пока модем ответит, и затем предпринять действия с этим, но я не уверен, как мне это сделать.

Спасибо за ваше время

...