Найти - Пользователи
Полная версия: Pyserial
Начало » Python для новичков » Pyserial
1
Nghtwsh
Суть проблемы: есть ПО которое через csd модемы опрашивает показания счетчиков, но если модем совершает серию звонков на номера которые не в сети, Мегафон блокирует вызов с этой сим карты до момента перезагрузки модема.
Чтобы этого избежать написал код.

i=1
while i <= 10:
import serial
import time

ser = serial.Serial(port='COM7' , baudrate=9600 , bytesize=8 , parity='N' , stopbits=1 , timeout=1 , rtscts=False ,
dsrdtr=False)
cmd = “AT+CFUN=1,1\r”
ser.write(cmd.encode())
msg = ser.read(64)
print(msg)
time.sleep(300)
print(“reset”)
ser.close()

Если com порт не занят все работает отлично, но если в момент открытия com порта он занят ПО, то вылетает ошибка “serial.serialutil.SerialException: could not open port ‘COM7’: PermissionError(13, ‘Отказано в доступе.’, None, 5”. Собственно как можно обойти эту проблему ?
PEHDOM
Nghtwsh для обработкт ошибок есть try-except
примерно както так:
 while True:
    try:
        ser = serial.Serial(port='COM7' , baudrate=9600 , bytesize=8 , parity='N' , stopbits=1 , timeout=1 , rtscts=False , dsrdtr=False)
    except serial.serialutil.SerialException:
        time.sleep(10) # пауза перед повторным открытием.
    else:
        break       
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB