Hilscher cifX I/O Interface for Hilscher PCI and PCIe cards
|
Interface:
|
Hilscher-cifX
|
|
Revision:
|
24.11.7
|
|
Date:
|
2026-03-03
|
General
This page provides the documentation of the HALCON Hilscher-cifX interface for accessing the
Hilscher PCI and PCIe cards.
Only interface specific parameters and features are
described here. For general information of the operators for I/O
interfaces please have a look at the HALCON Operator Reference.
Registered customers can download the
latest revision of this interface from the
MVTec WWW server.
System Requirements
- Intel compatible PC with Windows 7 (32-bit or 64-bit) or newer that is also supported by the vendor-specific SDK.
Intel or Arm Linux (64-bit) that is also supported by the vendor-specific
SDK.
- Installed Hilscher cifX Device Driver (NXDRV-WIN) version 1.3.0.0
(or higher) on windows or Hilscher NetX Card driver UIO_NETX on linux.
Additionally, on linux, libcifx.so.3 must be available.
- Installed SYCON.net or Slave Configuration Tool to configure
the Hilscher device, on linux using e.g. cifX tcp-server.
- Windows: HALCON I/O interface hioHilscher-cifX.dll
or hioHilscher-cifXxl.dll, respectively. If you have properly
installed the interface, all these DLLs should reside in
bin\%HALCONARCH% within the HALCON base directory
%HALCONROOT% you have chosen during the installation of HALCON.
Interface Versioning
MVTec interfaces for digital I/O and image acquisition are always compatible to a range of HALCON versions. Therefore, the versioning scheme both
describes the compatibility of the interface and also the revision of the
interface itself.
An interface version always consists of three numbers, separated by dots,
i.e. 18.11.5. The first two numbers describe the minimum HALCON version the
interface is compatible with. For the example version 18.11.5 this means
that the interface is compatible with all HALCON versions since HALCON
18.11. The last number describes the revision of the interface, in this
example this is revision 5.
Installation
Only when installing or updating the interface manually follow these steps:
- Extract the archive containing the interface files to the
HALCON base directory %HALCONROOT% (Note: Administrator privileges may be
required for this step). Additionally, you have to move the interface
examples to the directory %HALCONEXAMPLES% manually.
Features
- Implementation of a cifX Device Driver general interface.
Limitations
- Windows and Linux are not considered as deterministic real time operating systems. The response times can't be guaranteed and are affected by
multiple factors including hardware, installed drivers and other services
running in parallel.
- Support only for official firmware provided by Hilscher.
- Protocol specific functions are not supported.
- The interface has been tested to work with PROFINET, EtherCat and Ethernet/IP
firmware, other protocols should work but were not tested.
- The 'Ethernet Interface' channel is not supported.
- On Linux, support is limited to one Hilscher Card per system. The card
will be restarted by the used libcifx implementation during the
open_io_device and all hardware related query_io_interface operator
calls.
Hilscher Reference Documentation
To correctly use this interface it is required that in addition to this interface documentation at a
minimum the user reviews the following basic Hilscher
documentation files:
- cifX Manuals for your respective device
- Configuration Manuals for SYCON.net or the Slave Configuration Tool
- Device Driver Manuals
You can find all of this manuals in the documentation section of the Hilscher
DVD or their
website.
- Linux: Documentation of Hilscher github project 'cifX device driver
for linux' https://github.com/HilscherAutomation/nxdrvlinux/
Converting the Input and Output Data to HALCON Types
It is possible to automatically convert the input and output data 'to' and 'from' HALCON types (long, double, string) by specifying a data conversion format.
The conversion format is specified by means of a string of qualified chars that
is loosely based on the one used by the HALCON sockets interface. The conversion
is very straight forward but there are some important things to consider:
- The conversion can't be executed if the size of the input or output data doesn't
coincide with the expected size for the conversion.
- When converting bytes into strings the size must always be specified. Null
termination will be added to the string in case it is not present.
- Only ASCII strings are currently supported.
Each supported type has a qualified character assigned. The format string is
created by appending the qualified character plus an optional repetition count.
For example the float data type is of size 4 and is represented by the letter 'f'
if you want to specify the data conversion of five floats you can use the string
'fffff' or a 'f5' and you will need to have a buffer of size 20 to do the conversion,
this floats will the be converted to an appropriated HALCON type. The available types
and their qualifiers are as follows:
| TYPE |
SIZE |
QUALIFIER |
| char |
1 |
'c' |
| uchar |
1 |
'C' |
| short |
2 |
's' |
| ushort |
2 |
'S' |
| int32 |
4 |
'i' |
| uint32 |
4 |
'I' |
| int64 |
8 |
'q' |
| uint64 |
8 |
'Q' |
| float |
4 |
'f' |
| double |
8 |
'd' |
| string |
x |
'z' |
Note: int64 and uint64 are only available on 64bit architectures.
There are some additional characters that can be used as part of the format
string and are used to solve special cases:
(1) On Windows systems the most common host endianness is little endian.
Please refer to the example hilscher-cifx_data_conversion.hdev provided with
this interface.
Not supported by this interface.
query_io_interface(::IOInterfaceName, Query:Result)
Query information about the specified I/O device interface.
| Parameter |
Values |
Type |
Description |
| IOInterfaceName |
'Hilscher-cifX' |
string |
HALCON I/O interface name. |
| Query |
|
string |
Parameter name of the query. |
| 'io_channels_info' |
[' device:<device> | ch_name:<channel> | firmware:<firmware> | version:<version> | build_date:<dd-mm-yy>'] |
string |
List of all available channels on all devices or a single device with relevant information. |
| 'io_device_info' |
['device:<device> | alias:<alias> | dev_number:<device number> | serial:<serial number> | dev_id:<device id>| channel_count:<number of channels>'] |
string |
List of available devices with additional information, including the device name, alias (if available), device number, serial number, device id (rotary switch) and the number of channels. |
| 'io_device_names' |
'<name>' |
string |
List of available devices. |
| 'param_name' |
'<parameter>'[,'<parameter>'...] |
string |
Returns the possible parameter names. |
| 'revision' |
'<version>.<revision>.<build>' |
string |
Revision number of the interface. |
| Result |
|
integer, real, string |
List of result values (according to Query). |
open_io_device(::IOInterfaceName, IODeviceName, GenParamName, GenParamValue:IODeviceHandle)
Open and configure an I/O device.
| Parameter |
Values |
Default |
Type |
Description |
| IOInterfaceName |
'Hilscher-cifX' |
[] |
string |
HALCON I/O interface name. |
| IODeviceName |
|
[] |
string |
I/O device name. |
| GenParamName |
|
[] |
string |
Dynamic parameter names. |
| GenParamValue |
|
[] |
integer, real, string |
Dynamic parameter values. |
| IODeviceHandle |
|
|
handle |
Handle of the opened I/O device. |
control_io_device(::IODeviceHandle, Action, Argument:Result)
Perform an action on the I/O device.
| Parameter |
Values |
Default |
Type |
Description |
| IODeviceHandle |
|
|
handle |
Handle of the opened I/O device. |
| Action |
|
|
string |
Name of the action to perform. |
| 'restart_firmware' |
|
|
|
Restart the firmware on netX board. All communication channels will stop and reset. In some special cases the complete board can also be reset. You can specify a timeout in milliseconds to wait for restart to complete, if no value is specified the default timeout is one second. |
| Argument |
|
1000 |
|
|
| Result |
|
1000 |
integer |
|
| Argument |
|
[] |
integer, real, string |
List of arguments for the action. |
| Result |
|
|
integer, real, string |
List of result values returned by the action. |
Not supported by this interface.
get_io_device_param(::IODeviceHandle, GenParamName:GenParamValue)
Query settings of an I/O device instance.
There may exist additional parameter attributes, which can be accessed as
'ParamNames.AttributeName'. The following standard attributes may
be available:
- '.access': This attribute provides the access permissions of
the corresponding parameter as a string. Possible values are
'ro' (read-only), 'wo' (write-only), 'rw'
(read/write), 'na' (unavailable, perhaps due to insufficient
access rights), and 'ni' (unavailable, not defined for this
device or channel).
- '.category': This attribute provides the category of the
corresponding parameter as a string. 'I/O interface' for all pre-defined
I/O interface parameters.
- '.default': This attribute provides the default value of the
corresponding parameter.
- '.description': This attribute provides the description of the
corresponding parameter as a string.
- '.displayname': This attribute provides the displayname of the
corresponding parameter as a string.
- '.range': This attribute provides the minimum and maximum,
(and the step width, if applicable) for the corresponding integer or
float parameter as a tuple with 2 (or 3) elements.
- '.representation': This attribute provides how the value of the
parameter should be displayed in a GUI: 'ip address', 'hex', ...
- '.tooltip': This attribute provides the tool-tip of the
corresponding parameter as a string.
- '.type': This attribute provides the HALCON value type (integer,
real, or string) of the corresponding parameter as a string.
- '.values': This attribute provides the valid value list for
the corresponding parameter as a tuple.
- '.visibility': This attribute provides the visibility of the
corresponding parameter as a string. Possible values are
'common', 'extended', and 'dangerous'.
- '.unit': This attribute provides the units of the corresponding
parameter as a string. For example: 'ns', 'us' and
'ms', or 'mm', 'cm', 'dm' and
'm'.
| Parameter |
Values |
Type |
Description |
| IODeviceHandle |
|
handle |
Handle of the opened I/O device. |
| GenParamName |
|
string |
Parameter names. |
| 'cpu_load' |
|
integer |
The current CPU load of the device in 0.01 units. (Eg. 10000 = 100%) |
| 'device_error' |
|
integer |
The current device error code. If no errors have occurred or the problem has been solve the return value will be zero. To identify the meaning of the error please 'Error Codes' manual provided by Hilscher. |
| 'io_device_name' |
'<name>' |
string |
The name of the device. |
| 'param_name' |
'<parameter>'[,'<parameter>'...] |
string |
Returns the possible parameter names. |
| 'serial_number' |
|
integer |
The device serial number. |
| 'time_since_startup' |
|
integer |
The total operation time since start up in seconds. |
| GenParamValue |
|
integer, real, string, handle |
Parameter values. |
query_io_device(::IODeviceHandle, IOChannelName, Query:Result)
Query information about channels of the specified I/O device.
| Parameter |
Values |
Type |
Description |
| IODeviceHandle |
|
handle |
Handle of the opened I/O device. |
| IOChannelName |
|
string |
Channel names to query. |
| Query |
|
string |
Name of the query. |
| 'io_channel_names' |
'<channel>' |
string |
List of channels provided by the device. |
| 'io_channels_info' |
[' device:<device> | ch_name:<channel> | firmware:<firmware> | version:<version> | build_date:<dd-mm-yy>'] |
string |
List of all available channels on all devices or a single device with relevant information. |
| 'param_name' |
'<parameter>'[,'<parameter>'...] |
string |
Returns the possible parameter names. |
| Result |
|
integer, real, string |
List of values (according to Query). |
open_io_channel(::IODeviceHandle, IOChannelName, GenParamName, GenParamValue:IOChannelHandle)
When you open a channel the interface will try to change the following parameters on the channel:
- host_state to 'ready'
- config_lock to 'unlock'
| Parameter |
Values |
Default |
Type |
Description |
| IODeviceHandle |
|
|
handle |
Handle of the opened I/O device. |
| IOChannelName |
|
|
string |
HALCON I/O channel names of the specified device. |
| GenParamName |
|
[] |
string |
Parameter names. |
| 'synchronous_read' |
'false', 'true' |
'false' |
string |
Enable synchronous read. By default, read_io_channel() for the hioHilscher-cifX interface delivers cached input data that has been acquired after the last call of read_io_channel(). This way, read_io_channel() may return instantly and without a delay waiting for the next fieldbus cycle. With synchronous_read set to 'true', read_io_channel() will read the data from the next fieldbus cycle, which might result in a delay up to a few milliseconds, depending on the fieldbus environment. |
| 'use_plc_image_functions' |
'false', 'true' |
'false' |
string |
Flag that activates special PLC image functions on the Hilscher device. This flag is NOT required to be set by most applications. If your PLC program is using its own process data image layout then this function can be activated to save the copy between the device I/O process data image and the local function buffers. For more information please refer to the official Hilscher documentation. Activating this flag changes the behavior of read and write operations. |
| GenParamValue |
|
[] |
integer, real, string |
Parameter values. |
| IOChannelHandle |
|
|
handle |
Handles of the opened I/O channel. |
control_io_channel(::IOChannelHandle, Action, Argument:Result)
Perform an action on I/O channels.
| Parameter |
Values |
Default |
Type |
Description |
| IOChannelHandle |
|
|
handle |
Handles of the opened I/O channels. |
| Action |
|
|
string |
Name of the action to perform. |
| 'reset_channel' |
|
|
|
Reset the channel. It is possible to specify a wait timeout in milliseconds, if no value was specified the default timeout is one second. |
| Argument |
|
1000 |
|
|
| Result |
|
1000 |
integer |
|
| Argument |
|
[] |
integer, real, string |
List of arguments for the action. |
| Result |
|
|
integer, real, string |
List of values returned by the action. |
set_io_channel_param(::IOChannelHandle, GenParamName, GenParamValue:)
Set specific parameters of I/O channels.
| Parameter |
Values |
Default |
Type |
Description |
| IOChannelHandle |
|
|
handle |
Handles of the opened I/O channels. |
| GenParamName |
|
[] |
string |
Parameter names. |
| 'bus_state' |
'on', 'off' |
|
string |
The channel bus state. Used for start and stop the channel communication. |
| 'config_lock' |
'lock', 'unlock' |
|
string |
The channel configuration lock. Once this flag is set to 'lock' the configuration of the channel can't be changed. |
| 'control_timeout' |
|
1000 |
integer |
Gets or sets the current control timeout in milliseconds. This timeout affects some actions for the communication channel. (Eg. bus_state, host_state, etc.) |
| 'dma_mode' |
'on', 'off' |
|
string |
This flags is used to change I/O data transfer from DPM to DMA mode. This function is only available for PCI and PCIe devices. |
| 'host_state' |
'ready', 'not_ready' |
|
string |
The channel host state. |
| 'input_conversion_format' |
|
|
string |
Specifies the conversion format from the input data to HALCON types. The provided format must coincide with the current data size specified by input_size and input_offset. Please refer to our documentation section 'Converting the input and output data to HALCON Types' for more information on how to use this feature. |
| 'input_offset' |
|
0 |
integer |
The offset on the input data in bytes. |
| 'input_size' |
|
0 |
integer |
The number of bytes to read from the input data. If set to zero the complete input data minus the input_offset can be read. |
| 'operation_timeout' |
|
500 |
integer |
The current operation timeout in milliseconds. This timeout only affects read and write on a channel. Note: The device data is updated at most once per bus cycle, calls faster than that will return old data. |
| 'output_conversion_format' |
|
|
string |
Specifies the conversion format from HALCON types to the output data. The provided format must coincide with the current data size specified by output_size and output_offset. Please refer to our documentation section 'Converting the input and output data to HALCON Types' for more information on how to use this feature. |
| 'output_offset' |
|
0 |
integer |
The offset on the output data in bytes. |
| 'output_size' |
|
0 |
integer |
The number of bytes to write to the output data. If set to zero the complete output data minus the input_offset can be written. |
| 'synchronous_read' |
'false', 'true' |
'false' |
string |
Enable synchronous read. By default, read_io_channel() for the hioHilscher-cifX interface delivers cached input data that has been acquired after the last call of read_io_channel(). This way, read_io_channel() may return instantly and without a delay waiting for the next fieldbus cycle. With synchronous_read set to 'true', read_io_channel() will read the data from the next fieldbus cycle, which might result in a delay up to a few milliseconds, depending on the fieldbus environment. |
| GenParamValue |
|
[] |
integer, real, string, handle |
Parameter values to set. |
get_io_channel_param(::IOChannelHandle, GenParamName:GenParamValue)
Query specific parameters of I/O channels.
There may exist additional parameter attributes, which can be accessed as
'ParamNames.AttributeName'. The following standard attributes may
be available:
- '.access': This attribute provides the access permissions of
the corresponding parameter as a string. Possible values are
'ro' (read-only), 'wo' (write-only), 'rw'
(read/write), 'na' (unavailable, perhaps due to insufficient
access rights), and 'ni' (unavailable, not defined for this
device or channel).
- '.category': This attribute provides the category of the
corresponding parameter as a string. 'I/O interface' for all pre-defined
I/O interface parameters.
- '.default': This attribute provides the default value of the
corresponding parameter.
- '.description': This attribute provides the description of the
corresponding parameter as a string.
- '.displayname': This attribute provides the displayname of the
corresponding parameter as a string.
- '.range': This attribute provides the minimum and maximum,
(and the step width, if applicable) for the corresponding integer or
float parameter as a tuple with 2 (or 3) elements.
- '.representation': This attribute provides how the value of the
parameter should be displayed in a GUI: 'ip address', 'hex', ...
- '.tooltip': This attribute provides the tool-tip of the
corresponding parameter as a string.
- '.type': This attribute provides the HALCON value type (integer,
real, or string) of the corresponding parameter as a string.
- '.values': This attribute provides the valid value list for
the corresponding parameter as a tuple.
- '.visibility': This attribute provides the visibility of the
corresponding parameter as a string. Possible values are
'common', 'extended', and 'dangerous'.
- '.unit': This attribute provides the units of the corresponding
parameter as a string. For example: 'ns', 'us' and
'ms', or 'mm', 'cm', 'dm' and
'm'.
| Parameter |
Values |
Type |
Description |
| IOChannelHandle |
|
handle |
Handles of the opened I/O channels. |
| GenParamName |
|
string |
Parameter names. |
| 'bus_state' |
'on', 'off' |
string |
The channel bus state. Used for start and stop the channel communication. |
| 'channel_error' |
|
integer |
The current channel error code. If no errors have occurred or the problem has been solve the return value will be zero. To identify the meaning of the error please 'Error Codes' manual provided by Hilscher. |
| 'communication_cos' |
'ready', 'running', 'bus_on', 'dma_mode_on', 'new_config_available', 'restart_required', 'restart_enable', 'config_locked' |
string |
The communication channel 'Change of State' flag. Every time there is a state change on the current channel or the device this flag will be updated to reflect those changes. This flag reflects general and not time critical information. |
| 'communication_error' |
|
string |
The current communication error code from the channel. If no errors have occurred or the problem has been solve the return value will be zero. To identify the meaning of the error please 'Error Codes' manual provided by Hilscher. |
| 'communication_error_count' |
|
integer |
The total number of errors since the last device powered up. |
| 'communication_state' |
'offline', 'stop', 'idle', 'operate', 'unknown' |
string |
The current communication state of the channel |
| 'config_lock' |
'lock', 'unlock' |
string |
The channel configuration lock. Once this flag is set to 'lock' the configuration of the channel can't be changed. |
| 'control_timeout' |
|
integer |
Gets or sets the current control timeout in milliseconds. This timeout affects some actions for the communication channel. (Eg. bus_state, host_state, etc.) |
| 'dma_mode' |
'on', 'off' |
string |
This flags is used to change I/O data transfer from DPM to DMA mode. This function is only available for PCI and PCIe devices. |
| 'firmware_name' |
|
string |
The firmware of the channel. |
| 'host_state' |
'ready', 'not_ready' |
string |
The channel host state. |
| 'input_conversion_format' |
|
string |
Specifies the conversion format from the input data to HALCON types. The provided format must coincide with the current data size specified by input_size and input_offset. Please refer to our documentation section 'Converting the input and output data to HALCON Types' for more information on how to use this feature. |
| 'input_data_size' |
|
integer |
The total size of the input data in bytes. Specified on the device configuration. |
| 'input_offset' |
|
integer |
The offset on the input data in bytes. |
| 'input_size' |
|
integer |
The number of bytes to read from the input data. If set to zero the complete input data minus the input_offset can be read. |
| 'io_channel_info' |
[' firmware:<name> | version:<version> | build_date:<dd-mm-yy>'] |
string |
Information about the firmware of the channel. Including name, version and build date. |
| 'io_channel_name' |
'<channel>' |
string |
The name of the channel. |
| 'operation_timeout' |
|
integer |
The current operation timeout in milliseconds. This timeout only affects read and write on a channel. Note: The device data is updated at most once per bus cycle, calls faster than that will return old data. |
| 'output_conversion_format' |
|
string |
Specifies the conversion format from HALCON types to the output data. The provided format must coincide with the current data size specified by output_size and output_offset. Please refer to our documentation section 'Converting the input and output data to HALCON Types' for more information on how to use this feature. |
| 'output_data_size' |
|
integer |
The total size of the output data in bytes. Specified on the device configuration. |
| 'output_offset' |
|
integer |
The offset on the output data in bytes. |
| 'output_size' |
|
integer |
The number of bytes to write to the output data. If set to zero the complete output data minus the input_offset can be written. |
| 'param_name' |
'<parameter>'[,'<parameter>'...] |
string |
Returns the possible parameter names. |
| 'plc_is_read_ready' |
'false', 'true' |
string |
If the 'use_plc_image_functions' parameter is set to 'true'. This parameter has to be queried to determine if it is currently possible to read the I/O data. The recommend way to check this parameter is to read it in a loop before calling read_io_channel. |
| 'plc_is_write_ready' |
'false', 'true' |
string |
If the 'use_plc_image_functions' parameter is set to 'true'. This parameter has to be queried to determine if it is currently possible to write the I/O data. The recommend way to check this parameter is to read it in a loop before calling write_io_channel. |
| 'synchronous_read' |
'false', 'true' |
string |
Enable synchronous read. By default, read_io_channel() for the hioHilscher-cifX interface delivers cached input data that has been acquired after the last call of read_io_channel(). This way, read_io_channel() may return instantly and without a delay waiting for the next fieldbus cycle. With synchronous_read set to 'true', read_io_channel() will read the data from the next fieldbus cycle, which might result in a delay up to a few milliseconds, depending on the fieldbus environment. |
| 'use_plc_image_functions' |
'false', 'true' |
string |
Flag that activates special PLC image functions on the Hilscher device. This flag is NOT required to be set by most applications. If your PLC program is using its own process data image layout then this function can be activated to save the copy between the device I/O process data image and the local function buffers. For more information please refer to the official Hilscher documentation. Activating this flag changes the behavior of read and write operations. |
| GenParamValue |
|
integer, real, string, handle |
Parameter values. |
read_io_channel(::IOChannelHandle:Value, Status)
If no data conversion format is specified, reading a channel will return a tuple array of unsigned bytes of the specified input size on the device configuration.
To get the expected size use the parameter 'input_data_size'.
Read operations are always expected to return multiple values. Because of this
it is not allowed to use multiple channel handles, so you must read from each
channel individually.
| Parameter |
Values |
Type |
Description |
| IOChannelHandle |
|
handle |
Handles of the opened I/O channels. |
| Value |
|
integer, real, string, handle |
Read value. |
| Status |
|
integer |
Status of read value. A status of '0' indicates success, while any other value indicates an error condition.
|
write_io_channel(::IOChannelHandle, Value:Status)
If no data conversion format is specified, writing to a channel must be done by providing an array of tuples of unsigned byte of the output size on the device
configuration. To get the expected size use the parameter 'output_data_size'.
Write operations are always expected to require multiple values. Because of this
it is not allowed to use multiple channel handles, you must write to each channel
individually.
| Parameter |
Values |
Type |
Description |
| IOChannelHandle |
|
handle |
Handles of the opened I/O channels. |
| Value |
|
integer, real, string, handle |
Write values. |
| Status |
|
integer |
Status of written values. A status of '0' indicates success, while any other value indicates an error condition.
|
close_io_channel(::IOChannelHandle:)
When you close a channel the interface will try to change the following parameters on the channel:
- bus_state to 'off',
- host_state to 'not_ready'
- config_lock to 'unlock'
- dma_mode to 'off'
| Parameter |
Type |
Description |
| IOChannelHandle |
handle |
Handles of the opened I/O channels. |
close_io_device(::IODeviceHandle:)
Close the specified I/O device.
| Parameter |
Type |
Description |
| IODeviceHandle |
handle |
Handle of the opened I/O device. |
HDevelop Examples
For this interface the following examples are available:
- hilscher-cifx_read.hdev -
Example to show how to read input data from a Hilscher device.
- hilscher-cifx_write.hdev -
Example to show how to write output data to a Hilscher device.
- hilscher-cifx_data_conversion.hdev -
Example to show how to read and write data from a Hilscher
device using a data conversion format.
- hilscher-cifx_simple_diagnostic.hdev -
Example to show how to get diagnostic information from your Hilscher device.
Release Notes
- Revision 24.11.7 (Mar 3, 2026):
- A parameter 'synchronous_read' has been added to open_io_channel and
set_io_channel_param to switch read_io_channel between low-latency
operator return or fieldbus synchronous data reading.
- This interface now is also available for Linux and Linux for Arm
(64-bit) systems.
- Revision 24.11.6 (Oct 8, 2025):
- A Software Bill of Materials (SBOM) in the System Package Data Exchange
(SPDX) format has been added next to each binary file with the same name
extended by ".spdx.json".
- Revision 20.11.5 (Aug 1, 2023):
- The operator open_io_channel crashed when using the output of
query_io_device(..., 'io_channels_info',...) as an argument. This
problem has been fixed.
- The distribution package of this interface now contains files providing
meta information for the HDevelop example browser.
- Revision 18.11.4 (Oct 27, 2020):
- This interface couldn't be loaded from .NET Core applications on Linux
and macOS. This problem has been fixed.
- Revision 13.0.3 (Jun 11, 2019):
- Revision 13.0.2 (Nov 30, 2018):
Legal disclaimer regarding hyperlinks:
This page may provide users with access by hypertext links to external, non-MVTec websites.
Any such access is provided with the understanding that the contents
of non-MVTec sites are beyond the control of MVTec Software GmbH, that
MVTec Software GmbH makes no representations whatsoever about such
sites, and that users shall proceed at their own risk.
MVTec Software GmbH is not responsible for the privacy practices or
the content of external, non-MVTec websites.
Copyright notes:
© Copyright MVTec Software GmbH. All rights reserved.
Unless otherwise stated, the copyright and similar rights in the
contents of this page, including but not limited to all text, designs
and images appearing herein, are copyrighted works owned by MVTec
Software GmbH.
"MVTec Software GmbH" and "HALCON" are registered trademarks of MVTec
Software GmbH.
All other brand names, designs, service marks and trademarks (whether
or not registered) referenced or used herein are the property of their
respective owners.