Easy porting of an IDS Software Suite inventory application
With IDS peak, IDS USB3 and GigE-Vision industrial cameras now also have full software support. IDS customers therefore benefit from easy handling and unlimited manufacturer support for new camera projects, even in the vision world. But if existing customers plan or need to modernize their established IDS Software Suite applications with new standard vision camera models, the time-consuming process of familiarizing themselves with a new software basis and putting it into operation can quickly exceed the specified time and cost frame. IDS therefore provides an assistance package for anyone switching over. With IDS sherpa, an IDS Software Suite inventory application is compatible with vision standards in just a few steps and quickly productive again.
The new software development kit IDS peak is based on the vision standards of EMVA (GenICam) and AIA (GigE Vision, USB3 Vision). With modern concepts, the new camera software offers many advantages that are not only found in the substructure. The programming API was also fundamentally redesigned and adapted to today's needs. To put it simple, it is new and works differently than the established IDS Software Suite!
Time and cost expenditure to convert an existing application completely to new cameras with a completely different software interface is actually only worthwhile if this application is to be used productively and expanded in the future, for example to integrate new functionalities or additional cameras. But with the support of IDS sherpa, the conversion to IDS peak is simple and time-saving. It only takes a few steps to get an IDS Software Suite application working with USB3 and GigE Vision compliant industrial cameras up and running again without having to completely change the camera interface. At the same time, the responsible software developers are trained to implement new projects with the new GenICam-compliant software development kit IDS peak.
What is IDS sherpa?
IDS sherpa is a "first aid" package for users of the IDS Software Suite to quickly convert existing camera applications to operate with IDS vision cameras without knowing IDS peak or GenICam. The main component of the help package is therefore a C++ class that can be integrated into existing IDS Software Suite applications and operates, so to speak, as an adapter between function calls of the IDS Software Suite and IDS peak. With an API syntax very similar to the IDS Software Suite, the adapter facilitates IDS peak integration into existing applications. A translation table helps to replace known functionalities of the IDS Software Suite with function calls of the adapter. In addition to step-by-step instructions, there are also source code examples, making the changeover easy to follow and at the same time training in working with IDS peak.
- Step-by-step guide "IDS sherpa Integration"
- Translation table "IDS Software Suite ↔ IDS sherpa
- C++ adapter class
- Source code examples demonstrate the use of the adapter class in different use cases (simple image acquisition, image memory sequences, multi-camera mixed operation IDS Software Suite & IDS peak)
What is IDS sherpa not?
- no wrapper
IDS sherpa is not a complete 1:1 wrapper of the IDS Software Suite for the new GenICam-based IDS peak SDK or for GenICam itself!
- no new interface
Also no new software interface will be created with the adapter class, which will be maintained further!
- no strict policy
The implementation in the adapter class does not follow a unique rule. The source code rather shows suggestions and possibilities.
- not a MUST!
Nobody has to use IDS sherpa and whoever uses it is allowed to make changes in the source code!
- not the destination, but the way there!
IDS sherpa is merely a pioneer. The use of standard vision cameras with IDS peak is the goal. IDS sherpa shows the working method and possibilities of IDS peak and thus trains the user to handle USB3 Vision and GigE Vision compliant industrial cameras
By developing IDS peak, IDS is introducing a new, modern and easy to understand "It's so easy! programming interface that is flexible, hardware-independent and fully GenICam-compliant. In comparison to GenICam itself, IDS puts the focus back on simple handling and an intuitive programming experience.
A complete coverage of the IDS Software Suite and IDS peak functionalities is not possible due to different concepts and working methods of the two interfaces and will not be possible in the future. Many advantages of the original interfaces were lost through a direct translation of the functionalities. Future enhancements of the IDS peak SDK may also not keep the functional scope identical.
NO IDS peak reference implementation!
The recovery of IDS software Suite functionality by the IDS sherpa adapter class must never be understood as a reference implementation for IDS peak! IDS peak follows a different functional concept through the GenICam base, which means that many functionalities run and are called differently. At application level is enough space to exchange an interface optimally. The functional level, on the other hand, can only be restored with great effort. The only sense of compatibility at this atomic level is the comfort that is similar to a "wrapper". However, thanks to the open source code of IDS sherpa, programmers can decide for themselves whether to take advantage of the convenience of this compatibility or replace it with an IDS peak reference implementation and thus make it future-proof.
Who is IDS sherpa helping?
IDS sherpa is aimed specifically at existing IDS customers who already maintain a camera application with the IDS Software Suite and who want or need to quickly convert it for use with standard vision cameras. By using the included adapter class, developers of existing customers save the time needed for complete familiarization and integration of IDS peak or GenICam. The following two use cases illustrate the purpose of IDS sherpa:
Use Case 1: An existing application, implemented with the IDS Software Suite, must be equipped with a new Vision standards-compliant IDS camera.
A system integrator is responsible for a system with uEye cameras and the program code based on the IDS software suite. The system needs to be updated and should be equipped with higher resolution IDS cameras. But the required camera models are only available with IDS Vision Firmware! This means that they already use the new uniform and future-oriented USB or GigE-Vision standard and are therefore no longer directly compatible with the existing application! The operator must modernize the system in the shortest possible time and make it quickly ready for use again. He is faced with the task of converting the application for a completely new camera that is incompatible with the software, at minimal cost and time.
With IDS sherpa he gets a working adapter class that his developers can integrate with little effort. The application will thus run almost 1:1 with IDS vision cameras. The developers concerned also learn how to use Vision or IDS peak to develop new projects directly with it. With IDS vision cameras, his application also maintains consistent quality of the camera images.
Use Case 2: In an existing IDS Software Suite application with UI cameras, IDS vision cameras should or must be operated in parallel.
An existing system programmed with the IDS Software Suite should work in parallel with new cameras that are only offered with Vision Firmware. Here, too, the operator must modernize the system in the shortest possible time and get it up and running again quickly, at minimum cost and time. He is faced with the question of whether and how to upgrade the processes of his software with a different camera software in addition to the IDS Software Suite or whether he might replace all existing cameras and rely on a single new camera software.
The supplied source code example "IdsSherpaMulti" demonstrates how mixed operation can be implemented with the IDS sherpa adapter class. With IDS sherpa, this requirement can also be met quickly and cost-effectively. After the modification, the existing cameras are addressed by the adapter via the IDS Software Suite, whereas the vision cameras already work with IDS peak. With IDS sherpa, however, both the existing cameras and the new vision cameras are operated with the same code base and thus continue to provide identical quality for the existing system.
How can IDS sherpa help?
IDS sherpa minimizes the effort to convert an existing application to IDS vision cameras. The supplied C++ adapter class "IdsSherpa" translates API function calls of the IDS Software Suite exemplarily into corresponding functions of IDS peak. By integrating the class into an IDS Software Suite application, a developer can already use the most important implementations of camera functionalities with the vision-based camera software IDS peak. This saves a lot of time and the application can be put back into operation with IDS vision cameras in no time with just a few additional modifications. In addition, the concerned developers already learn how to use Vision or IDS peak in order to develop new projects directly with it.
Starting point for this exemplary walkthrough is a Windows development PC (Windows 7/8/10) with the source code of your existing MFC application and the installed IDS Software Suite. In the tech tip, we use the uEye source code example "IdsSimpleLive", which you will find in the installation directory of the IDS software suite.
You need the following components for the exemplary porting of the inventory application:
- Existing camera of the IDS Software Suite application
- IDS Vision camera with suitable feature set
- IDS peak SDK (from v1.1)
- IDS sherpa software package
- Development environment with a compiler for C++ version 14 (e.g. Visual Studio 2015 or higher)
IDS peak is our modern software development kit for all USB3 Vision and GigE Vision compliant industrial cameras. The IDS peak development libraries are based on modern C++ classes and objects and therefore require an equally modern compiler that knows and supports the functionalities used.
Step 2: Create existing application with new compiler
To ensure that all sources and libraries are present and working with the new IDE, rebuild your unmodified legacy application first. Make all necessary changes to create the application with the IDS Software Suite and run it with the inventory camera.
Step 3: Install IDS peak
Install the current IDS peak SDK on your development PC, which you can download from the IDS website. Once everything is set up, test your new IDS vision camera. To do this, start the IDS Vision Cockpit included in the scope of delivery and open the connected camera. If the camera shows a live image, you can continue porting your application.
Step 4: (optional) Create and test IDS sherpa sample applications
At this point you can use the provided sample applications to test IDS sherpa, IDS peak, the new IDE and the completeness of all required source code files. All necessary changes have already been made therein. Open the corresponding Visual Studio example project and create the application. The examples show how different basic functionalities are implemented with IDS sherpa or IDS peak. If you can create and execute the examples correctly, this ensures that all requirements are met and that IDS sherpa with IDS peak works on your PC. Now you can continue with the porting of your application.
- IDS sherpa - Freeze
Acquire single images from a camera and render them in a dialog box.
- IDS sherpa - Live
Display a continuous camera live image in a dialog window using window messages.
- IDS sherpa - Multi
Parallel operation of the IDS Software Suite and IDS peak in one application with IDS sherpa as camera base class
- IDS sherpa - Sequence
Use image buffer sequences with IDS peak or IDS Software Suite.
In all source code example programs, the preprocessor statement "USE_SHERPA" can be used to switch between legacy code with the IDS Software Suite and the IDS sherpa implementation. When using the adapter, only the camera handle decides whether cameras are addressed with IDS peak (IdsSherpa_peak.cpp) or the IDS Software Suite (IdsSherpa_ueye.cpp).
If you have connected several cameras, use the serial numbers of the test cameras to open them. To do this, change the "InitCamera" call by passing the serial numbers as parameter string. Bsp. "ret = m_hCam->InitCamera("4002890498");"
Step 5: Integrating IDS sherpa into existing applications
Now the main porting of your application can be done using IDS sherpa. Therefore only a few changes have to be made to the application's source code:
- Integrate IDS peak libraries and headers in the project properties and set compiler flags
- Import the IDS sherpa adapter class
- Replace function calls of IDS Software Suite with IDS sherpa functions
From now on your application should compile again. The IDS sherpa adapter class completely changes the camera connection with the IDS Software Suite to the vision standard with IDS peak. This means you can now use any GenICam-compliant IDS camera in your application. If you want to extend your application with additional features, you can now do so directly using the IDS peak programming interface.
IDS sherpa is extremely helpful getting IDS Software Suite legacy applications up and running again quickly with IDS vision cameras and training developers in the use of IDS peak. But as explained in this tech tip, IDS sherpa is no stand-alone software product or new interface that you should use in new camera projects. As a conscious IDS Software Suite user, you have also become acquainted with the new GenICam-based IDS peak SDK by following this tech tip. With his easy-to-understand "It's so easy!" programming interface it simplifies the handling of GenICam. Use IDS peak as interface for any new camera application and benefit from the intuitive programming experience of the modern software development kit with all new USB3 Vision and GigE Vision compliant IDS industrial cameras.