迅速入门(视觉标准)Vision Standard

轻松移植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软件套件的工作方式不同!

現實中只有能将这种应用有效地使用并在将来进行扩展,例如集成新的功能或附加的相機,才能将现有的应用程序完全转换为具有完全不同的软件界面的新相机的时间和成本支出才是值得的。但是在IDS sherpa的支持下,移植到IDS peak既简单又省时。仅需几个步骤,即可使IDS软件套件应用程序与兼容USB3和GigE Vision的工业相机一起使用并重新运行,而无需完全更改相机接口。同时,对负责的软件开发人员进行了培训,以使用符合GenICam的新软件开发套件IDS peak来实施新项目。

IDS sherpa 是什麼呢?

IDS sherpa是IDS软件套件用户的“急救”软件包,可在不了解IDS peak或GenICam的情况下,将现有的摄像头应用程序快速转换为与IDS视觉相機一起使用。 因此,帮助包的主要组件是C ++类,可以将其集成到现有IDS Software Suite应用程序中,并且可以说是IDS Software Suite和IDS peak的函数调用之间的适配器。借助与IDS软件套件非常相似的API语法,该适配器有助于将IDS峰值集成到现有应用程序中。 转换表有助于用适配器的功能调用替换IDS软件套件的已知功能。  除了分步说明之外,还有一些源代码示例,这些示例使转换变得易于遵循,并同时培训了如何使用IDS peak

包装内容

  • 分步指南“ IDS sherpa集成”
  • 转换表“IDS软件套件↔IDSsherpa
  • C ++适配器类
  • 代码范例展示了式配器类的不同使用方式(影像撷取,影像记忆体序列,混搭IDS Software Suite & IDS peak多相机配置)

使用IDS sherpa需要注意的事情

  • 不是包裝函式(no wrapper)
    IDS sherpa 并不是IDS 套装软件與GenICam-based IDS peak SDK 或是 GenICam的替换包装!
  • 不是新的接口
    同样,也不会使用适配器类创建新的软件接口,它将进一步维护!
  • 没有严格的政策
    适配器类中的整合沒有特別的規定。源代码展示其建议和可能性。
  • 並非絕對!
    並不是一定需要使用IDS sherpa,並且任何使用它的人都可以在源代码中进行更改!
  • 不是终点,而是一条指引的道路!
    IDS sherpa 仅仅是開路先鋒。目标是使用採用IDS peak 的視覺標準協定相機。IDS sherpa 展示了IDS peak的运作方式以及可能性,并且训练用户使用USB3 Vision 以及GigE Vision 的工业相机。

 

通过开发IDS peak,IDS引入了一种新的,现代的且易于理解的“非常简单!”编程接口,它灵活,独立于硬件且完全符合GenICam。与GenICam本身相比,IDS将重点放在简单的处理和直观的编程体验上。

由於這兩種接口的工作方式以及開發理念的不同,要完整包含IDS套裝軟件跟IDS peak的功能是不可能的任務。原本接口的许多优点都因為通过功能的直接翻译而丧失了。IDS peak SDK未来的優化功能可能也無法保證能保持功能范围相同。

图1IDS sherpa仅涵盖了两个SDK的一部分
图1IDS sherpa仅涵盖了两个SDK的一部分

没有 IDS peak 整合的參考!
透过使用IDS sherpa 适配器 class 来恢复IDS软件套件功能,不能当作IDS peak 整合的参考来使用!通过GenICam 基礎,IDS peak 採用的是不同的功能概念,这意味着许多功能是在不同的方式运行并且被调用。在应用程序级别上有足够的空间来交换接口。另一方面,在功能层级上只能尽可能地恢复功能。在此原子级别上唯一的相容感是类似“wrapper”的熟悉感。但是,藉由IDS sherpa的开源代码,程序员可以自己决定是利用此兼容性的便利,还是将其替换为IDS peak 整合參考。

IDS sherpa 向谁提供帮助?

IDS sherpa特别针对现有IDS用戶,这些客户已经使用IDS软件套件维护了相机应用程序,并且希望或需要快速将其转换以用于标准视觉相机(Vision standard)。通过使用随附的适配器类,现有客户的开发人员可以节省在需要完全熟悉和集成IDS peak或GenICam所需的时间。以下两个用例说明了IDS sherpa的目的:

使用案例1:使用IDS软件套件实现的现有应用程序必须使用符合Vision标准的新IDS像机。
系统集成商负责使用uEye相机的系统和基于IDS软件包的程序代码。该系统需要更新,并应配备更高分辨率的IDS摄像机。但是所需的摄像机型号只能與IDS Vision固件一起使用!這意味著他們已經使用了統一的USB或GigE-Vision視覺標準,因此不再與現有應用程序直接兼容!用戶必須在最短的時間內對系統進行修改,並使其迅速準備好再次使用。他面臨著以最小的成本和時間將應用程序轉換為與該軟件不兼容的全新相機的任務。

使用IDS sherpa,他獲得了一個有效的適配器類,他的開發人員可以毫不費力地集成它。因此,該應用程序將與IDS視覺攝像機以幾乎1:1的比例運行。有關的開發人員同時還要學習瞭如何使用Vision或IDS peak來直接用它開發新項目。借助IDS視覺相機,他的應用程序還可以保持相機圖像的穩定質量。

使用案例2: 在使用UI開頭型號的相機使用的IDS Software Suite應用程序中,IDS視覺相機應該或必須並行操作。
使用IDS軟件套件編程的現有系統應與僅隨Vision固件一起提供的新相機並行工作。在此,操作員也必須在盡可能短的時間內對系統進行現代化改造,並以最小的成本和時間使它迅速重新啟動並運行。他面臨了是否需要或是如何替使用不同相機軟件的視覺軟件的處裡程序做升級。或是是否能替換所有的相機並且單獨使用新的相機軟件。

提供的源代碼示例“ IdsSherpaMulti”演示瞭如何使用IDS sherpa適配器類實現混合操作。使用IDS sherpa,可以快速且經濟高效地滿足此要求。修改后,适配器可以通过IDS软件套件对现有摄像机进行寻址,而视觉摄像机已经可以使用IDS peak。但是,使用IDS sherpa,现有摄像机和新视觉摄像机都以相同的代码库运行,因此继续为现有系统提供相同的质量。

IDS sherpa 提供了哪些協助?

IDS sherpa最大限度地减少了将现有应用程序转换为IDS视觉摄像机的工作。提供的C ++适配器类“IdsSherpa”将IDS软件套件的API函数调用示例性地转换为IDS peak的相应函数。通过将该类集成到IDS软件套件应用程序中,开发人员可以在基于视觉的摄像头软件IDS peak 使用摄像头功能的最重要实现。这样可以节省大量时间,并且仅需进行一些其他修改就可以立即使用IDS视觉摄像机使应用程序恢复运行。有關的開發人員同時還要學習瞭如何使用Vision或IDS peak來直接用它開發新項目。

圖例 2 使用IDS sherpa对现有应用程序进行现代化改造
圖例 2 使用IDS sherpa对现有应用程序进行现代化改造

此示例性演练的起点是Windows开发PC(Windows 7/8/10),该PC具有您现有MFC应用程序的源代码和已安装的IDS软件套件。在技​​术提示中,我们使用uEye源代码示例“IdsSimpleLive”,您可以在IDS软件套件的安装目录中找到该示例。

移植要求

您需要以下组件来示例清单应用程序的移植:

  • IDS软件套件应用程序的现有相機
  • 具有合适功能集的IDS Vision像机
  • IDS peak SDK (from v1.1)
  • IDS sherpa软件包
  • 具有用于C ++版本14的编译器的开发环境(例如Visual Studio 2015或更高版本)

IDS peak是我们對所有使用USB3 Vision和GigE Vision工业相机的最新软件开IDS peak 开发库基于现代C ++类和对象,因此需要同样现代的编译器,该编译器知道并支持所使用的功能。

步驟 2:使用新的编译器创建现有应用程序

为确保所有源和库都存在并且可以使用新的IDE,请首先重建未修改的旧应用程序。进行所有必要的更改,以使用IDS软件套件创建应用程序,并使用清单照相机运行它。

步驟 3:安裝 IDS peak

在开发PC上安装最新的IDS peak SDK,您可以从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软件套件和IDS峰值的并行操作
  • IDS sherpa - Sequence(序列)
    将图像缓冲区序列与IDS peak或IDS Software Suite一起使用。

技巧
在所有源代码示例程序中,预处理器语句“ USE_SHERPA”可用于在具有IDS软件套件和IDS sherpa实现的旧代码之间进行切换。使用适配器时,只有摄像机手柄才能确定是使用IDS peak(IdsSherpa_peak.cpp)还是使用IDS软件套件(IdsSherpa_ueye.cpp)寻址像机。

技巧
如果已连接多台摄像机,请使用测试摄像机的序列号打开它们。为此,通过将序列号作为参数字符串传递来更改“InitCamera”调用。Bsp. "ret = m_hCam->InitCamera("4002890498");"

步驟 5:将IDS sherpa集成到现有应用程序中

现在,可以使用IDS sherpa完成应用程序的主要移植。因此,只需对应用程序的源代码进行一些更改:

  • 在项目属性中集成IDS peak 函式庫和标头,并设置编译器标志
  • 导入IDS sherpa适配器类
  • 用IDS sherpa函数替换IDS Software Suite的函数调用

从现在开始,您的应用程序应该再次编译。IDS sherpa适配器类将具有IDS软件套件的摄像机连接完全更改为具有IDS peak的视觉标准。这意味着您现在可以在应用程序中使用任何兼容GenICam的IDS摄像机。如果要使用其他功能扩展应用程序,现在可以直接使用IDS peak 编程界面来进行扩展。

建议

IDS sherpa对IDS视觉摄像头的IDS软件套件旧应用程序的重新启动和快速运行以及对开发人员进行IDS Peak使用培训方面的培训非常有用。但是,正如本技术提示中所述,IDS 在新相机项目中使用的独立软件产品或新接口。作为IDS软件套件用户,通过遵循此技术提示,您还将熟悉基于GenICam的新IDS peak SDK。借助其易于理解的“非常简单!”编程接口,简化了GenICam的处理。 使用IDS peak作为任何新相机应用程序的接口,并受益于现代软件开发套件的直观编程经验,以及所有兼容USB3 Vision和GigE Vision的IDS工业相机。