HALCON 12.0.2 is fully compatible with HALCON 12.0 except for the changed behavior of some operators owing to bug fixes. Compared to HALCON 11.0, many extensions have been introduced. Thus, the HALCON 12.0 libraries are not compatible with HALCON 11.0 or earlier versions.
In detail, please note the following incompatibilities with respect to HALCON 12.0.1:
- Due to the improved robustness of the bar code reader with respect to overexposure and print growth, the print quality inspection is more precise for codes showing overexposure and print growth. Consequently, some values and grades of the print quality inspection might change with respect to earlier HALCON versions. More information.
- The error code that is returned if find_ncc_model is called with multichannel images has been changed from error 3122 ("Number of channels in the input parameters are different") to error 3359 ("Wrong number of image channels"). Applications that evaluate this error message must be adapted accordingly. More information.
- Because of an extension of get_data_code_2d_results, which now returns the synthetic aperture used for the print quality grading, get_data_code_2d_results now returns a tuple which has one extra element for the parameters 'quality_isoiec15415_labels', 'quality_isoiec15415', and 'quality_isoiec15415_values' as well as 'quality_aimdpm_1_2006_labels', 'quality_aimdpm_1_2006', and 'quality_aimdpm_1_2006_values'. More information.
- By default, the new bar code parameter 'min_code_length' is set to 0 for most code types and to 3 for 2/5 Industrial and 2/5 Interleaved codes. Hence, if you want to read 2/5 codes with a decode length smaller than three, you have to explicitly set 'min_code_length' to 0 using the operator set_bar_code_param or set_bar_code_param_specific. However, if you choose to do so, note that the probability of false reads increases.
Additionally, the default setting for the parameter 'min_identical_scanlines' has been changed from 0 to 2 for 2/5 codes. Thus, for applications using the default parameter settings, the decode results might have changed. Generally, less false reads are to be expected. However, it might happen in rare cases that with a single valid scanline some 2/5 codes were found before but are now discarded because of the increased 'min_identical_scanlines' setting. To get the old behavior, you have to explicitly set 'min_identical_scanlines' to 0 again.
Note that the default parameters for 'min_code_length' and 'min_identical_scanlines' now are set for some code types specifically. As get_bar_code_param throws an exception if the user tries to get a parameter that is set differently for different code types, you have to use get_bar_code_param_specific instead of get_bar_code_param to query those parameters. More information.
- Please note that there is no guarantee on the order of the tuple elements resulting from the tuple set operators tuple_union, tuple_intersection, tuple_symmdiff and tuple_difference. Because of performance improvements of these operators, the order of output elements might differ from previous releases. More information.
Applications (i.e., executables) developed with HALCON 12.0 or HALCON 12.0.1 can be used with HALCON 12.0.2, i.e., HALCON 12.0.2 is binary compatible with HALCON 12.0 and HALCON 12.0.1.
All programs (C, C++, .NET, or COM) that have been developed with HALCON 11.0.x must be recompiled. The incompatibility with HALCON 11.0.x or earlier versions mainly concerns the binaries, with only few changes in the language interfaces. If you encounter problems during recompiling your programs, please check the detailed description of changes below and for HALCON 12.0 and HALCON 12.0.1, respectively.
Please note that applications using HALCON/.NET (and HDevEngine/.NET) have local copies of the corresponding assemblies (halcondotnet.dll etc.). After installing HALCON 12.0.2, these applications would therefore use the old version of the HALCON/.NET interface together with the new version of the HALCON library. In order to benefit from the bug fixes in the HALCON/.NET interface as well, you must either replace the assemblies manually or recompile the projects. If you do not recompile the application, you need to add an application configuration file mapping the application's expected assembly version to the new version. See the Programmer's Guide for more information.
Extension packages developed with HALCON 12.0 or HALCON 12.0.1 can be used with HALCON 12.0.2 without further action. Extension packages developed with HALCON 11.0.x or earlier versions must be re-generated. Note that the old makefiles for HALCON/C++ must be adapted according to the sample makefile under extension_packages/halconuser.