화인스텍 로고

지식정보

제품사용 매뉴얼

eBUS SDK프로그래밍 가이드

2022-10-21

1. SDK 소개

 

Pleora에서 제공하는 eBUS SDK는 비전 시장에서 수십 년간의 전문 지식을 바탕으로 구축된 Vision SDK 입니다.

JAI 카메라는 Pleora eBUS SDK를 사용하여 비전 애플리케이션을 개발 할 수 있습니다.

eBUS SDK 주요 구성

eBUS Player

Gige Vision과 USB3 Vision 카메라 호환이 가능한 프로그램 입니다.

카메라 제어 및 영상 취득이 가능합니다.

eBUS Universal Pro Driver

NIC 및 USB 3.0 컨트롤러의 기존 드라이버 성능을 향상 합니다.

CPU 사용률을 최소화하면서 이미지 수집 처리량 및 성능을 높이고 대기 시간과 지터를 줄여주는 역할을 합니다.

2. SDK 환경 설정

 

c++

‘프로젝트 속성 > C/C++ > 일반 > 추가 포함 디렉터리’에 라이브러리 include 경로를 추가합니다.

기본 경로: C:\Program Files\JAI\eBUS SDK\Includes 또는 $(PUREGEV_ROOT)\Includes

‘프로젝트 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리’에 라이브러리 lib 경로를 추가합니다.

기본 경로: C:\Program Files\JAI\eBUS SDK\Libraries 또는 $(PUREGEV_ROOT)\Libraries

C#

플랫폼에 맞는 ‘프로젝트 > 참조’에 PvDotNet.dll과 PvGUIDotNet.dll을 추가합니다.

기본 경로: C:\Program Files (x86)\Common Files\Pleora\eBUS SDK\PvDotNet.dll

및 PvGUIDotNet.dll

다음의 네임스페이스를 추가합니다.

3. 예제 코드 설명

 

공식 예제 코드

기본 설치 경로에 C++ 및 C# 예제 코드가 제공 됩니다.

C++/C# 폴더 별 예제 코드 문서가 제공 됩니다.

주요 예제 코드

PvStreamSample

카메라를 어떻게 연결/해제하고 영상을 취득하는지 보여주는 콘솔 버전의 예제 코드.

스트리밍을 위한 버퍼 리스트를 직접 생성하고 해제하여 버퍼를 관리하는 방식.

PvPipelineSample

카메라를 어떻게 연결/해제하고 영상을 취득하는지 보여주는 콘솔 버전의 예제 코드.

PvPipeline class를 사용하여 버퍼를 관리하는 방식.

SimpleGUIApplication

카메라를 어떻게 연결/해제하고 영상을 취득하는지 보여주는 MFC Dialog 버전의 예제 코드.

DeviceFinder

시스템에 존재하는 카메라를 탐색하는 예제 코드.

ConnectionRecovery

카메라 구동 중 연결이 끊어졌을 때의 이벤트를 발생하고, 어떻게 다시 연결하는지 보여주는 예제 코드.

GenICamParameters

Communication, Stream 그리고 카메라 파라미터에 어떻게 접근하는지 보여주는 예제 코드.

 

LostAndRecovery

동작 설명

카메라를 연결하면 DeviceLostThread가 동작하고 , Device Lost 상태를 체크 합니다.

만약 , Device Lost가 발생하면 카메라 핸들을 해체 (Close) 합니다.

그리고 Re_Open을 N회 시도 합니다.

동작 흐름

MultiCamera_Async

동작 설명

카메라가 이미지를 그랩(Grab)하는 것과 이미지 버퍼를 취득하는 동작이 비동기적(Asynchronous)으로 진행됩니다.

최대 4대의 카메라를 연결할 수 있도록 구현되어 있습니다.

OnBnClickedBtnConnection() 함수에 카메라 연결이 구현되어 있습니다.

SetBufferThread(true)를 호출하여 카메라 객체 내부의 버퍼 스레드를 구동합니다.

내부 버퍼 스레드가 구동하여, 카메라 객체는 가장 마지막 버퍼를 보관하고 있습니다.

이미지 그랩 여부는 m_grabDone 핸들로 확인합니다.

카메라 연결 후 Main Dialog에서 DisplayThread를 구동합니다.

버튼의 체크 여부에 따라 Mono(Bayer8) 또는 RGB24 영상이 그려집니다.

Color Conversion이 필요한 경우 체크합니다.

SingleCamera_Sync

동작 설명

카메라가 이미지를 그랩(Grab)하는 것과 이미지 버퍼를 취득하는 동작이 동기적(Synchronous)으로 진행됩니다.

1대의 카메라를 연결할 수 있도록 구현되어 있습니다.

OnBnClickedBtnConnection() 함수에 카메라 연결이 구현되어 있습니다.

SetBufferThread(false)를 호출합니다.

내부 버퍼 스레드를 사용하지 않는 설정입니다.

Start() 후 Grab() 함수를 호출하여 타임아웃 시간 내에 버퍼를 취득합니다.

Acquisition Start인 Start() 함수를 호출합니다.

Software Trigger Mode라면 트리거 이벤트인 를 호출합니다.

Color Conversion이 필요한 경우 ColorConversion() 함수를 호출합니다.

첨부파일