Форум сайта python.su
Суть проблемы: есть ПО которое через 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”. Собственно как можно обойти эту проблему ?
Офлайн
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
[code python][/code]
Отредактировано PEHDOM (Апрель 7, 2021 10:45:01)
Офлайн