Directly run HDevelop programs within your application without compiling

HDevEngine is a library that acts as an interpreter and lets you directly load and execute HDevelop programs and procedures from within your C++, Python, Visual Basic .NET, or C# application. With it, you can dynamically query the interfaces of loaded HDevelop procedures.

Working with HDevelop and HDevEngine

Working with HDevelop and HDevEngine - the "smart way"
The smart way of creating a machine vision application.

Using HDevEngine for dynamically loading and executing the application's machine vision code allows you to make changes to the vision part of your applications „on the fly“ – no need to recompile or recertify the whole application. This directly translates into time and cost savings!

  • Change requests by the customer can be implemented faster and more cost-effective.
  • Automated production lines can be quickly adjusted to handle varying workpieces – a great benefit for scenarios of the Industrial Internet of Things (IIoT)!
  • Inspection units can be quickly equipped with new machine vision code for solving varying inspection tasks.

Integration of HDevEngine

Watch this video tutorial about the integration of HDevelop code into a C++ application using the HDevelop Library Project Export.
Video tutorial: Integrate HDevelop code into a C++ application using the HDevelop Library Project Export.

Integrating HDevEngine into an application is easy, thanks to the "Library Export" feature of HDevelop. This feature provides a C++ and C# wrapper with all the needed HDevEngine API code – the developer only has to include the exported library, making calling HDevelop procedures from C++ and C# as easy and intuitive as calling any other C++ or C# function.

This library export also generates CMake projects, which can easily be configured to output project files for many popular IDEs, such as Visual Studio.

Debugging with HDevEngine and HDevelop

Code that is being executed by HDevEngine can also be debugged directly within HDevelop. This enables the developer to inspect call stack and variable values while executing procedures step by step, making error tracking a lot easier. You can even connect HDevelop to an HDevEngine application running on a different computer for remote debugging. This removes the necessity of sending an engineer to the location for on-site debugging, and also allows, e.g., a system integrator to service all of his solutions in the field with a single HALCON developer license. When debugging a remote machine, all variables can also be stored locally: For example, you can view the current state which causes an error on the remote machine, store/download all related images and other variable values and then continue investigating the issue locally, or provide the data to MVTec for analysis or bug fixing.