2014-09-12 3 views
1

Я программировал на python, чтобы разработать библиотеку для обработки последовательных подключений. Так получилось, что процесс python не заканчивается в конце моей программы, и в следующий раз, когда я запустил свою программу и попытаюсь открыть последовательный порт (который я обычно закрыл всегда), он возвращается с ошибкой Windows 5, Access отказано.Ошибка доступа к серийному порту

Если я вручную зарегистрирую панель задач и уничтожу старый процесс python, я могу подключиться к COM-порту. Я хочу обработать это исключение программно: 1. Поиск старого процесса, поддерживающего мой последовательный порт, и его уничтожение с помощью кода. 2. У меня есть операция очистки до того, как я начну свой код.

Может ли кто-нибудь предложить некоторые методы? , кстати я могу работать только с Python 2.7

ответ

1

Это ограничение, с которым сталкиваются все программы. (Я тоже это делал с дорогостоящими коммерческими продуктами)

Возможно, вы попытаетесь отключить и переустановить последовательный адаптер, но, кроме того, лучше всего просто выполнить правильную обработку исключений (для чего подходит питон) и убедитесь, что вы всегда закрываете порт перед выходом из программы.

Простейшая форма этого будет:

try: 
    # all your code... 
except Exception as e: 
    print("unhandled exception: {}".format(str(e)) 
finally: 
    # close the serial port... 

Даже в том случае, если у вас нет обработчика для конкретного исключения, вы всегда гарантированно поразить код, который будет закрывать/выпуск последовательный порт.

Смежные вопросы