2014-09-12 4 views
1

저는 직렬 연결을 처리하기위한 라이브러리를 개발하기 위해 Python으로 코딩했습니다. 그래서 파이썬 프로세스가 내 프로그램의 끝으로 끝나지 않고 다음 번에 내 프로그램을 실행하고 직렬 포트 (나는 항상 닫았습니다)를 열려고하면 Windows 오류 5와 함께 반환됩니다. Access 거부되었습니다.직렬 포트 액세스가 거부되었습니다.

작업 표시 줄을 수동으로 체크인하고 오래된 python 프로세스를 종료하면 com 포트에 연결할 수 있습니다. 이 예외를 프로그래밍 방식으로 다음과 같이 처리하고 싶습니다. 1. 직렬 포트를 보유하고있는 이전 프로세스를 찾고 코드를 통해 종료합니다. 2. 코드를 시작하기 전에 정리 작업이 필요합니다.

어떤 기술을 제안 할 수 있습니까? 필자는 파이썬 2.7에서만 작동합니다.

답변

1

이것은 모든 프로그램이 실행되는 제한 사항입니다. (비싼 상용 제품에서도 이런 일이 발생했습니다.)

직렬 어댑터를 분리하고 다시 연결해보십시오.하지만 별개로 적절한 예외 처리 (파이썬이 잘 맞음)를 수행하는 것이 가장 좋습니다. 프로그램을 종료하기 전에 항상 포트를 닫아야합니다.

이의 가장 단순한 형태는 다음과 같습니다

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

비록 당신이 특정 예외 핸들러가없는 경우에, 당신은 항상/해제를 닫습니다 코드를 칠 보장하고 있습니다 직렬 포트.

관련 문제