Linux에서 여러 인스턴스로 pylon 기반 애플리케이션을 시작할 때 발생할 수 있는 문제#
드문 사용 사례로, 여러 카메라를 관리하기 위해 애플리케이션을 여러 인스턴스로 실행해야 할 수 있습니다.
모든 카메라가 동일한 모델이고, 동일한 펌웨어 버전을 사용하며, 애플리케이션의 모든 인스턴스가 동시에 시작되는 경우 파일 액세스 위반으로 인해 GenICam에서 예외가 발생합니다.
그 이유는 동일한 카메라 모델과 동일한 펌웨어를 사용할 때 GenICam 캐시 파일에 동일한 이름이 사용되기 때문입니다.
Windows용 pylon에 사용되는 GenICam 버전은 이에 대해 보호되지만 Linux 버전은 그렇지 않습니다.
임시 해결 방법 1#
카메라의 XML 캐시 파일을 디스크에 쓰려면 먼저 애플리케이션을 단일 인스턴스로 시작하세요. 특정 카메라에 대한 GenICam 캐시 파일이 하드 디스크에 존재하게 되면 읽기 액세스만 허용되며 예외가 더 이상 발생하지 않습니다.
임시 해결 방법 2#
운영 체제가 ROM에 설치된 경우, 시스템 재부팅 후 시스템이 XML cache 파일을 잃어버리기 때문에 위의 임시 해결 방법은 도움이 되지 않습니다.
이 경우 각 애플리케이션 인스턴스에 개별 GenICam 캐시 디렉토리를 할당하면 문제가 해결됩니다. 예:
GENICAM_CACHE_V2_3=/home/$username/Genicam_cache1 ./GrabGENICAM_CACHE_V2_3=/home/$username/Genicam_cache2 ./Grab
정보
사용 GENICAM_CACHE_V2_3 pylon 4용 및 GENICAM_CACHE_V3_0 pylon 5 이상용. 대상 디렉토리가 존재하고 사용자에게 쓰기 권한이 있는지 확인하세요.