비전 표준으로의 빠른 방법

IDS 소프트웨어 제품군 인벤토리 어플리케이션의 쉬운 포팅

IDS peak, IDS USB3 및 GigE-Vision 산업용 카메라는 이제 완전한 소프트웨어 지원을 제공합니다. 따라서 IDS 고객은 비전 세계에서도 새로운 카메라 프로젝트에 대한 쉬운 취급과 무제한 제조업체 지원의 혜택을 받습니다. 그러나 기존 고객이 기존의 IDS 소프트웨어 제품군 어플리케이션을 새로운 표준 비전 카메라 모델로 현대화할 계획이 있거나 현대화해야 하는 경우, 새로운 소프트웨어 기반을 숙지하고 이를 운영에 투입하는 데 시간이 많이 소요되는 프로세스는 지정된 시간과 비용을 빠르게 초과할 수 있습니다. 그러므로, IDS는 전환하는 모든 사람을 위한 지원 패키지를 제공합니다. IDS sherpa를 사용하면, IDS Software Suite 인벤토리 어플리케이션이 몇 단계 만에 비전 표준과 호환되며 빠르게 다시 실행됩니다.

새로운 소프트웨어 개발 키트 IDS peak는 EMVA (GenICam) 및 AIA (GigE Vision, USB3 Vision)의 비전 표준에 기반합니다. 현대적인 개념으로, 새로운 카메라 소프트웨어는 하부 구조 에서만 볼 수 없는 많은 이점들을 제공합니다. 프로그래밍 API도 근본적으로 재설계되어 오늘날의 요구에 맞게 조정되었습니다. 간단하게 말하면, 기존 IDS Software Suite과는 새롭고 다르게 작동합니다!

기존 어플리케이션을 완전히 다른 소프트웨어 인터페이스를 갖는 새 카메라로 완전히 전환하는 데 드는 시간과 비용은, 이 어플리케이션을 생산적으로 사용하고 향후 확장하는 경우, 예를 들어, 새로운 기능들 또는 추가 카메라들을 통합하는 경우에만 실질적으로 가치 있습니다. 그러나 IDS sherpa의 지원으로 IDS peak로의 전환 이 간단하고 시간이 절약됩니다. 카메라 인터페이스를 완전히 변경하지 않고도 USB3 및 GigE Vision 호환 산업용 카메라와 함께 작동하는 IDS Software Suite 어플리케이션을 다시 실행하는 데 몇 단계만 거치면 됩니다. 동시에, 책임 소프트웨어 개발자는 새로운 GenICam-호환 소프트웨어 개발 키트 IDS peak로 새로운 프로젝트를 구현하도록 교육을 받습니다.

IDS sherpa는 무엇일까요?

IDS sherpa는 IDS Software Suite 사용자가 IDS peak 또는 GenICam을 알지 못해도 IDS 비전 카메라와 함께 작동하도록 기존 카메라 어플리케이션을 신속하게 전환할 수 있는 "응급 처치(first aid)" 패키지입니다. 따라서, 도움 패키지의 주요 구성 요소는, 기존 IDS Software Suite 어플리케이션에 통합될 수 있는 C++ 클래스이고, 달리 표현하면, IDS peak 및 IDS Software Suite의 함수 호출들 간의 어댑터로서 작동합니다. IDS Software Suite과 매우 유사한 API 구문을 통해, 어댑터는 기존 어플리케이션으로의 IDS peak 통합을 용이하게 합니다. 변환 표는 IDS Software Suite의 알려진 기능을 어댑터의 함수 호출로 대체하는 것을 도와줍니다.   단계별 지침 외에도, 소스 코드 예시들이 있어, 전환을 쉽게 수행할 수 있고, IDS Peak로 작업하며 동시에 훈련할 수 있습니다.

패키지 내용

  • 단계별 가이드 "IDS sherpa 통합"
  • 변환 표"IDS Software Suite ↔ IDS sherpa
  • C++ 어댑터 클래스
  • 소스 코드 예시들은, 상이한 사용 사례들(단순한 이미지 획득, 이미지 메모리 시퀀스, 멀티-카메라 혼합 작업 IDS Software Suite & IDS peak)에서, 어댑터 클래스의 사용을 설명합니다.

IDS sherpa가 아닌 것은 무엇인가요?

  • 래퍼(wrapper) 없음
    IDS sherpa는 새로운 GenICam 기반 IDS peak SDK 또는 GenICam 자체를 위한 IDS Software Suite의 완전한 1:1 래퍼가 아닙니다!
  • 새로운 인터페이스 없음
    또한 어댑터 클래스를 사용하여 새로운 소프트웨어 인터페이스가 생성되지 않을 것이며, 이는 더 유지될 겁니다!
  • 엄격한 정책 없음
    어댑터 클래스의 구현은 유일한 규칙을 따르지 않습니다. 소스 코드는 오히려 제안과 가능성을 보여줍니다.
  • 필수가 아닙니다!
    누구도 IDS sherpa를 사용해야만 하는 것은 아니며, 이를 사용하는 누구나 소스 코드를 변경할 수 있습니다!
  • 목적지가 아니라, 그곳이 가는 길!
    IDS sherpa는 단순한 개척자입니다. IDS peak와 함께 표준 비전 카메라를 사용하는 것이 목표입니다. IDS sherpa는 IDS peak의 작동 방법과 가능성을 보여주므로, 사용자가 USB3 Vision 및 GigE Vision 호환 산업용 카메라를 다루도록 교육합니다.

IDS peak를 개발함으로써, IDS는 새롭고 현대적이며 이해하기 쉬운 "정말 쉽습니다!  유연하고 하드웨어 독립적이며 GenICam과 완전히 호환되는 프로그래밍 인터페이스를 소개합니다. GenICam 자체와 비교하여, IDS는 간단한 처리와 직관적인 프로그래밍 경험에 초점을 맞춥니다.

IDS Software Suite 및 IDS peak 기능의 완전한 커버(coverage)는, 두 인터페이스의 다른 개념과 작동 방법으로 인해 불가능하며, 앞으로도 불가능할 것입니다. 기존 인터페이스의 많은 장점들은, 기능의 직접적인 변환을 통해 손실되었습니다. IDS Peak SDK의 향후 개선 사항은 기능 범위를 동일하게 유지하지 못할 수도 있습니다.

IDS sherpa는 두 SDK 중 일부만 커버합니다
IDS sherpa는 두 SDK 중 일부만 커버합니다

IDS peak 참조 구현 없음!
IDS sherpa 어댑터 클래스에 의한 IDS Software Suite 기능의 복원은 IDS peak에 대한 참조 구현으로 이해되어서는 안 됩니다! IDS peak는 GenICam 기반을 통한 다른 기능적인 개념을 따르며, 이는 많은 기능들이 실행되고 다르게 호출되는 것을 의미합니다. 어플리케이션 수준에서는 인터페이스를 최적으로 교환할 수 있는 충분한 공간이 있습니다. 반면에, 기능 수준은 많은 노력을 기울여야만 복원될 수 있습니다. 이 원자 수준(atomic level)에서 호환성의 유일한 의미는 "래퍼"와 유사한 편안함입니다 . 그러나, IDS sherpa의 오픈 소스 코드 덕분에, 프로그래머는 이 호환성의 편리함을 활용할 지 또는 IDS peak 참조 구현으로 대체하여 미래 보장형으로 만들 지 스스로 결정할 수 있습니다.

IDS sherpa는 누구를 돕고 있나요?

IDS sherpa는 IDS Software Suite으로 이미 카메라 어플리케이션을 유지하고 있고, 이를 표준 비전 카메라와 함께 사용하기 위해 신속하게 전환하기를 원하거나 필요로 하는 기존 IDS 고객을 대상으로 합니다. 포함된 어댑터 클래스를 사용함으로써, 기존 고객들 중 개발자는 IDS peak 또는 GenICam의 완전한 친화 및 통합에 필요한 시간을 절약할 수 있습니다. 다음 두 가지 사용 사례는 IDS sherpa의 목적을 보여줍니다:

사용 사례 1: IDS Software Suite으로 구현된 기존 어플리케이션에는, 새로운 Vision 표준 준수 IDS 카메라가 장착되어 있어야 합니다.
시스템 통합자는 uEye 카메라를 갖는 시스템과 IDS Software Suite에 기반하는 프로그램 코드를 담당합니다. 시스템은 업데이트되어야 하며, 고해상도 IDS 카메라가 장착되어 있어야 합니다. 그러나 요구된 카메라 모델은 IDS Vision 펌웨어에서만 사용할 수 있습니다! 이는 이미 새로운 균일하고 미래 지향적인 USB 또는 GigE-Vision 표준을 사용하고 있으므로 더 이상 기존 어플리케이션과 직접 호환되지 않는다는 것을 의미합니다! 작업자는 가능한 짧은 시간에 시스템을 현대화하고 신속하게 다시 사용할 수 있도록 해야 합니다. 그는 최소한의 비용과 시간으로 소프트웨어와 호환되지 않는 완전히 새로운 카메라로 어플리케이션을 전환하는 작업에 직면합니다.
IDS sherpa를 통해, 그는 개발자가 적은 노력으로 통합할 수 있는 작동하는 어댑터 클래스를 얻습니다. 따라서 어플리케이션은 IDS 비전 카메라와 거의 1:1로 실행됩니다. 관심이 있는 개발자는 Vision 또는 IDS peak를 사용하여 직접 새 프로젝트를 개발하는 방법도 배웁니다. IDS 비전 카메라로, 그의 어플리케이션은 카메라 이미지의 일관된 품질을 유지합니다.

사용 사례 2: UI 카메라를 갖는 기존 IDS Software Suite 어플리케이션에서, IDS 비전 카메라는 병렬로 작동해야 하거나 작동해야만 합니다.
IDS Software Suite으로 프로그래밍된 기존 시스템은, 비전 펌웨어로만 제공되는 새 카메라와 병렬로 작동해야 합니다. 여기에서도, 작업자는 가능한 가장 짧은 시간에 시스템을 현대화하고, 최소한의 비용과 시간으로 신속하게 시스템을 가동하고 다시 실행해야 합니다. 그는 자신의 소프트웨어 프로세스를 IDS Software Suite에 더하여 다른 카메라 소프트웨어로 업그레이드할 지 여부와 기존 카메라들을 모두 교체하고 하나의 새 카메라 소프트웨어를 활용할 지 여부에 대한 문제에 직면합니다.
제공된 소스 코드 예시 "IdsSherpaMulti"는 IDS sherpa 어댑터 클래스로 혼합 작업을 구현하는 방법을 보여줍니다. IDS sherpa로, 이 요구 사항을 빠르고 비용 효율적으로 충족시킬 수도 있습니다. 수정 후, 기존 카메라는 IDS Software Suite을 통해 어댑터로 처리되는 반면, 비전 카메라는 이미 IDS peak로 작동합니다. 그러나 IDS sherpa를 통해, 기존 카메라와 새로운 비전 카메라 모두가 같은 코드 기반으로 작동하므로 기존 시스템에 동일한 품질을 계속 제공합니다.

IDS sherpa가 어떻게 도울 수 있나요?

IDS sherpa는 기존 어플리케이션을 IDS 비전 카메라로 전환하는 노력을 최소화합니다. 제공된 C++ 어댑터 클래스 "IdsSherpa"는 IDS Software Suite의 API 함수 호출을 예시적으로 IDS peak의 해당하는 함수로 변환합니다. 클래스를 IDS Software Suite 어플리케이션에 통합함으로써, 개발자는 비전 기반 카메라 소프트웨어 IDS peak로 카메라 기능들의 가장 중요한 구현을 이미 사용할 수 있습니다. 이를 통해 많은 시간을 절약할 수 있으며 몇 가지 추가 수정만으로 어플리케이션을 IDS 비전 카메라로 즉시 다시 작동시킬 수 있습니다. 또한, 관심이 있는 개발자는 어떻게 Vision 또는 IDS peak를 사용하여 직접 새 프로젝트를 개발하는 지를 이미 배웠습니다.

IDS sherpa로 기존 어플리케이션 현대화
IDS sherpa로 기존 어플리케이션 현대화

이 예시 연습의 시작점은 기존 MFC 어플리케이션의 소스 코드 및 설치된 IDS Software Suite을 갖는 Windows 개발 PC (Windows 7/8/10)입니다. 테크팁에서, IDS Software Suite의 설치 디렉토리에서 찾을 수 있는 uEye 소스 코드 예시 "IdsSimpleLive"를 사용합니다.

포팅(porting) 요구사항

인벤토리 어플리케이션의 예시적인 포팅을 위해 다음 구성 요소들이 필요합니다:

  • IDS Software Suite 어플리케이션의 기존 카메라
  • 적절한 특징 세트를 갖는 IDS Vision 카메라
  • IDS peak SDK(v1.1부터)
  • IDS sherpa 소프트웨어 패키지
  • C++ 버전 14 용 컴파일러를 갖는 개발 환경 (예 : Visual Studio 2015 이상)

IDS peak는 모든 USB3 Vision 및 GigE Vision 호환 산업용 카메라를 위한 최신 소프트웨어 개발 키트입니다. IDS peak 개발 라이브러리는 최신 C++ 클래스 및 오브젝트를 기반으로 하므로, 사용되는 기능을 알고 지원하는 동등하게 최신 컴파일러가 필요합니다.

2 단계: 새 컴파일러로 기존 어플리케이션을 생성하세요

모든 소스와 라이브러리가 존재하고 새 IDE에서 작동하는지 확인하려면, 먼저 수정되지 않은 레거시 어플리케이션(legacy application)을 다시 빌드하세요. IDS Software Suite으로 어플리케이션을 생성하고 인벤토리 카메라로 실행하기 위해 필요한 모든 변경을 수행하세요.

3 단계: IDS peak를 설치하세요.

현재 IDS Peak SDK를 개발 PC에 설치하세요. IDS 웹 사이트에서 다운로드할 수 있습니다. 모든 것이 설정되면 새 IDS 비전 카메라를 테스트하세요. 이렇게 하려면, 배달의 범위에 포함된 IDS Vision Cockpit을 시작하고 연결된 카메라를 여세요. 카메라에 라이브 이미지가 표시되면, 어플리케이션 포팅을 계속할 수 있습니다.

4 단계: (선택 사항) IDS sherpa 샘플 어플리케이션을 생성하고 테스트하세요.

이 시점에서 제공된 샘플 어플리케이션을 사용하여 IDS sherpa, IDS peak, 새 IDE 및 모든 필요한 소스 코드 파일의 완전성을 테스트할 수 있습니다. 필요한 모든 변경이 이미 이루어졌습니다. 해당 Visual Studio 예시 프로젝트를 열고 어플리케이션을 생성하세요. 예시는 IDS sherpa 또는 IDS peak를 사용하여 다른 기본 기능들을 구현하는 방법을 보여줍니다. 예시를 올바르게 생성하고 실행할 수 있다면, 모든 요구 사항이 충족되고 IDS peak로 IDS sherpa가 PC에서 작동하는 것이 보장됩니다. 이제 어플리케이션 포팅을 계속할 수 있습니다.

  • IDS sherpa - 프리징(Freeze)
    카메라에서 단일 이미지를 획득하여, 대화 상자에서 렌더링(render)하세요.
  • IDS sherpa - 라이브(Live)
    창 메시지를 사용하여 대화 상자에 연속 카메라 라이브 이미지를 표시하세요.
  • IDS sherpa - 멀티(Multi)
    IDS sherpa를 카메라 기본 클래스로 하나의 어플리케이션에서 IDS Software Suite 및 IDS peak의 병렬 작동
  • I DS sherpa - 시퀀스(Sequence)
    IDS peak 또는 IDS Software Suite으로 이미지 버퍼 시퀀스를 사용하세요.


모든 소스 코드 예시 프로그램에서, 전처리기 명령문 "USE_SHERPA"를 사용하여 IDS Software Suite을 갖는 레거시 코드와 IDS sherpa 구현 간에 전환할 수 있습니다. 어댑터를 사용할 때, 오직 카메라 핸들 이, 카메라가 IDS peak (IdsSherpa_peak.cpp) 또는 IDS Software Suite (IdsSherpa_ueye.cpp)으로 다뤄지는지 여부를 결정합니다.


여러 대의 카메라를 연결했으면, 테스트 카메라의 일련 번호를 사용하여 엽니다. 이렇게 하려면, 일련 번호를 파라미터 문자열로 전달하여 "InitCamera" 호출을 변경합니다. 예시 "ret = m_hCam->InitCamera("4002890498");"

5 단계: IDS sherpa를 기존 어플리케이션에 통합하기

이제 IDS sherpa를 사용하여 어플리케이션의 메인 포팅을 수행할 수 있습니다. 따라서 어플리케이션의 소스 코드를 몇 가지만 변경하면 됩니다:

  • 프로젝트 속성에 IDS peak 라이브러리 및 헤더를 통합하고 컴파일러 플래그를 설정하세요.
  • IDS sherpa 어댑터 클래스 가져오기
  • IDS Software Suite의 함수 호출을 IDS sherpa 함수로 대체하세요

이제부터 어플리케이션이 다시 컴파일해야 합니다. IDS sherpa 어댑터 클래스는 IDS Software Suite과의 카메라 연결을 IDS peak를 갖는 비전 표준으로 완전히 변경합니다. 즉, 이제 어플리케이션에서 GenICam 호환 IDS 카메라를 사용할 수 있습니다. 추가 특징으로 어플리케이션을 확장하려면, 이제 IDS peak 프로그래밍 인터페이스를 사용하여 직접 확장할 수 있습니다.

권장

IDS sherpa는 IDS 비전 카메라를 사용하여 IDS Software Suite 레거시 어플리케이션을 신속하게 다시 실행하고, IDS peak 사용에 대한 개발자 교육을 제공하는 데 매우 유용합니다. 그러나 이 테크팁에서 설명된 바와 같이, IDS sherpa는 새로운 카메라 프로젝트에서 사용해야 하는 독립형 소프트웨어 제품이나 새로운 인터페이스가 아닙니다. 의식 있는 IDS Software Suite 사용자로서, 여러분은 이 테크팁을 따라함으로써, 새로운 GenICam 기반 IDS peak SDK에 대해서도 알게 되었습니다. 이해하기 쉬운 "정말 쉽습니다!"  프로그래밍 인터페이스로, GenICam의 처리를 단순화합니다.   IDS peak를 임의의 새로운 카메라에 대한 어플리케이션의 인터페이스로 사용하고, 완전 새로운 USB3 Vision 및 GigE Vision 호환되는 IDS 산업용 카메라로 최신 소프트웨어 개발 키트의 직관적인 프로그래밍 경험의 이점을 누리세요.