1740 lines
78 KiB
C++
1740 lines
78 KiB
C++
/////////////////////////////////////////////////////////////////
|
|
//
|
|
// Filename : MILCODE.H
|
|
// Content : function capi of McodeAlloc
|
|
// Revision : 10.60.0776
|
|
//
|
|
// Copyright © Matrox Electronic Systems Ltd., 1992-2023.
|
|
// All Rights Reserved
|
|
//
|
|
/////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __MILCODE_H__
|
|
#define __MILCODE_H__
|
|
|
|
#if (!M_MIL_LITE) // MIL FULL ONLY
|
|
|
|
/* C++ directive if needed */
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
|
|
|
|
/**************************************************************************/
|
|
/* CAPI defines */
|
|
/**************************************************************************/
|
|
|
|
/**************************************************************************/
|
|
/* Index values */
|
|
/**************************************************************************/
|
|
#define M_SCAN_RESULT_OFFSET 10L // =utilities=
|
|
#define M_SCAN_RESULT_INDEX(i) ((i == M_ALL || i == M_DEFAULT) ? 0 : ((i == M_GENERAL) ? ~(M_GENERAL + M_ALL + M_DEFAULT) : (i+1) << M_SCAN_RESULT_OFFSET))
|
|
#define M_ROW_RESULT_INDEX(i) M_SCAN_RESULT_INDEX(i)
|
|
|
|
#if OldDefinesSupport
|
|
#define M_GRADE_RESULT_OFFSET M_SCAN_RESULT_OFFSET
|
|
#define M_GRADE_RESULT_INDEX(i) M_SCAN_RESULT_INDEX(i)
|
|
MIL_DEPRECATED(M_GRADE_RESULT_OFFSET, 1030)
|
|
MIL_DEPRECATED(M_GRADE_RESULT_INDEX, 1030)
|
|
#endif
|
|
|
|
#if OldDefinesSupport
|
|
#define M_VERIFY_RESULT_OFFSET M_SCAN_RESULT_OFFSET
|
|
#define M_VERIFY_RESULT_INDEX(i) M_SCAN_RESULT_INDEX(i)
|
|
MIL_DEPRECATED(M_VERIFY_RESULT_OFFSET, 1010)
|
|
MIL_DEPRECATED(M_VERIFY_RESULT_INDEX , 1010)
|
|
#endif
|
|
|
|
/**************************************************************************/
|
|
/* McodeAlloc() Code types */
|
|
/**************************************************************************/
|
|
|
|
#define M_CODE39 0x00000001
|
|
#define M_DATAMATRIX 0x00000002
|
|
#define M_EAN13 0x00000004
|
|
#define M_MAXICODE 0x00000008
|
|
#define M_INTERLEAVED25 0x00000010
|
|
#define M_CODE128 0x00000020
|
|
#define M_BC412 0x00000040
|
|
#define M_CODABAR 0x00000080
|
|
#define M_PDF417 0x00000100
|
|
#define M_POSTNET 0x00000200
|
|
#define M_PLANET 0x00000400
|
|
#define M_UPC_A 0x00000800
|
|
#define M_UPC_E 0x00001000
|
|
#define M_PHARMACODE 0x00002000
|
|
#if OldDefinesSupport
|
|
#define M_RSSCODE 0x00004000
|
|
#define M_RSS14 0x00008000
|
|
#define M_RSS14_TRUNCATED 0x00010000
|
|
#define M_RSS_LIMITED 0x00020000
|
|
#define M_RSS_EXPANDED 0x00040000
|
|
#define M_RSS14_STACKED 0x00080000
|
|
#define M_RSS14_STACKED_OMNI 0x00100000
|
|
#define M_RSS_EXPANDED_STACKED 0x00200000
|
|
MIL_DEPRECATED(M_RSSCODE , 1010)
|
|
MIL_DEPRECATED(M_RSS14 , 1010)
|
|
MIL_DEPRECATED(M_RSS14_TRUNCATED , 1010)
|
|
MIL_DEPRECATED(M_RSS_LIMITED , 1010)
|
|
MIL_DEPRECATED(M_RSS_EXPANDED , 1010)
|
|
MIL_DEPRECATED(M_RSS14_STACKED , 1010)
|
|
MIL_DEPRECATED(M_RSS14_STACKED_OMNI , 1010)
|
|
MIL_DEPRECATED(M_RSS_EXPANDED_STACKED, 1010)
|
|
#endif
|
|
#define M_GS1_DATABAR 0x00004000
|
|
// RSS Sub type section...
|
|
#define M_GS1_DATABAR_OMNI 0x00008000
|
|
#define M_GS1_DATABAR_TRUNCATED 0x00010000
|
|
#define M_GS1_DATABAR_LIMITED 0x00020000
|
|
#define M_GS1_DATABAR_EXPANDED 0x00040000
|
|
#define M_GS1_DATABAR_STACKED 0x00080000
|
|
#define M_GS1_DATABAR_STACKED_OMNI 0x00100000
|
|
#define M_GS1_DATABAR_EXPANDED_STACKED 0x00200000
|
|
// ...End of RSS Sub type section.
|
|
#define M_EAN8 0x00400000
|
|
#define M_MICROPDF417 0x00800000
|
|
#define M_COMPOSITECODE 0x01000000
|
|
#if OldDefinesSupport
|
|
#define M_UCCEAN128 0x02000000
|
|
MIL_DEPRECATED(M_UCCEAN128, 1010)
|
|
#endif
|
|
#define M_GS1_128 0x02000000
|
|
#define M_QRCODE 0x04000000
|
|
#define M_MICROQRCODE 0x04000002
|
|
#define M_CODE93 0x08000000
|
|
#define M_TRUNCATED_PDF417 0x08000005
|
|
#define M_4_STATE 0x08000007
|
|
#define M_EAN14 0x08000009
|
|
#define M_INDUSTRIAL25 0x00000011
|
|
#define M_AZTEC 0x0800000A
|
|
#define M_IATA25 0X00001517
|
|
#define M_DOTCODE 0x0000159B
|
|
|
|
#define M_CODE39_NAME MIL_TEXT("Code39")
|
|
#define M_DATAMATRIX_NAME MIL_TEXT("Datamatrix")
|
|
#define M_EAN13_NAME MIL_TEXT("EAN13")
|
|
#define M_MAXICODE_NAME MIL_TEXT("Maxicode")
|
|
#define M_INTERLEAVED25_NAME MIL_TEXT("Interleaved25")
|
|
#define M_CODE128_NAME MIL_TEXT("Code128")
|
|
#define M_BC412_NAME MIL_TEXT("BC412")
|
|
#define M_CODABAR_NAME MIL_TEXT("Codabar")
|
|
#define M_PDF417_NAME MIL_TEXT("PDF417")
|
|
#define M_POSTNET_NAME MIL_TEXT("Postnet")
|
|
#define M_PLANET_NAME MIL_TEXT("Planet")
|
|
#define M_UPC_A_NAME MIL_TEXT("UPC_A")
|
|
#define M_UPC_E_NAME MIL_TEXT("UPC_E")
|
|
#define M_PHARMACODE_NAME MIL_TEXT("Pharmacode")
|
|
#define M_GS1_DATABAR_NAME MIL_TEXT("GS1_DataBar")
|
|
#define M_EAN8_NAME MIL_TEXT("EAN8")
|
|
#define M_MICROPDF417_NAME MIL_TEXT("MicroPDF417")
|
|
#define M_COMPOSITECODE_NAME MIL_TEXT("CompositeCode")
|
|
#define M_GS1_128_NAME MIL_TEXT("GS1_128")
|
|
#define M_QRCODE_NAME MIL_TEXT("QRCode")
|
|
#define M_MICROQRCODE_NAME MIL_TEXT("MicroQRCode")
|
|
#define M_CODE93_NAME MIL_TEXT("Code93")
|
|
#define M_TRUNCATED_PDF417_NAME MIL_TEXT("Truncated_PDF417")
|
|
#define M_4_STATE_NAME MIL_TEXT("4-State")
|
|
#define M_EAN14_NAME MIL_TEXT("EAN14")
|
|
#define M_INDUSTRIAL25_NAME MIL_TEXT("Industrial25")
|
|
#define M_AZTEC_NAME MIL_TEXT("Aztec")
|
|
#define M_IATA25_NAME MIL_TEXT("IATA25")
|
|
#define M_DOTCODE_NAME MIL_TEXT("DotCode")
|
|
|
|
// Allocation control flags
|
|
#if OldDefinesSupport
|
|
#define M_CONTROL_FLAG 0x00019400L
|
|
MIL_DEPRECATED(M_CONTROL_FLAG, 1010)
|
|
#endif
|
|
|
|
/**************************************************************************/
|
|
/* McodeModel() operations */
|
|
/**************************************************************************/
|
|
#define M_ADD 0x0000L // Already defined in mil.h, milim.h and milocr.h as 0x0000L
|
|
#define M_FIND 2L
|
|
#define M_DELETE 3L // Already defined in milblob.h, miledge.h, milmetrol.h and milmod.h as 3L
|
|
#define M_RESET_FROM_DETECTED_RESULTS 5L
|
|
#define M_ADD_IF_NOT_THERE 0X00001535L
|
|
#define M_DELETE_ALL 0X00001536L
|
|
|
|
/**************************************************************************/
|
|
/* McodeInquire(), McodeGetResult(), McodeControl() parameters */
|
|
/**************************************************************************/
|
|
#define M_GENERAL 0x20000000L // also in milmod.h, milstr.h, ...
|
|
#define M_TRAIN 0x20000000L
|
|
#define M_OWNER_SYSTEM 1101L // already define in mil.h
|
|
#define M_CODE_TYPE 0x00000001L
|
|
#define M_CODE_TYPE_NAME 0X00000A97L
|
|
#define M_WRITE_SIZE_X 0x00000002L
|
|
#define M_STRING (3L | M_CLIENT_ENCODING) // Already define as 3L
|
|
#define M_FOREGROUND_VALUE 4L // Already define as 4L
|
|
#define M_WRITE_SIZE_Y 0x00000005L
|
|
#define M_THRESHOLD 82 // Deprecated; Already define as 82
|
|
#define M_THRESHOLD_MODE 33L // Replaces M_THRESHOLD; Already defined in miledge.h
|
|
#define M_MINIMUM_CONTRAST 600L // Deprecated; Already defined in milstr.h
|
|
#define M_THRESHOLD_VALUE 953L // Supersedes the M_MINIMUM_CONTRAST control
|
|
#define M_STOP_READ 610L // Already defined in milstr.h
|
|
#define M_STOP_TRAIN 2698L // also in milclass.h
|
|
#define M_STOP_DETECT 2712L
|
|
#define M_STATUS 0x00008002L
|
|
#define M_FOREGROUND_WHITE 0x80L // Already define as 0x80L
|
|
#define M_FOREGROUND_BLACK 0x100L // Already define as 0x100L
|
|
#define M_FOREGROUND_ANY M_FOREGROUND_WHITE+M_FOREGROUND_BLACK // Alread defined in milmod.h
|
|
#define M_SEARCH_ANGLE 0x00000100L // Already define as 0x00000100L
|
|
#define M_SEARCH_ANGLE_DELTA_NEG 0x00000200L // Already define as 0x00000200L
|
|
#define M_SEARCH_ANGLE_DELTA_POS 0x00000400L // Already define as 0x00000400L
|
|
#define M_SEARCH_ANGLE_STEP 0x00000600L // Already define as 0x00000400L
|
|
#define M_ANGLE 0x00000800L // Already define as 0x00000800L
|
|
#define M_CELL_SIZE 0x00001000L
|
|
#define M_SCORE 0x00001400L // Already defined in milpat.h
|
|
#define M_CELL_SIZE_MIN 0x00002000L
|
|
#define M_DOT_SIZE 0X00000BB5L
|
|
#define M_CELL_SIZE_MODE 0X00000D50L
|
|
#define M_CELL_SIZE_VALUE 0X00000BB6L
|
|
#define M_DOT_SHAPE 0X00000BB7L
|
|
#define M_ELEMENT_NUMBER_X 0X00000DDCL
|
|
#define M_ELEMENT_NUMBER_Y 0X00000DDDL
|
|
#define M_CELL_SIZE_MAX 0x00004000L
|
|
#define M_ASPECT_RATIO 6001L // Already define as 6001L
|
|
#define M_CELL_NUMBER_X 0x00008000L
|
|
#define M_CELL_NUMBER_Y 0x00008001L
|
|
#define M_CELL_NUMBER_X_MIN 0x00008010L
|
|
#define M_CELL_NUMBER_Y_MIN 0x00008011L
|
|
#define M_CELL_NUMBER_X_MAX 0x00008012L
|
|
#define M_CELL_NUMBER_Y_MAX 0x00008013L
|
|
#define M_DATAMATRIX_SHAPE 0x00008014L
|
|
#define M_DOT_SIZE_MIN 0X00001609L
|
|
#define M_DOT_SIZE_MAX 0X0000160AL
|
|
#define M_DOT_SIZE_INPUT_UNITS 0X0000160BL
|
|
|
|
#if OldDefinesSupport
|
|
#define M_WRITE_CELL_NUMBER_X 0x00008015L
|
|
MIL_DEPRECATED(M_WRITE_CELL_NUMBER_X, 1040)
|
|
#define M_WRITE_CELL_NUMBER_Y 0x00008016L
|
|
MIL_DEPRECATED(M_WRITE_CELL_NUMBER_Y, 1040)
|
|
#endif
|
|
#define M_SPEED 8L // Already define in milpat.h
|
|
#define M_STRING_SIZE MAKE_INT64(0x0000050000000000) //Same as in Milocr and Milstr
|
|
#define M_STRING_SIZE_MIN 500L // Already defined in milstr.h
|
|
#define M_STRING_SIZE_MAX 62L // Already defined in milocr.h
|
|
#define M_STRING_FORMAT 0x00000048L
|
|
#define M_ERROR_CORRECTION 0x00008004L
|
|
#define M_ENCODING 0x00008005L
|
|
|
|
#if OldDefinesSupport
|
|
#define M_DOT_SPACING 0x00008007L
|
|
MIL_DEPRECATED(M_DOT_SPACING, 1020)
|
|
#endif
|
|
|
|
#define M_DOT_SPACING_MIN 0x00008008L
|
|
#define M_DOT_SPACING_MAX 0x00008009L
|
|
#define M_CHECK_FINDER_PATTERN 0x0000800CL
|
|
#define M_TOTAL_STRING_SIZE 0x0000800FL
|
|
|
|
#if OldDefinesSupport
|
|
#define M_DISTORTION 0x0000801BL
|
|
MIL_DEPRECATED(M_DISTORTION, 1030)
|
|
#endif
|
|
#define M_DECODE_ALGORITHM 0X00000B2AL
|
|
#define M_CHECK_QUIET_ZONE 0x0000801CL
|
|
#define M_ECC_CORRECTED_NUMBER 0x00008020L
|
|
#define M_POSITION_ACCURACY 13L // Already defined in milpat.h
|
|
#define M_RECOMMENDED_APERTURE_SIZE 0x00008023L
|
|
|
|
#define M_UNEVEN_GRID_STEP 5L
|
|
#define M_PERSPECTIVE_UNEVEN_GRID_STEP 7L
|
|
|
|
#define M_CODE_NOT_DEFORMED 0L
|
|
#define M_CODE_DEFORMED 1L
|
|
#define M_SCANLINE_AT_ANGLE 0X00001603L
|
|
|
|
#define M_POSITION_X 0x00003400L // Already define as 0x00003400L
|
|
#define M_POSITION_Y 0x00004400L // Already define as 0x00004400L
|
|
|
|
#define M_DISTANCE_MAX 0x00004900L
|
|
#if OldDefinesSupport
|
|
#define M_SCAN_REVERSE 0x00004B00L
|
|
MIL_DEPRECATED(M_SCAN_REVERSE, 1010)
|
|
#endif
|
|
#define M_USE_PRESEARCH 0x00004D00L
|
|
#define M_BEARER_BAR 0x00005200L
|
|
|
|
#if OldDefinesSupport
|
|
#define M_DATAMATRIX_TYPE 0x00004E00L
|
|
MIL_DEPRECATED(M_DATAMATRIX_TYPE, 1010)
|
|
#endif
|
|
//Undocumented flag usefull to increase
|
|
//speed if the user know his Datamatrix
|
|
//are always obsolete or never obsolete...
|
|
//Possible values are : M_OBSOLETE, M_REGULAR or
|
|
//M_ANY. M_ANY is the default value since it allow
|
|
//to read both type of Datamatrix.
|
|
#define M_SCANLINE_HEIGHT 0x00004F00L //Usefull to control the height of the scanline (in pixel).
|
|
#if OldDefinesSupport
|
|
#define M_SCANLINE_FREQUENCE 0x00005000L
|
|
MIL_DEPRECATED(M_SCANLINE_FREQUENCE, 1010)
|
|
#endif
|
|
//Obsolete : replaced by M_SCANLINE_STEP
|
|
//keep here for backward compatibility
|
|
#define M_SCANLINE_STEP 0x00005000L //Usefull to control the distance between scanline.
|
|
|
|
#define M_CODE_SEARCH_MODE 0x00000AABL //Used to know if we search for the first code encountered or for the best ones.
|
|
#define M_FAST 0x00002000L /* Also defined in milpat.h */
|
|
#define M_BEST 0x00100000L /* Also defined in milpat.h */
|
|
|
|
#define M_SUB_TYPE 0x00005100L //To enable code sub type for a read operation.
|
|
//Example : M_RSS14, M_RSS_LIMITED,...
|
|
|
|
|
|
|
|
#define M_GRADING_STANDARD 0x00008040L
|
|
#if OldDefinesSupport
|
|
#define M_VERIFICATION_STANDARD M_GRADING_STANDARD
|
|
MIL_DEPRECATED(M_VERIFICATION_STANDARD, 1010)
|
|
#endif
|
|
#define M_MAXIMUM_CALIBRATED_REFLECTANCE 0x00008041L
|
|
#define M_MINIMUM_CALIBRATED_REFLECTANCE 0x00008042L
|
|
#define M_APERTURE_MODE 0x00008043L
|
|
#define M_RELATIVE_APERTURE_FACTOR 0x00008044L
|
|
#define M_ABSOLUTE_APERTURE_SIZE 0x00008045L
|
|
#define M_PIXEL_SIZE_IN_MM 0x00008046L
|
|
#define M_SCANLINE_INPUT_UNITS 0x00008047L
|
|
#define M_ABSOLUTE_APERTURE_SIZE_INPUT_UNITS 0x00008048L
|
|
#define M_SEARCH_ANGLE_INPUT_UNITS 0x00008049L
|
|
#define M_CELL_SIZE_INPUT_UNITS 0x0000804AL
|
|
#define M_DOT_SPACING_INPUT_UNITS 0x0000804BL
|
|
#define M_CODE_FLIP 1413L
|
|
#define M_IS_GS1 1499L
|
|
#define M_IS_ECI 2556L
|
|
|
|
#define M_GRADING_STANDARD_EDITION 3121L
|
|
|
|
#define M_REFLECTANCE_CALIBRATION 1634L
|
|
#define M_SYSTEM_RESPONSE_CALIBRATION 1635L
|
|
#define M_MEAN_LIGHT_CALIBRATION 1636L
|
|
#define M_MEAN_LIGHT_TARGET 1637L
|
|
#define M_SYSTEM_RESPONSE_TARGET 1638L
|
|
#define M_INSPECTION_BAND_RATIO 1649L
|
|
#define M_NUMBER_OF_SCANLINES 1653L
|
|
|
|
#if OldDefinesSupport
|
|
#define M_AIMDPM_CALIBRATION_RESULTS 1654L
|
|
MIL_DEPRECATED(M_AIMDPM_CALIBRATION_RESULTS, 1040) // Use M_DPM_CALIBRATION_RESULTS instead.
|
|
#endif
|
|
#define M_DPM_CALIBRATION_RESULTS 1654L
|
|
|
|
#define M_APERTURE_SIZE_USED 1655L
|
|
#define M_DOT_SPACING_USED 1656L
|
|
|
|
#define M_EXTENDED_AREA_REFLECTANCE_CHECK 1657L
|
|
|
|
#define M_GRADE_QUIET_ZONE 2557L
|
|
|
|
#define M_LIGHTING_CONFIGURATION 4158L
|
|
|
|
#define M_FINDER_PATTERN_INPUT_UNITS 1679L
|
|
#define M_FINDER_PATTERN_MAX_GAP 1683L
|
|
#define M_FINDER_PATTERN_MINIMUM_LENGTH 1684L
|
|
#define M_FINDER_PATTERN_EXHAUSTIVE_SEARCH 1685L
|
|
|
|
#if OldDefinesSupport
|
|
#define M_MAX_GAP M_FINDER_PATTERN_MAX_GAP
|
|
#define M_MINIMUM_LSIDE_LENGTH M_FINDER_PATTERN_MINIMUM_LENGTH
|
|
#define M_EXHAUSTIVE_LSIDE_SEARCH M_FINDER_PATTERN_EXHAUSTIVE_SEARCH
|
|
MIL_DEPRECATED(M_MAX_GAP , 1010)
|
|
MIL_DEPRECATED(M_MINIMUM_LSIDE_LENGTH , 1010)
|
|
MIL_DEPRECATED(M_EXHAUSTIVE_LSIDE_SEARCH, 1010)
|
|
#endif
|
|
|
|
|
|
#define M_RESULT_OUTPUT_UNITS 1300L // Also in milim.h
|
|
|
|
|
|
|
|
|
|
#define M_NUMBER_OF_DECODED_ROWS 3591L
|
|
#define M_ROW_NUMBER_OF_DECODED_SCANS 3592L
|
|
#define M_NUMBER_OF_DECODED_SCANS 3593L
|
|
#define M_DECODED_SCANS_SCORE 3594L
|
|
#define M_DECODED_SCANS_START_X 3595L
|
|
#define M_DECODED_SCANS_START_Y 3596L
|
|
#define M_DECODED_SCANS_END_X 3597L
|
|
#define M_DECODED_SCANS_END_Y 3598L
|
|
|
|
|
|
// Aperture related control values
|
|
#define M_ABSOLUTE 1L // also defined in milpat.h, milcolor.h
|
|
#define M_RELATIVE 21L // also defined in milcolor.h
|
|
#define M_AUTO 444L // also defined in miledge.h, milmetrol.h, milmod.h, milocr.h, milcolor.h
|
|
|
|
// M_USE_PRESEARCH related control values
|
|
#define M_STAT_BASE M_ENABLE
|
|
#define M_FINDER_PATTERN_BASE 2L
|
|
|
|
|
|
// input units control values
|
|
#define M_PIXEL 0x1000L
|
|
#define M_WORLD 0x2000L
|
|
|
|
// Parameters for output units
|
|
#define M_PIXEL 0x1000L
|
|
#define M_WORLD 0x2000L
|
|
#define M_ACCORDING_TO_CALIBRATION 1301L
|
|
|
|
// M_SEARCH_ANGLE control value
|
|
#define M_ACCORDING_TO_REGION 0x40000000L
|
|
|
|
#define M_SIZE_X 1536L // 0x600
|
|
#define M_SIZE_Y 1537L // 0x601
|
|
#define M_TOP_LEFT_X 1004L
|
|
#define M_TOP_LEFT_Y 1005L
|
|
#define M_TOP_RIGHT_X 1014L
|
|
#define M_TOP_RIGHT_Y 1015L
|
|
#define M_BOTTOM_LEFT_X 1016L
|
|
#define M_BOTTOM_LEFT_Y 1017L
|
|
#define M_BOTTOM_RIGHT_X 1018L
|
|
#define M_BOTTOM_RIGHT_Y 1019L
|
|
#if OldDefinesSupport
|
|
#define M_FULL_EXTENT_TOP_LEFT_X 1020L
|
|
#define M_FULL_EXTENT_TOP_LEFT_Y 1021L
|
|
#define M_FULL_EXTENT_TOP_RIGHT_X 1022L
|
|
#define M_FULL_EXTENT_TOP_RIGHT_Y 1023L
|
|
#define M_FULL_EXTENT_BOTTOM_LEFT_X 1024L
|
|
#define M_FULL_EXTENT_BOTTOM_LEFT_Y 1025L
|
|
#define M_FULL_EXTENT_BOTTOM_RIGHT_X 1026L
|
|
#define M_FULL_EXTENT_BOTTOM_RIGHT_Y 1027L
|
|
MIL_DEPRECATED(M_FULL_EXTENT_TOP_LEFT_X , 1010)
|
|
MIL_DEPRECATED(M_FULL_EXTENT_TOP_LEFT_Y , 1010)
|
|
MIL_DEPRECATED(M_FULL_EXTENT_TOP_RIGHT_X , 1010)
|
|
MIL_DEPRECATED(M_FULL_EXTENT_TOP_RIGHT_Y , 1010)
|
|
MIL_DEPRECATED(M_FULL_EXTENT_BOTTOM_LEFT_X , 1010)
|
|
MIL_DEPRECATED(M_FULL_EXTENT_BOTTOM_LEFT_Y , 1010)
|
|
MIL_DEPRECATED(M_FULL_EXTENT_BOTTOM_RIGHT_X, 1010)
|
|
MIL_DEPRECATED(M_FULL_EXTENT_BOTTOM_RIGHT_Y, 1010)
|
|
#endif
|
|
|
|
#define M_QUIET_ZONE_TOP_LEFT_X 1020L
|
|
#define M_QUIET_ZONE_TOP_LEFT_Y 1021L
|
|
#define M_QUIET_ZONE_TOP_RIGHT_X 1022L
|
|
#define M_QUIET_ZONE_TOP_RIGHT_Y 1023L
|
|
#define M_QUIET_ZONE_BOTTOM_LEFT_X 3039L
|
|
#define M_QUIET_ZONE_BOTTOM_LEFT_Y 1025L
|
|
#define M_QUIET_ZONE_BOTTOM_RIGHT_X 1026L
|
|
#define M_QUIET_ZONE_BOTTOM_RIGHT_Y 1027L
|
|
|
|
#define M_EXTENDED_AREA_TOP_LEFT_X 1028L
|
|
#define M_EXTENDED_AREA_TOP_LEFT_Y 1029L
|
|
#define M_EXTENDED_AREA_TOP_RIGHT_X 1030L
|
|
#define M_EXTENDED_AREA_TOP_RIGHT_Y 1031L
|
|
#define M_EXTENDED_AREA_BOTTOM_LEFT_X 1032L
|
|
#define M_EXTENDED_AREA_BOTTOM_LEFT_Y 1033L
|
|
#define M_EXTENDED_AREA_BOTTOM_RIGHT_X 1034L
|
|
#define M_EXTENDED_AREA_BOTTOM_RIGHT_Y 1035L
|
|
|
|
#define M_USER_LABEL 228L // also defined in milreg.h
|
|
|
|
|
|
// Verification results
|
|
// Modifiers
|
|
#define M_LINEAR_COMPONENT 0x40000000L
|
|
#define M_2D_COMPONENT 0x08000000L
|
|
|
|
// Grades
|
|
// Available value range for flags: 0x9000 - 0x90FF
|
|
#define M_OVERALL_SYMBOL_GRADE 0x00009000L
|
|
#define M_SYMBOL_CONTRAST_GRADE 0x00009001L
|
|
#define M_PRINT_GROWTH_GRADE 0x00009002L
|
|
#define M_AXIAL_NONUNIFORMITY_GRADE 0x00009003L
|
|
#define M_UNUSED_ERROR_CORRECTION_GRADE 0x00009004L
|
|
#define M_DECODE_GRADE 0x00009005L
|
|
#define M_EDGE_DETERMINATION_GRADE 0x00009006L // Deprecated flag
|
|
#define M_MINIMUM_REFLECTANCE_GRADE 0x00009007L
|
|
#define M_MINIMUM_EDGE_CONTRAST_GRADE 0x00009008L // Deprecated flag
|
|
#define M_MODULATION_GRADE 0x00009009L
|
|
#define M_DEFECTS_GRADE 0x0000900AL
|
|
#define M_DECODABILITY_GRADE 0x0000900BL
|
|
#define M_RAP_GRADE 0x0000900CL // Deprecated flag
|
|
#define M_SYMBOL_BASED_GRADE 0x0000900DL // Deprecated flag
|
|
#define M_START_STOP_PATTERN_GRADE 0x0000900EL
|
|
#define M_SCAN_DECODE_GRADE 0x0000900FL
|
|
#define M_SCAN_SYMBOL_CONTRAST_GRADE 0x00009010L
|
|
#define M_SCAN_EDGE_CONTRAST_MINIMUM_GRADE 0x00009011L
|
|
#define M_SCAN_REFLECTANCE_MINIMUM_GRADE 0x00009012L
|
|
#define M_SCAN_MODULATION_GRADE 0x00009013L
|
|
#define M_SCAN_DEFECTS_GRADE 0x00009014L
|
|
#define M_SCAN_DECODABILITY_GRADE 0x00009015L
|
|
#define M_SCAN_REFLECTANCE_PROFILE_GRADE 0x00009016L
|
|
#define M_SCAN_EDGE_DETERMINATION_GRADE 0x00009017L
|
|
#define M_SCAN_GUARD_PATTERN_GRADE 0x00009018L
|
|
#define M_SCAN_QUIET_ZONE_GRADE 0x00009019L
|
|
#define M_SCAN_WIDE_TO_NARROW_RATIO_GRADE 0x0000901AL
|
|
#define M_SCAN_INTERCHARACTER_GAP_GRADE 0x0000901BL
|
|
|
|
#define M_ROW_OVERALL_GRADE 0x00009030L
|
|
|
|
#define M_CODEWORD_YIELD_GRADE 0x00009040L
|
|
#define M_CODEWORD_DECODABILITY_GRADE 0x00009041L
|
|
#define M_CODEWORD_DEFECTS_GRADE 0x00009042L
|
|
#define M_CODEWORD_MODULATION_GRADE 0x00009043L
|
|
|
|
#define M_GRID_NONUNIFORMITY_GRADE 0x00009044L
|
|
#define M_FIXED_PATTERN_DAMAGE_GRADE 0x00009045L
|
|
#define M_CELL_CONTRAST_GRADE 0x00009046L
|
|
#define M_CELL_MODULATION_GRADE 0x00009047L
|
|
#define M_FORMAT_INFORMATION_GRADE 0x00009048L
|
|
#define M_VERSION_INFORMATION_GRADE 0x00009049L
|
|
#define M_CONTRAST_UNIFORMITY_GRADE 0x0000904AL
|
|
#define M_CODEWORD_REFLECTANCE_MARGIN_GRADE 0x0000904BL
|
|
#define M_REFLECTANCE_MARGIN_GRADE 0x0000904CL
|
|
|
|
#define M_FORMAT_INFORMATION_1_GRADE 0x00009059L
|
|
#define M_FORMAT_INFORMATION_2_GRADE 0x0000905AL
|
|
#define M_VERSION_INFORMATION_1_GRADE 0x0000905BL
|
|
#define M_VERSION_INFORMATION_2_GRADE 0x0000905CL
|
|
|
|
#define M_PRINT_GROWTH_HORIZONTAL_GRADE 0X00009072L
|
|
#define M_PRINT_GROWTH_VERTICAL_GRADE 0X00009073L
|
|
|
|
#define M_FIXED_PATTERN_DAMAGE_L1_GRADE 0x0000904DL
|
|
#define M_FIXED_PATTERN_DAMAGE_L2_GRADE 0x0000904EL
|
|
#define M_FIXED_PATTERN_DAMAGE_QZL1_GRADE 0x0000904FL
|
|
#define M_FIXED_PATTERN_DAMAGE_QZL2_GRADE 0x00009050L
|
|
#define M_FIXED_PATTERN_DAMAGE_CLOCKTRACK_SOLID_GRADE 0x00009051L
|
|
#define M_FIXED_PATTERN_DAMAGE_AVERAGE_GRADE 0x00009052L
|
|
#define M_FIXED_PATTERN_DAMAGE_A1_GRADE 0x00009053L
|
|
#define M_FIXED_PATTERN_DAMAGE_A2_GRADE 0x00009054L
|
|
#define M_FIXED_PATTERN_DAMAGE_A3_GRADE 0x00009055L
|
|
#define M_FIXED_PATTERN_DAMAGE_B1_GRADE 0x00009056L
|
|
#define M_FIXED_PATTERN_DAMAGE_B2_GRADE 0x00009057L
|
|
#define M_FIXED_PATTERN_DAMAGE_C_GRADE 0x00009058L
|
|
#define M_FIXED_PATTERN_DAMAGE_A_GRADE 0x0000906DL
|
|
#define M_FIXED_PATTERN_DAMAGE_B_GRADE 0x0000906EL
|
|
#define M_FIXED_PATTERN_DAMAGE_INTERSTITIAL_DOTS_GRADE 0X00009074L
|
|
#define M_FIXED_PATTERN_DAMAGE_QUIET_ZONES_GRADE 0X00009075L
|
|
|
|
#define M_EXTENDED_AREA_CODEWORD_MODULATION_GRADE 0x0000905DL
|
|
#define M_EXTENDED_AREA_MODULATION_GRADE 0x0000905EL
|
|
#define M_EXTENDED_AREA_SYMBOL_CONTRAST_GRADE 0x0000905FL
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_GRADE 0x00009060L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_L1_GRADE 0x00009061L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_L2_GRADE 0x00009062L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_QZL1_GRADE 0x00009063L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_QZL2_GRADE 0x00009064L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_CLOCKTRACK_SOLID_GRADE 0x00009065L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_AVERAGE_GRADE 0x00009066L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_A1_GRADE 0x00009067L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_A2_GRADE 0x00009068L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_A3_GRADE 0x00009069L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_B1_GRADE 0x0000906AL
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_B2_GRADE 0x0000906BL
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_C_GRADE 0x0000906CL
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_A_GRADE 0x0000906FL
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_B_GRADE 0x00009070L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_INTERSTITIAL_DOTS_GRADE 0X00009076L
|
|
#define M_EXTENDED_AREA_FIXED_PATTERN_DAMAGE_QUIET_ZONES_GRADE 0X00009077L
|
|
|
|
#define M_NUMBER_OF_FIXED_PATTERN_DAMAGE_B_SEGMENT 0x00009071L
|
|
|
|
// Measured paramaeters results flags
|
|
// Available value range for flags : 0xA000 - 0xA0FF
|
|
#define M_SYMBOL_CONTRAST 0x0000A000L
|
|
#define M_MINIMUM_EDGE_CONTRAST 0x0000A001L // Deprecated flag
|
|
#define M_MINIMUM_REFLECTANCE 0x0000A002L
|
|
#define M_MAXIMUM_REFLECTANCE 0x0000A003L // Deprecated flag
|
|
#define M_MODULATION 0x0000A004L // Deprecated flag
|
|
#define M_DEFECTS 0x0000A005L // Deprecated flag
|
|
#define M_DECODABILITY 0x0000A006L // Deprecated flag
|
|
#define M_MAXIMUM_ERN 0x0000A007L // Deprecated flag
|
|
#define M_AXIAL_NONUNIFORMITY 0x0000A008L
|
|
#define M_PRINT_GROWTH 0x0000A009L
|
|
#define M_UNUSED_ERROR_CORRECTION 0x0000A00AL
|
|
#define M_SCAN_SYMBOL_CONTRAST 0x0000A00BL
|
|
#define M_SCAN_REFLECTANCE_MINIMUM 0x0000A00CL
|
|
#define M_SCAN_REFLECTANCE_MAXIMUM 0x0000A00DL
|
|
#define M_SCAN_MODULATION 0x0000A00EL
|
|
#define M_SCAN_ERN_MAXIMUM 0x0000A00FL
|
|
#define M_SCAN_DEFECTS 0x0000A010L
|
|
#define M_SCAN_DECODABILITY 0x0000A011L
|
|
#define M_SCAN_EDGE_CONTRAST_MINIMUM 0x0000A012L
|
|
#define M_SCAN_GUARD_PATTERN 0x0000A013L
|
|
#define M_SCAN_QUIET_ZONE 0x0000A014L
|
|
#define M_SCAN_WIDE_TO_NARROW_RATIO 0x0000A015L
|
|
#define M_SCAN_INTERCHARACTER_GAP 0x0000A016L
|
|
#define M_SCAN_PRINT_CONTRAST_SIGNAL 0x0000A017L
|
|
#define M_SCAN_MINIMUM_REFLECTANCE_MARGIN 0x0000A018L
|
|
#define M_SCAN_EDGE_DETERMINATION_WARNING 0x0000A019L
|
|
|
|
#define M_SCAN_PROFILE_START_X 0x0000A030L
|
|
#define M_SCAN_PROFILE_START_Y 0x0000A031L
|
|
#define M_SCAN_PROFILE_END_X 0x0000A032L
|
|
#define M_SCAN_PROFILE_END_Y 0x0000A033L
|
|
#define M_SCAN_REFLECTANCE_PROFILE_VALUES 0x0000A034L
|
|
#define M_SCAN_REFLECTANCE_PROFILE_LENGTH 0x0000A035L
|
|
|
|
#define M_CODEWORD_YIELD 0x0000A040L
|
|
#define M_CODEWORD_DECODABILITY 0x0000A041L
|
|
#define M_CODEWORD_DEFECTS 0x0000A042L
|
|
#define M_CODEWORD_MODULATION 0x0000A043L
|
|
|
|
#define M_GRID_NONUNIFORMITY 0x0000A044L
|
|
#define M_CELL_CONTRAST 0x0000A045L
|
|
#define M_CONTRAST_UNIFORMITY 0x0000A046L
|
|
#define M_CODEWORD_REFLECTANCE_MARGIN 0x0000A047L
|
|
|
|
#define M_R_MIN 0x0000A048L
|
|
#define M_R_MAX 0x0000A049L
|
|
|
|
#define M_EXTENDED_AREA_CODEWORD_MODULATION 0x0000A04AL
|
|
#define M_EXTENDED_AREA_REFLECTANCE_MINIMUM 0x0000A04BL
|
|
#define M_EXTENDED_AREA_REFLECTANCE_MAXIMUM 0x0000A04CL
|
|
#define M_EXTENDED_AREA_SYMBOL_CONTRAST 0x0000A04DL
|
|
#define M_ASTERISK 0x0000A04EL
|
|
|
|
#define M_SYMBOL_CONTRAST_SNR 0x0000A04FL
|
|
#define M_HORIZONTAL_MARK_GROWTH 0x0000A050L
|
|
#define M_VERTICAL_MARK_GROWTH 0x0000A051L
|
|
#define M_CELL_WIDTH 0x0000A052L
|
|
#define M_CELL_HEIGHT 0x0000A053L
|
|
#define M_HORIZONTAL_MARK_MISPLACEMENT 0x0000A054L
|
|
#define M_VERTICAL_MARK_MISPLACEMENT 0x0000A055L
|
|
#define M_NUMBER_OF_INTERLEAVED_BLOCKS 0x0000A056L
|
|
#define M_CELL_DEFECTS 0x0000A057L
|
|
#define M_FINDER_PATTERN_DEFECTS 0x0000A058L
|
|
#define M_CORNER_P1_X 0x0000A059L
|
|
#define M_CORNER_P1_Y 0x0000A05AL
|
|
#define M_CORNER_P2_X 0x0000A05BL
|
|
#define M_CORNER_P2_Y 0x0000A05CL
|
|
#define M_CORNER_P3_X 0x0000A05DL
|
|
#define M_CORNER_P3_Y 0x0000A05EL
|
|
#define M_CORNER_P4_X 0x0000A05FL
|
|
#define M_CORNER_P4_Y 0x0000A060L
|
|
|
|
#define M_DECODING_MASK_TYPE 0X0000A061L
|
|
#define M_DECODING_MASK_SCORE 0X0000A062L
|
|
#define M_DECODING_MASK_SCORE_THRESHOLD 0X0000A063L
|
|
#define M_PRINT_GROWTH_HORIZONTAL 0X0000A064L
|
|
#define M_PRINT_GROWTH_VERTICAL 0X0000A065L
|
|
|
|
// General
|
|
// Available value range for flags: 0xB000 - 0xB0FF
|
|
#define M_NUMBER_OF_ROWS 0x0000B000L
|
|
#define M_ROW_NUMBER_OF_SCANS 0x0000B001L
|
|
#if OldDefinesSupport
|
|
#define M_NUMBER_OF_SCANS_PER_ROW M_ROW_NUMBER_OF_SCANS
|
|
MIL_DEPRECATED(M_NUMBER_OF_SCANS_PER_ROW, 1030)
|
|
#endif
|
|
#define M_NUMBER_OF_SCANS 0x0000B002L
|
|
#define M_NUMBER_OF_CODEWORDS 0x0000B003L
|
|
#define M_NUMBER_OF_ERROR_CORRECTION_CODEWORDS 0x0000B004L
|
|
#define M_NUMBER_OF_ERRORS 0x0000B005L
|
|
#define M_NUMBER_OF_ERASURES 0x0000B006L
|
|
#define M_NUMBER_OF_DATA_CODEWORDS 0x0000B007L
|
|
#define M_DATA_CODEWORDS 0x0000B009L
|
|
#define M_QUIET_ZONE_INCLUDED 0x0000B00AL
|
|
#define M_EXTENDED_AREA_QUIET_ZONE_INCLUDED 0x0000B00BL
|
|
#define M_GRADING_STANDARD_EDITION_USED 0x0000B00CL
|
|
|
|
//values in relation with functionality of getting different subset of supported code types
|
|
#define M_SUPPORTED_CODE_TYPES 0X00000A8BL
|
|
#define M_SUPPORTED_CODE_TYPES_1D 0X00000A8FL
|
|
#define M_SUPPORTED_CODE_TYPES_2D 0X00000A93L
|
|
#define M_SUPPORTED_CODE_TYPES_POSTAL 0X00000AD5L
|
|
#define M_SUPPORTED_CODE_TYPES_DETECT 0X00000B70L
|
|
|
|
|
|
#define M_ESCAPE_SEQUENCE 0x00000010L
|
|
#define M_GS1_FORMAT 0x00000040L
|
|
|
|
#define M_SIZE_BYTE 5061L // already defined as 5061L
|
|
#define M_CODE_MODEL_ID 5064L
|
|
#define M_NUMBER_OF_CODE_MODELS 5065L
|
|
#define M_CODE_MODEL_INDEX 5066L
|
|
#define M_SEARCH_ANGLE_MODE 0x00000080L // Already define as 0x00000080L
|
|
#define M_NUMBER 1009L // Already defined in mil.h
|
|
#define M_TOTAL_NUMBER 1010L
|
|
#define M_SET_TRAINING_STATE_ALL 0X00000A18L
|
|
#define M_RESET_FROM_TRAINED_RESULTS 0X00000A1AL
|
|
#define M_TRAIN_TIMEOUT 0X00000A78L
|
|
|
|
// ResultType for Code Train
|
|
#define M_NUMBER_OF_TRAINING_IMAGES 0X00000A09L
|
|
#define M_TRAINING_SCORE 0X00000A0AL
|
|
|
|
#define M_PASSED_NUMBER_OF_IMAGES 0X00000A0BL
|
|
#define M_FAILED_NUMBER_OF_IMAGES 0X00000A0CL
|
|
#define M_PASSED_IMAGES_ID 0X00000A0DL
|
|
#define M_FAILED_IMAGES_ID 0X00000A0EL
|
|
#define M_PASSED_IMAGES_INDEX 0X00000A15L
|
|
#define M_FAILED_IMAGES_INDEX 0X00000A16L
|
|
|
|
#if OldDefinesSupport
|
|
#define M_NUMBER_PASS 0X00000A0BL
|
|
MIL_DEPRECATED(M_NUMBER_PASS, 1040) // use M_PASSED_NUMBER_OF_IMAGES instead.
|
|
#define M_NUMBER_FAIL 0X00000A0CL
|
|
MIL_DEPRECATED(M_NUMBER_FAIL, 1040) // use M_FAILED_NUMBER_OF_IMAGES instead.
|
|
#define M_IMAGE_ID_PASSED 0X00000A0DL
|
|
MIL_DEPRECATED(M_IMAGE_ID_PASSED, 1040) // use M_PASSED_IMAGES_ID instead.
|
|
#define M_IMAGE_ID_FAILED 0X00000A0EL
|
|
MIL_DEPRECATED(M_IMAGE_ID_FAILED, 1040) // use M_FAILED_IMAGES_ID instead.
|
|
#define M_IMAGE_INDEX_PASSED 0X00000A15L
|
|
MIL_DEPRECATED(M_IMAGE_INDEX_PASSED, 1040) // use M_PASSED_IMAGES_INDEX instead.
|
|
#define M_IMAGE_INDEX_FAILED 0X00000A16L
|
|
MIL_DEPRECATED(M_IMAGE_INDEX_FAILED, 1040) // use M_FAILED_IMAGES_INDEX instead.
|
|
#endif
|
|
|
|
#define M_CODE_RESULT_ID 0X00000A17L
|
|
#define M_CODE_MODEL_NUMBER_OF_OCCURRENCES 0X00000A19L
|
|
|
|
#define M_TRAIN_ENABLED_CONTROL_TYPES 0X00000D0BL
|
|
#define M_TRAIN_ENABLED_CONTROL_TYPES_STATE 0X00000D0CL
|
|
#define M_TRAIN_ENABLED_CONTROL_TYPES_ORIGINAL_VALUE 0X00000D0DL
|
|
#define M_TRAIN_ENABLED_CONTROL_TYPES_TRAINED_VALUE 0X00000D0EL
|
|
#define M_TRAIN_ENABLED_NUMBER_OF_MODEL_CONTROL_TYPES 0X00000D0FL
|
|
#define M_TRAINED_CONTROL_TYPES 0X00000BDDL
|
|
#define M_TRAINED_NUMBER_OF_MODEL_CONTROL_TYPES 0X00000CF0L
|
|
|
|
|
|
|
|
|
|
/**************************************************************************/
|
|
/* McodeSave(), McodeRestore() */
|
|
/**************************************************************************/
|
|
#define M_MEMORY (M_APP_INQUIRE_SYS_START+120L) /*5120*/ // Already defined in Mil.h
|
|
#define M_INTERACTIVE M_NULL // Already defined in mil.h, milcal.h, miledge.h, milmeas.h, milocr.h, milpat.h, milmod.h
|
|
|
|
#define M_SAVE 0x100L // Already defines in milmod.h, milocr.h
|
|
#define M_RESTORE 0x10L
|
|
#define M_LOAD 1L // Already defines in milmod.h, milmeas.h, mil.h
|
|
#define M_INQUIRE_SIZE_BYTE 2L // Already defines in milmod.h
|
|
#define M_SAVE_REPORT 0x200L
|
|
|
|
/**************************************************************************/
|
|
/* McodeInquire(), McodeGetResult(), McodeControl() parameter values */
|
|
/**************************************************************************/
|
|
#define M_INITIALIZATION_MODE 2148L
|
|
#define M_TYPICAL_RECOGNITION 2
|
|
#define M_IMPROVED_RECOGNITION 3
|
|
|
|
#define M_TIMEOUT 2077L // already defined in mil.h
|
|
#define M_TIMEOUT_END 10L // Also defined in milmod.h
|
|
#if OldDefinesSupport
|
|
#define M_ECC_050 0
|
|
MIL_DEPRECATED(M_ECC_050, 1040)
|
|
#define M_ECC_080 1
|
|
MIL_DEPRECATED(M_ECC_080, 1040)
|
|
#define M_ECC_100 2
|
|
MIL_DEPRECATED(M_ECC_100, 1040)
|
|
#define M_ECC_140 3
|
|
MIL_DEPRECATED(M_ECC_140, 1040)
|
|
#endif
|
|
#define M_ECC_NONE 4
|
|
#define M_ECC_CHECK_DIGIT 5
|
|
#define M_ECC_UNKNOWN 6
|
|
#define M_ECC_200 7
|
|
#define M_ECC_REED_SOLOMON_0 10
|
|
#define M_ECC_REED_SOLOMON_1 (M_ECC_REED_SOLOMON_0 + 1)
|
|
#define M_ECC_REED_SOLOMON_2 (M_ECC_REED_SOLOMON_0 + 2)
|
|
#define M_ECC_REED_SOLOMON_3 (M_ECC_REED_SOLOMON_0 + 3)
|
|
#define M_ECC_REED_SOLOMON_4 (M_ECC_REED_SOLOMON_0 + 4)
|
|
#define M_ECC_REED_SOLOMON_5 (M_ECC_REED_SOLOMON_0 + 5)
|
|
#define M_ECC_REED_SOLOMON_6 (M_ECC_REED_SOLOMON_0 + 6)
|
|
#define M_ECC_REED_SOLOMON_7 (M_ECC_REED_SOLOMON_0 + 7)
|
|
#define M_ECC_REED_SOLOMON_8 (M_ECC_REED_SOLOMON_0 + 8)
|
|
#define M_ECC_REED_SOLOMON 19
|
|
#if OldDefinesSupport
|
|
#define M_ECC_010 20
|
|
MIL_DEPRECATED(M_ECC_010, 1040)
|
|
#define M_ECC_040 21
|
|
MIL_DEPRECATED(M_ECC_040, 1040)
|
|
#define M_ECC_060 22
|
|
MIL_DEPRECATED(M_ECC_060, 1040)
|
|
#define M_ECC_070 23
|
|
MIL_DEPRECATED(M_ECC_070, 1040)
|
|
#define M_ECC_090 24
|
|
MIL_DEPRECATED(M_ECC_090, 1040)
|
|
#define M_ECC_110 25
|
|
MIL_DEPRECATED(M_ECC_110, 1040)
|
|
#define M_ECC_120 26
|
|
MIL_DEPRECATED(M_ECC_120, 1040)
|
|
#define M_ECC_130 27
|
|
MIL_DEPRECATED(M_ECC_130, 1040)
|
|
#endif
|
|
#define M_ECC_COMPOSITE 28
|
|
#define M_ECC_L 29
|
|
#define M_ECC_M 30
|
|
#define M_ECC_Q 31
|
|
#define M_ECC_H 32
|
|
#define M_ECC_4STATE 34
|
|
|
|
#define M_ENC_NUM 0 // These numbers are importants!!
|
|
#define M_ENC_ALPHA 1
|
|
#define M_ENC_ALPHANUM_PUNC 2
|
|
#define M_ENC_ALPHANUM 3
|
|
#define M_ENC_ASCII 4
|
|
#define M_ENC_ISO8 5
|
|
#define M_ENC_MODE2 6
|
|
#define M_ENC_MODE3 (M_ENC_MODE2 + 1)
|
|
#define M_ENC_MODE4 (M_ENC_MODE2 + 2)
|
|
#define M_ENC_MODE5 (M_ENC_MODE2 + 3)
|
|
#define M_ENC_MODE6 (M_ENC_MODE2 + 4)
|
|
#define M_ENC_STANDARD 11
|
|
#define M_ENC_EAN13 0x00000020 //32
|
|
#define M_ENC_EAN8 0x00000040 //64
|
|
#define M_ENC_UPCA 0x00000080 //128
|
|
#define M_ENC_UPCE 0x00000100 //256
|
|
#if OldDefinesSupport
|
|
#define M_ENC_UCCEAN128_PDF417 0x00000200 //512
|
|
#define M_ENC_RSS14 0x00000400 //1024
|
|
#define M_ENC_RSS14_TRUNCATED 0x00000800 //2048
|
|
#define M_ENC_RSS_LIMITED 0x00001000 //4096
|
|
#define M_ENC_RSS_EXPANDED 0x00002000 //8192
|
|
#define M_ENC_RSS14_STACKED 0x00004000 //16384
|
|
#define M_ENC_RSS14_STACKED_OMNI 0x00008000 //32768
|
|
#define M_ENC_RSS_EXPANDED_STACKED 0x00010000 //65536
|
|
#define M_ENC_UCCEAN128_MICROPDF417 0x00020000 //131072
|
|
#define M_ENC_UCCEAN128 0x00040000 //262144
|
|
#define M_ENC_GS1_128 0x00040000
|
|
MIL_DEPRECATED(M_ENC_UCCEAN128_PDF417, 1010)
|
|
MIL_DEPRECATED(M_ENC_RSS14, 1010)
|
|
MIL_DEPRECATED(M_ENC_RSS14_TRUNCATED, 1010)
|
|
MIL_DEPRECATED(M_ENC_RSS_LIMITED, 1010)
|
|
MIL_DEPRECATED(M_ENC_RSS_EXPANDED, 1010)
|
|
MIL_DEPRECATED(M_ENC_RSS14_STACKED, 1010)
|
|
MIL_DEPRECATED(M_ENC_RSS14_STACKED_OMNI, 1010)
|
|
MIL_DEPRECATED(M_ENC_RSS_EXPANDED_STACKED, 1010)
|
|
MIL_DEPRECATED(M_ENC_UCCEAN128_MICROPDF417, 1010)
|
|
MIL_DEPRECATED(M_ENC_UCCEAN128, 1010)
|
|
MIL_DEPRECATED(M_ENC_GS1_128, 1010)
|
|
#endif
|
|
|
|
#define M_ENC_GS1_128_PDF417 0x00000200
|
|
#define M_ENC_GS1_DATABAR_OMNI 0x00000400
|
|
#define M_ENC_GS1_DATABAR_TRUNCATED 0x00000800
|
|
#define M_ENC_GS1_DATABAR_LIMITED 0x00001000
|
|
#define M_ENC_GS1_DATABAR_EXPANDED 0x00002000
|
|
#define M_ENC_GS1_DATABAR_STACKED 0x00004000
|
|
#define M_ENC_GS1_DATABAR_STACKED_OMNI 0x00008000
|
|
#define M_ENC_GS1_DATABAR_EXPANDED_STACKED 0x00010000
|
|
#define M_ENC_GS1_128_MICROPDF417 0x00020000
|
|
|
|
|
|
#define M_ENC_QRCODE_MODEL1 0x00200000 //2097152
|
|
#define M_ENC_QRCODE_MODEL2 0x00400000 //4194304
|
|
|
|
// 4-State encoding
|
|
#define M_ENC_US_MAIL 14
|
|
#define M_ENC_UK_MAIL 15
|
|
#define M_ENC_AUSTRALIA_MAIL_RAW 16
|
|
#define M_ENC_AUSTRALIA_MAIL_C 17
|
|
#define M_ENC_AUSTRALIA_MAIL_N 18
|
|
#define M_ENC_KOREA_MAIL 19
|
|
// AddOn encoding
|
|
#define M_ENC_UPCA_ADDON 20
|
|
#define M_ENC_UPCE_ADDON 21
|
|
#define M_ENC_EAN13_ADDON 22
|
|
#define M_ENC_EAN8_ADDON 23
|
|
|
|
// Aztec encoding
|
|
#define M_ENC_AZTEC_COMPACT 24
|
|
#define M_ENC_AZTEC_FULL_RANGE 25
|
|
#define M_ENC_AZTEC_RUNE 26
|
|
|
|
#define M_STATUS_READ_OK 0
|
|
#define M_STATUS_CRC_FAILED 1
|
|
#define M_STATUS_ECC_UNKNOWN 2
|
|
#define M_STATUS_ENC_UNKNOWN 3
|
|
#define M_STATUS_WRITE_OK 4
|
|
#define M_STATUS_WRITE_FAILED 5
|
|
#define M_STATUS_NOT_FOUND 6
|
|
#define M_STATUS_GRADE_OK 7
|
|
#define M_STATUS_GRADE_FAILED 8
|
|
#if OldDefinesSupport
|
|
#define M_STATUS_VERIFY_OK M_STATUS_GRADE_OK //obsolete flag, kept for legacy purpose
|
|
#define M_STATUS_VERIFY_FAILED M_STATUS_GRADE_FAILED //obsolete flag, kept for legacy purpose
|
|
MIL_DEPRECATED(M_STATUS_VERIFY_OK, 1010)
|
|
MIL_DEPRECATED(M_STATUS_VERIFY_FAILED, 1010)
|
|
#endif
|
|
#define M_STATUS_NO_RESULT_AVAILABLE 9
|
|
#define M_STATUS_TIMEOUT_END 10
|
|
#define M_STATUS_ENCODING_ERROR 11
|
|
#define M_STATUS_TRAIN_OK 13
|
|
#define M_STATUS_TRAIN_FAILED 14
|
|
#define M_STATUS_DETECT_OK 15
|
|
#define M_STATUS_DETECT_FAILED 16
|
|
|
|
#define M_VERY_LOW 0L // Already define as 0L
|
|
#define M_LOW 1L // Already define as 1L
|
|
#define M_MEDIUM 2L // Already define as 2L
|
|
#define M_HIGH 3L // Already define as 3L
|
|
#define M_VERY_HIGH 4L // Already define as 4L
|
|
|
|
#define M_ISO_GRADING 0x00000010L
|
|
#if OldDefinesSupport
|
|
#define M_AIMDPM_GRADING 0x00000080L
|
|
MIL_DEPRECATED(M_AIMDPM_GRADING, 1040) // use M_ISO_DPM_GRADING instead.
|
|
#endif
|
|
#define M_ISO_DPM_GRADING 0x00000080L
|
|
#define M_SEMI_T10_GRADING 0x00000100L
|
|
|
|
|
|
#define M_ISO_15416_2000 0x00000001L
|
|
#define M_ISO_15416_2016 0x00000002L
|
|
#define M_ISO_15415_2011_15416_2000 0x00000004L
|
|
#define M_ISO_15415_2011_15416_2016 0x00000008L
|
|
#define M_ISO_29158_2011 0x00000010L
|
|
#define M_SEMI_T10_0701 0x00000080L
|
|
#define M_ISO_29158_2020 0x00000100L
|
|
|
|
|
|
#if OldDefinesSupport
|
|
#define M_ISO_VERIFICATION M_ISO_GRADING
|
|
#define M_ANSI_VERIFICATION 0x00000020L
|
|
#define M_LEGACY_VERIFICATION 0x00000040L
|
|
#define M_AIMDPM_VERIFICATION M_ISO_DPM_GRADING
|
|
MIL_DEPRECATED(M_ISO_VERIFICATION , 1010)
|
|
MIL_DEPRECATED(M_ANSI_VERIFICATION , 1010)
|
|
MIL_DEPRECATED(M_LEGACY_VERIFICATION, 1010)
|
|
MIL_DEPRECATED(M_AIMDPM_VERIFICATION, 1010)
|
|
#endif
|
|
|
|
#define M_ANY 0x11000000L // Already define as 0x11000000L
|
|
#define M_DEFAULT 0x10000000L // Already define as 0x10000000L
|
|
|
|
#define M_PRESENT 2L // Already define as 2L
|
|
#define M_ABSENT 3L
|
|
|
|
#define M_REGULAR 0x00020000L // Already define as 0x00020000L
|
|
|
|
#define M_RELATIVE 21L // Already defined in milcolor.h
|
|
#define M_ABSOLUTE 1L // Already defined in milpat.h
|
|
|
|
// Threshold modes
|
|
#define M_ADAPTIVE 2048L // already defined in mil.h
|
|
#define M_USER_DEFINED 21L // Defined in mil.h ; not actual threshold mode
|
|
#define M_GLOBAL_SEGMENTATION M_USER_DEFINED // Must be equal to M_USER_DEFINED for API uniformity with milstr.
|
|
#define M_GLOBAL_WITH_LOCAL_RESEGMENTATION 0x00001000L // equals 4096L
|
|
// Threshold-specific values
|
|
#define M_AUTO_COMPUTE 0x08000001L // already defined in milstr.h
|
|
|
|
//Grading result possible values
|
|
#define M_CODE_GRADE_A 4L //These numbers should not be changed
|
|
#define M_CODE_GRADE_B 3L
|
|
#define M_CODE_GRADE_C 2L
|
|
#define M_CODE_GRADE_D 1L
|
|
#define M_CODE_GRADE_F 0L
|
|
#define M_CODE_GRADE_NOT_AVAILABLE 5L
|
|
|
|
#define M_CODE_GRADE_NOT_COMPUTABLE -1L
|
|
|
|
// lighting configuration
|
|
#define M_UNSPECIFIED -1L
|
|
|
|
// Mask type possible values
|
|
#define M_MASK_0 0X0000164CL
|
|
#define M_MASK_1 0X0000164DL
|
|
#define M_MASK_2 0X0000164EL
|
|
#define M_MASK_3 0X0000164FL
|
|
#define M_MASK_0_PRIME 0X00001650L
|
|
#define M_MASK_1_PRIME 0X00001651L
|
|
#define M_MASK_2_PRIME 0X00001652L
|
|
#define M_MASK_3_PRIME 0X00001653L
|
|
|
|
// String format
|
|
#define M_AUTO_FORMAT 0x00000080L
|
|
#define M_UPCE_COMPRESSED 0x00000081L
|
|
#define M_GS1_HUMAN_READABLE 0x00000082L
|
|
|
|
#define M_SIMPLIFIED_CHINESE 0x00000086L
|
|
#define M_JAPANESE 0x00000088L
|
|
#define M_LATIN 0x00000090L
|
|
#define M_KOREAN 0x00000092L
|
|
#define M_RAW_DATA 0x00000094L
|
|
#define M_UTF8 0x00000096L
|
|
|
|
#if OldDefinesSupport
|
|
#define M_GS1_RAW_DATA M_RAW_DATA
|
|
MIL_DEPRECATED(M_GS1_RAW_DATA, 1030)
|
|
#endif
|
|
|
|
// Posible state for context and control types
|
|
#define M_OPTIMIZABLE 0
|
|
#define M_NOT_OPTIMIZABLE 1
|
|
|
|
/**************************************************************************/
|
|
/* McodeDraw() parameter values */
|
|
/**************************************************************************/
|
|
#define M_DRAW_SCAN_PROFILES 0x00000001L
|
|
#define M_DRAW_REFLECTANCE_PROFILE 0x00000002L
|
|
#define M_DRAW_DECODED_SCANS 0x00000004L
|
|
#define M_DRAW_BOX 0x00000020L // Already define as 0x00000020L
|
|
#define M_DRAW_POSITION 0x00000040L // Already define as 0x00000040L
|
|
#define M_DRAW_CODE 0x00000080L
|
|
#define M_DRAW_QUIET_ZONE 0x00001000L // Should be bitwise also with M_LINEAR_COMPONENT and M_2D_COMPONENT
|
|
#define M_DRAW_EXTENDED_AREA 0x00002000L // Should be bitwise also with M_LINEAR_COMPONENT and M_2D_COMPONENT
|
|
|
|
|
|
|
|
/**************************************************************************/
|
|
/* Function prototypes */
|
|
/**************************************************************************/
|
|
|
|
MIL_ID MFTYPE McodeAlloc(MIL_ID SysId, MIL_INT64 ContextType, MIL_INT64 ControlFlag, MIL_ID *ContextCodeIdPtr);
|
|
|
|
#if M_MIL_USE_64BIT
|
|
// Prototypes for 64 bits OSs
|
|
void MFTYPE McodeControlInt64 (MIL_ID CodeId, MIL_INT64 ControlType, MIL_INT64 ControlValue);
|
|
void MFTYPE McodeControlDouble (MIL_ID CodeId, MIL_INT64 ControlType, MIL_DOUBLE ControlValue);
|
|
#else
|
|
// Prototypes for 32 bits OSs
|
|
#define McodeControlInt64 McodeControl
|
|
#define McodeControlDouble McodeControl
|
|
void MFTYPE McodeControl (MIL_ID CodeId, MIL_INT64 ControlType, MIL_DOUBLE ControlValue);
|
|
#endif
|
|
|
|
MIL_INT MFTYPE McodeInquire (MIL_ID CodeId, MIL_INT64 InquireType, void *UserVarPtr);
|
|
void MFTYPE McodeRead (MIL_ID ContextCodeId, MIL_ID ImageBufId, MIL_ID ResultCodeId);
|
|
void MFTYPE McodeGetResultNew(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT RowOrScanIndex, MIL_INT64 ResultType, void *UserVarArrayPtr);
|
|
|
|
void MFTYPE McodeGetResultSingle (MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT64 ResultType, void *UserVarPtr);
|
|
MIL_ID MFTYPE McodeModel (MIL_ID ContextCodeId, MIL_INT64 Operation, MIL_INT64 CodeType, MIL_INT Instance, MIL_INT64 ControlFlag, MIL_ID* ModelCodeIdPtr);
|
|
void MFTYPE McodeFree (MIL_ID ContextOrResultCodeId);
|
|
MIL_ID MFTYPE McodeAllocResult (MIL_ID SysId, MIL_INT64 ControlFlag, MIL_ID *ResultCodeIdPtr);
|
|
void MFTYPE McodeDrawNew (MIL_ID ContextGraId, MIL_ID ResultCodeId, MIL_ID DstImageBufOrListGraId, MIL_INT64 Operation, MIL_INT ResultIndex, MIL_INT ScanIndex, MIL_INT64 ControlFlag);
|
|
void MFTYPE McodeGrade (MIL_ID ContextCodeId, MIL_ID ImageBufId, MIL_ID SrcResultCodeId, MIL_INT SrcModelCodeIndexOrResultIndex, MIL_ID DstResultCodeId, MIL_INT64 ControlFlag);
|
|
void MFTYPE McodeTrain (MIL_ID ContextCodeId, MIL_INT NumImages, const MIL_ID* ImageArrayPtr, MIL_INT64 ControlFlag, MIL_ID TrainResultCodeId);
|
|
void MFTYPE McodeDetect (MIL_ID ImageBufId, MIL_INT SizeOfCodeTypeArray, const MIL_INT*CodeTypeArrayPtr, MIL_INT NumCodesToDetect, MIL_INT64 TimeoutValue, MIL_INT64 ControlFlag, MIL_ID DetectResultCodeId);
|
|
|
|
#if M_MIL_USE_UNICODE
|
|
void MFTYPE McodeSaveA (MIL_CONST_TEXTA_PTR FileName, MIL_ID ContextCodeId, MIL_INT64 ControlFlag);
|
|
MIL_ID MFTYPE McodeRestoreA (MIL_CONST_TEXTA_PTR FileName, MIL_ID SysId, MIL_INT64 ControlFlag, MIL_ID* ContextCodeIdPtr);
|
|
void MFTYPE McodeStreamA (MIL_TEXTA_PTR MemPtrOrFileName, MIL_ID SysId, MIL_INT64 Operation, MIL_INT64 StreamType,
|
|
MIL_DOUBLE Version, MIL_INT64 ControlFlag, MIL_ID *ContextOrResultCodeIdPtr, MIL_INT *SizeByteVarPtr);
|
|
void MFTYPE McodeVerifyA (MIL_ID CodeContextId, MIL_ID ImageBufId, MIL_CONST_TEXTA_PTR String, MIL_ID CodeResultId);
|
|
void MFTYPE McodeWriteNewA (MIL_ID ModelCodeId, MIL_ID ImageBufId, MIL_CONST_TEXTA_PTR StringPtr, MIL_INT64 ControlFlag, MIL_ID WriteResultCodeId);
|
|
|
|
void MFTYPE McodeSaveW (MIL_CONST_TEXTW_PTR FileName, MIL_ID ContextCodeId, MIL_INT64 ControlFlag);
|
|
MIL_ID MFTYPE McodeRestoreW (MIL_CONST_TEXTW_PTR FileName, MIL_ID SysId, MIL_INT64 ControlFlag, MIL_ID* ContextCodeIdPtr);
|
|
void MFTYPE McodeStreamW (MIL_TEXTW_PTR MemPtrOrFileName, MIL_ID SysId, MIL_INT64 Operation, MIL_INT64 StreamType,
|
|
MIL_DOUBLE Version, MIL_INT64 ControlFlag, MIL_ID *ContextOrResultCodeIdPtr, MIL_INT *SizeByteVarPtr);
|
|
void MFTYPE McodeVerifyW (MIL_ID CodeContextId, MIL_ID ImageBufId, MIL_CONST_TEXTW_PTR String, MIL_ID CodeResultId);
|
|
void MFTYPE McodeWriteNewW(MIL_ID ModelCodeId, MIL_ID ImageBufId, MIL_CONST_TEXTW_PTR StringPtr, MIL_INT64 ControlFlag, MIL_ID WriteResultCodeId);
|
|
#if M_MIL_UNICODE_API
|
|
#define McodeSave McodeSaveW
|
|
#define McodeRestore McodeRestoreW
|
|
#define McodeStream McodeStreamW
|
|
#define McodeVerify McodeVerifyW
|
|
#define McodeWriteNew McodeWriteNewW
|
|
#else
|
|
#define McodeSave McodeSaveA
|
|
#define McodeRestore McodeRestoreA
|
|
#define McodeStream McodeStreamA
|
|
#define McodeVerify McodeVerifyA
|
|
#define McodeWriteNew McodeWriteNewA
|
|
#endif
|
|
|
|
#else
|
|
void MFTYPE McodeSave (MIL_CONST_TEXT_PTR FileName, MIL_ID ContextCodeId, MIL_INT64 ControlFlag);
|
|
MIL_ID MFTYPE McodeRestore (MIL_CONST_TEXT_PTR FileName, MIL_ID SysId, MIL_INT64 ControlFlag, MIL_ID* ContextCodeIdPtr );
|
|
void MFTYPE McodeStream (MIL_TEXT_PTR MemPtrOrFileName, MIL_ID SysId, MIL_INT64 Operation, MIL_INT64 StreamType,
|
|
MIL_DOUBLE Version, MIL_INT64 ControlFlag, MIL_ID *ContextOrResultCodeIdPtr, MIL_INT *SizeByteVarPtr );
|
|
void MFTYPE McodeVerify (MIL_ID CodeContextId, MIL_ID ImageBufId, MIL_CONST_TEXT_PTR String, MIL_ID CodeResultId);
|
|
void MFTYPE McodeWriteNew (MIL_ID ModelCodeId, MIL_ID ImageBufId, MIL_CONST_TEXT_PTR StringPtr, MIL_INT64 ControlFlag, MIL_ID WriteResultCodeId);
|
|
#endif
|
|
|
|
|
|
/* C++ directive if needed */
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
|
|
inline void MFTYPE McodeStreamCpp(MilStreamParam MemPtrOrFileName,
|
|
MIL_ID SysId,
|
|
MIL_INT64 Operation,
|
|
MIL_INT64 StreamType,
|
|
MIL_DOUBLE Version,
|
|
MIL_INT64 ControlFlag,
|
|
MIL_ID* ContextOrResultCodeIdPtr,
|
|
MIL_INT* SizeByteVarPtr)
|
|
{
|
|
McodeStream(MemPtrOrFileName.m_Param, SysId, Operation, StreamType, Version, ControlFlag, ContextOrResultCodeIdPtr, SizeByteVarPtr);
|
|
}
|
|
|
|
#undef McodeStream
|
|
#define McodeStream McodeStreamCpp
|
|
|
|
#endif // __cplusplus
|
|
|
|
|
|
//////////////////////////////////////////////////////////////
|
|
// Overload or define to support Old API.
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
// New API call so redirect it to the good entry point.
|
|
#define McodeDraw McodeDrawNew
|
|
#if M_MIL_USE_UNICODE
|
|
#define McodeWriteA McodeWriteNewA
|
|
#define McodeWriteW McodeWriteNewW
|
|
#endif
|
|
#define McodeWrite McodeWriteNew
|
|
|
|
inline void McodeGetResult(MIL_ID ResultCodeId,
|
|
MIL_INT ResultIndex,
|
|
MIL_INT RowOrScanIndex,
|
|
MIL_INT64 ResultType,
|
|
void* ResultArrayPtr)
|
|
{
|
|
McodeGetResultNew(ResultCodeId, ResultIndex, RowOrScanIndex, ResultType, ResultArrayPtr);
|
|
}
|
|
|
|
|
|
// Support Old API through inline in C++
|
|
inline void McodeGetResult(MIL_ID ResultCodeId,
|
|
MIL_INT64 ResultType,
|
|
void* ResultArrayPtr)
|
|
{
|
|
McodeGetResult(ResultCodeId, M_DEFAULT, M_DEFAULT, ResultType, ResultArrayPtr);
|
|
}
|
|
|
|
inline void McodeDraw(MIL_ID ContextGraId,
|
|
MIL_ID ResultCodeId,
|
|
MIL_ID DstImageBufOrListGraId,
|
|
MIL_INT64 Operation,
|
|
MIL_INT ResultIndex,
|
|
MIL_INT64 ControlFlag)
|
|
{
|
|
McodeDraw(ContextGraId, ResultCodeId, DstImageBufOrListGraId, Operation, ResultIndex, M_DEFAULT, ControlFlag|M_SUPPORTED); // Support old API
|
|
}
|
|
|
|
#if M_MIL_USE_UNICODE
|
|
inline void McodeWriteA(MIL_ID ModelCodeId, MIL_ID ImageBufId, MIL_CONST_TEXTA_PTR StringPtr, MIL_INT64 ControlFlag)
|
|
{
|
|
McodeWriteA(ModelCodeId, ImageBufId, StringPtr, ControlFlag, M_NULL);
|
|
}
|
|
|
|
inline void McodeWriteW(MIL_ID ModelCodeId, MIL_ID ImageBufId, MIL_CONST_TEXTW_PTR StringPtr, MIL_INT64 ControlFlag)
|
|
{
|
|
McodeWriteW(ModelCodeId, ImageBufId, StringPtr, ControlFlag, M_NULL);
|
|
}
|
|
#else
|
|
inline void McodeWrite(MIL_ID ModelCodeId, MIL_ID ImageBufId, MIL_CONST_TEXT_PTR StringPtr, MIL_INT64 ControlFlag)
|
|
{
|
|
McodeWrite(ModelCodeId, ImageBufId, StringPtr, ControlFlag, M_NULL);
|
|
}
|
|
#endif
|
|
|
|
#else
|
|
|
|
|
|
// The default in C is the use of the old API until MIL 11.
|
|
#ifndef M_USE_OLD_MCODE_API_IN_C
|
|
#define M_USE_OLD_MCODE_API_IN_C 1
|
|
#endif
|
|
|
|
#if M_USE_OLD_MCODE_API_IN_C
|
|
#define McodeGetResult(ResultCodeId, ResultType, UserVarArrayPtr) McodeGetResultNew(ResultCodeId, M_DEFAULT, M_DEFAULT, ResultType, UserVarArrayPtr)
|
|
#define McodeDraw(ContextGraId, ResultCodeId, DstImageBufOrListGraId, Operation, ResultIndex, ControlFlag) McodeDrawNew(ContextGraId, ResultCodeId, DstImageBufOrListGraId, Operation, ResultIndex, M_DEFAULT, ControlFlag|M_SUPPORTED)
|
|
#if M_MIL_USE_UNICODE
|
|
#define McodeWriteA(ModelCodeId, ImageBufId, StringPtr, ControlFlag) McodeWriteNewA(ModelCodeId, ImageBufId, StringPtr, ControlFlag, M_NULL)
|
|
#define McodeWriteW(ModelCodeId, ImageBufId, StringPtr, ControlFlag) McodeWriteNewW(ModelCodeId, ImageBufId, StringPtr, ControlFlag, M_NULL)
|
|
#endif
|
|
#define McodeWrite(ModelCodeId, ImageBufId, StringPtr, ControlFlag) McodeWriteNew(ModelCodeId, ImageBufId, StringPtr, ControlFlag, M_NULL)
|
|
|
|
#else
|
|
#define McodeGetResult McodeGetResultNew
|
|
#define McodeDraw McodeDrawNew
|
|
#if M_MIL_USE_UNICODE
|
|
#define McodeWriteA McodeWriteNewA
|
|
#define McodeWriteW McodeWriteNewW
|
|
#endif
|
|
#define McodeWrite McodeWriteNew
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if M_MIL_USE_64BIT
|
|
#ifdef __cplusplus
|
|
//////////////////////////////////////////////////////////////
|
|
// McodeControl function definition when compiling c++ files
|
|
//////////////////////////////////////////////////////////////
|
|
#if !M_MIL_USE_LINUX
|
|
inline void McodeControl(MIL_ID CodeId, MIL_INT64 ControlType, int ControlValue)
|
|
{
|
|
McodeControlInt64(CodeId, ControlType, ControlValue);
|
|
};
|
|
#endif
|
|
inline void McodeControl(MIL_ID CodeId, MIL_INT64 ControlType, MIL_INT32 ControlValue)
|
|
{
|
|
McodeControlInt64(CodeId, ControlType, ControlValue);
|
|
}
|
|
inline void McodeControl(MIL_ID CodeId, MIL_INT64 ControlType, MIL_INT64 ControlValue)
|
|
{
|
|
McodeControlInt64(CodeId, ControlType, ControlValue);
|
|
}
|
|
inline void McodeControl(MIL_ID CodeId, MIL_INT64 ControlType, MIL_DOUBLE ControlValue)
|
|
{
|
|
McodeControlDouble(CodeId, ControlType, ControlValue);
|
|
}
|
|
|
|
#else
|
|
//////////////////////////////////////////////////////////////
|
|
// For C file, call the default function, i.e. Int64 one
|
|
//////////////////////////////////////////////////////////////
|
|
#define McodeControl McodeControlDouble
|
|
|
|
#endif // __cplusplus
|
|
#endif // M_MIL_USE_64BIT
|
|
|
|
#if M_MIL_USE_SAFE_TYPE
|
|
|
|
//////////////////////////////////////////////////////////////
|
|
// See milos.h for explanation about these functions.
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
// ----------------------------------------------------------
|
|
// McodeGetResult
|
|
|
|
inline void MFTYPE McodeGetResultSafeType(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT RowOrScanIndex, MIL_INT64 ResultType, MilVoidPtr UserVarArrayPtr)
|
|
{
|
|
MIL_INT64 RequiredParamType = M_PARAM_TYPE_MIL_INT64;
|
|
if(!(M_DEFAULT_DATA_TYPE_BIT_SET(ResultType) || M_RECOMMENDED_DATA_TYPE_BIT_SET(ResultType)))
|
|
{
|
|
McodeGetResultNew(ResultCodeId, ResultIndex, RowOrScanIndex, ResultType | M_DEFAULT_DATA_TYPE, &RequiredParamType);
|
|
}
|
|
|
|
if(!MfuncPointerIsCompatible(RequiredParamType, UserVarArrayPtr.Type, ResultType))
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeGetResult"));
|
|
}
|
|
|
|
McodeGetResultNew(ResultCodeId, ResultIndex, RowOrScanIndex, ResultType, UserVarArrayPtr.Ptr);
|
|
}
|
|
|
|
inline void MFTYPE McodeGetResultUnsafe(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT RowOrScanIndex, MIL_INT64 ResultType, void* UserVarArrayPtr)
|
|
{
|
|
McodeGetResultNew(ResultCodeId, ResultIndex, RowOrScanIndex, ResultType, UserVarArrayPtr);
|
|
}
|
|
|
|
// Old API.
|
|
inline void MFTYPE McodeGetResultSafeType(MIL_ID ResultCodeId, MIL_INT64 ResultType, MilVoidPtr UserVarArrayPtr)
|
|
{
|
|
McodeGetResultSafeType(ResultCodeId, M_DEFAULT, M_DEFAULT, ResultType, UserVarArrayPtr);
|
|
}
|
|
|
|
inline void MFTYPE McodeGetResultUnsafe(MIL_ID ResultCodeId, MIL_INT64 ResultType, void* UserVarArrayPtr)
|
|
{
|
|
McodeGetResultUnsafe(ResultCodeId, M_DEFAULT, M_DEFAULT, ResultType, UserVarArrayPtr);
|
|
}
|
|
|
|
// ----------------------------------------------------------
|
|
// McodeGetResultSingle
|
|
|
|
inline void MFTYPE McodeGetResultSingleSafeType(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT64 ResultType, MilVoidPtr UserVarPtr)
|
|
{
|
|
MIL_INT64 RequiredParamType = M_PARAM_TYPE_MIL_INT64;
|
|
if(!(M_DEFAULT_DATA_TYPE_BIT_SET(ResultType) || M_RECOMMENDED_DATA_TYPE_BIT_SET(ResultType)))
|
|
{
|
|
McodeGetResultSingle(ResultCodeId, ResultIndex, ResultType | M_DEFAULT_DATA_TYPE, &RequiredParamType);
|
|
}
|
|
if(!MfuncPointerIsCompatible(RequiredParamType, UserVarPtr.Type, ResultType))
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeGetResultSingle"));
|
|
}
|
|
McodeGetResultSingle(ResultCodeId, ResultIndex, ResultType, UserVarPtr.Ptr);
|
|
}
|
|
|
|
inline void MFTYPE McodeGetResultSingleUnsafe(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT64 ResultType, void* UserVarPtr)
|
|
{
|
|
McodeGetResultSingle(ResultCodeId, ResultIndex, ResultType, UserVarPtr);
|
|
}
|
|
|
|
// ----------------------------------------------------------
|
|
// McodeInquire
|
|
|
|
inline MIL_INT MFTYPE McodeInquireSafeType(MIL_ID CodeId, MIL_INT64 InquireType, MilVoidPtr UserVarPtr)
|
|
{
|
|
MIL_INT64 RequiredParamType = M_PARAM_TYPE_MIL_INT64;
|
|
if(!(M_DEFAULT_DATA_TYPE_BIT_SET(InquireType) || M_RECOMMENDED_DATA_TYPE_BIT_SET(InquireType)))
|
|
{
|
|
McodeInquire(CodeId, InquireType | M_DEFAULT_DATA_TYPE, &RequiredParamType);
|
|
}
|
|
if(!MfuncPointerIsCompatible(RequiredParamType, UserVarPtr.Type, InquireType))
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeInquire"));
|
|
}
|
|
return McodeInquire(CodeId, InquireType, UserVarPtr.Ptr);
|
|
}
|
|
|
|
inline MIL_INT MFTYPE McodeInquireUnsafe(MIL_ID CodeId, MIL_INT64 InquireType, void* UserVarPtr)
|
|
{
|
|
return McodeInquire(CodeId, InquireType, UserVarPtr);
|
|
}
|
|
|
|
|
|
#define McodeGetResult McodeGetResultSafeType
|
|
#define McodeGetResultSingle McodeGetResultSingleSafeType
|
|
#define McodeInquire McodeInquireSafeType
|
|
|
|
#else // #if M_MIL_USE_SAFE_TYPE
|
|
|
|
#define McodeGetResultSingleUnsafe McodeGetResultSingle
|
|
#define McodeInquireUnsafe McodeInquire
|
|
|
|
|
|
#if(!defined(__cplusplus) && M_USE_OLD_MCODE_API_IN_C)
|
|
#define McodeGetResultUnsafe(ResultCodeId, ResultType, UserVarArrayPtr) McodeGetResultNew(ResultCodeId, M_DEFAULT, M_DEFAULT, ResultType, UserVarArrayPtr)
|
|
#else
|
|
#define McodeGetResultUnsafe McodeGetResult
|
|
#endif
|
|
|
|
|
|
#endif // #if M_MIL_USE_SAFE_TYPE
|
|
|
|
// ----------------------------------------------------------
|
|
// Overload for std::vector.
|
|
#if defined(M_MIL_USE_VECTOR) && M_MIL_USE_VECTOR
|
|
template <typename UserType>
|
|
inline MIL_INT MFTYPE McodeInquire(MIL_ID CodeId, MIL_INT64 InquireType, std::vector<UserType> &UserVarPtr)
|
|
{
|
|
// If the given MIL data type is not the same as the SrcType, change it to the correct one
|
|
// and give a warning.
|
|
MIL_INT64 InternalTrueDataTypeForStdVector = MilTraits<UserType>::TypeFlag;
|
|
|
|
#if M_MIL_USE_SAFE_TYPE
|
|
if(M_GET_HLVLDATATYPE(InquireType) != 0)
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeInquire"), MIL_TEXT("Combination value for the required data type is not supported with std::vector overload."));
|
|
}
|
|
#endif
|
|
|
|
InquireType = M_STRIP_HLVLDATATYPE(InquireType) + InternalTrueDataTypeForStdVector;
|
|
|
|
MIL_INT InternalNumberOfElementsForStdVector = 0;
|
|
McodeInquire(CodeId, M_STRIP_HLVLDATATYPE(InquireType) + M_NB_ELEMENTS + M_TYPE_MIL_INT, &InternalNumberOfElementsForStdVector);
|
|
|
|
UserVarPtr.resize(InternalNumberOfElementsForStdVector);
|
|
|
|
if(InternalNumberOfElementsForStdVector > 0)
|
|
{
|
|
return McodeInquire(CodeId, InquireType, &UserVarPtr[0]);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
template <typename UserType>
|
|
inline void MFTYPE McodeGetResult(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT RowOrScanIndex, MIL_INT64 ResultType, std::vector<UserType> &UserVarArrayPtr)
|
|
{
|
|
//! If the given MIL data type is not the same as the SrcType, change it to the correct one
|
|
//! and give a warning.
|
|
MIL_INT64 InternalTrueDataTypeForStdVector = MilTraits<UserType>::TypeFlag;
|
|
|
|
#if M_MIL_USE_SAFE_TYPE
|
|
if(M_GET_HLVLDATATYPE(ResultType) != 0)
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeGetResult"), MIL_TEXT("Combination value for the required data type is not supported with std::vector overload."));
|
|
}
|
|
#endif
|
|
|
|
ResultType = M_STRIP_HLVLDATATYPE(ResultType) + InternalTrueDataTypeForStdVector;
|
|
|
|
MIL_INT InternalNumberOfElementsForStdVector = 0;
|
|
McodeGetResult(ResultCodeId, ResultIndex, RowOrScanIndex, M_STRIP_HLVLDATATYPE(ResultType) + M_NB_ELEMENTS + M_TYPE_MIL_INT, &InternalNumberOfElementsForStdVector);
|
|
|
|
UserVarArrayPtr.resize(InternalNumberOfElementsForStdVector);
|
|
|
|
if(InternalNumberOfElementsForStdVector > 0)
|
|
{
|
|
McodeGetResult(ResultCodeId, ResultIndex, RowOrScanIndex, ResultType, &UserVarArrayPtr[0]);
|
|
}
|
|
}
|
|
|
|
// Old API
|
|
template <typename UserType>
|
|
inline void MFTYPE McodeGetResult(MIL_ID ResultCodeId, MIL_INT64 ResultType, std::vector<UserType> &UserVarArrayPtr)
|
|
{
|
|
McodeGetResult(ResultCodeId, M_DEFAULT, M_DEFAULT, ResultType, UserVarArrayPtr);
|
|
}
|
|
|
|
template <typename UserType>
|
|
inline void MFTYPE McodeGetResultSingle(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT64 ResultType, std::vector<UserType> &UserVarPtr)
|
|
{
|
|
//! If the given MIL data type is not the same as the SrcType, change it to the correct one
|
|
//! and give a warning.
|
|
MIL_INT64 InternalTrueDataTypeForStdVector = MilTraits<UserType>::TypeFlag;
|
|
|
|
#if M_MIL_USE_SAFE_TYPE
|
|
if(M_GET_HLVLDATATYPE(ResultType) != 0)
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeGetResultSingle"), MIL_TEXT("Combination value for the required data type is not supported with std::vector overload."));
|
|
}
|
|
#endif
|
|
|
|
ResultType = M_STRIP_HLVLDATATYPE(ResultType) + InternalTrueDataTypeForStdVector;
|
|
|
|
MIL_INT InternalNumberOfElementsForStdVector = 0;
|
|
McodeGetResultSingle(ResultCodeId, ResultIndex, M_STRIP_HLVLDATATYPE(ResultType) + M_NB_ELEMENTS + M_TYPE_MIL_INT, &InternalNumberOfElementsForStdVector);
|
|
|
|
UserVarPtr.resize(InternalNumberOfElementsForStdVector);
|
|
|
|
if(InternalNumberOfElementsForStdVector > 0)
|
|
{
|
|
McodeGetResultSingle(ResultCodeId, ResultIndex, ResultType, &UserVarPtr[0]);
|
|
}
|
|
}
|
|
|
|
// ----------------------------------------------------------
|
|
// Overloads for std::vector in McodeDetect.
|
|
inline void MFTYPE McodeDetect(MIL_ID ImageBufId,
|
|
MIL_INT SizeOfCodeTypeArray,
|
|
const std::vector<MIL_INT>& CodeTypeArrayPtr,
|
|
MIL_INT NumCodesToDetect,
|
|
MIL_INT64 TimeoutValue,
|
|
MIL_INT64 ControlFlag,
|
|
MIL_ID DetectResultCodeId)
|
|
{
|
|
#if M_MIL_USE_SAFE_TYPE
|
|
if(SizeOfCodeTypeArray <= 0)
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeDetect"), MIL_TEXT("SizeOfCodeTypeArray parameter must be greater than zero."));
|
|
}
|
|
if(CodeTypeArrayPtr.empty())
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeDetect"), MIL_TEXT("The input vector cannot be empty."));
|
|
}
|
|
if(SizeOfCodeTypeArray > (MIL_INT)CodeTypeArrayPtr.size() && SizeOfCodeTypeArray != M_DEFAULT)
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeDetect"), MIL_TEXT("SizeOfCodeTypeArray parameter must be smaller or equal (M_DEFAULT) to the size of input vector."));
|
|
}
|
|
#endif
|
|
|
|
if(SizeOfCodeTypeArray == M_DEFAULT || SizeOfCodeTypeArray > (MIL_INT)CodeTypeArrayPtr.size())
|
|
{
|
|
SizeOfCodeTypeArray = (MIL_INT)CodeTypeArrayPtr.size();
|
|
}
|
|
|
|
McodeDetect(ImageBufId,
|
|
SizeOfCodeTypeArray,
|
|
&CodeTypeArrayPtr[0],
|
|
NumCodesToDetect,
|
|
TimeoutValue,
|
|
ControlFlag,
|
|
DetectResultCodeId);
|
|
}
|
|
|
|
// ----------------------------------------------------------
|
|
// Overloads for std::vector in McodeTrain.
|
|
inline void MFTYPE McodeTrain(MIL_ID ContextCodeId,
|
|
MIL_INT NumImages,
|
|
const std::vector<MIL_ID>& ImageArrayPtr,
|
|
MIL_INT64 ControlFlag,
|
|
MIL_ID TrainResultCodeId)
|
|
{
|
|
#if M_MIL_USE_SAFE_TYPE
|
|
if(NumImages <= 0)
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeTrain"), MIL_TEXT("NumImages parameter must be greater than zero."));
|
|
}
|
|
if(ImageArrayPtr.empty())
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeTrain"), MIL_TEXT("The input vector cannot be empty."));
|
|
}
|
|
if(NumImages > (MIL_INT)ImageArrayPtr.size() && NumImages != M_DEFAULT)
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeTrain"), MIL_TEXT("NumImages parameter must be smaller or equal (M_DEFAULT) to the size of input vector."));
|
|
}
|
|
#endif
|
|
|
|
if(NumImages == M_DEFAULT || NumImages > (MIL_INT)ImageArrayPtr.size())
|
|
{
|
|
NumImages = (MIL_INT)ImageArrayPtr.size();
|
|
}
|
|
|
|
McodeTrain(ContextCodeId,
|
|
NumImages,
|
|
&ImageArrayPtr[0],
|
|
ControlFlag,
|
|
TrainResultCodeId);
|
|
}
|
|
|
|
// ----------------------------------------------------------
|
|
// Overloads for std::vector in MxxxStream.
|
|
inline void MFTYPE McodeStream(std::vector<MIL_UINT8> &MemPtrOrFileName,
|
|
MIL_ID SysId,
|
|
MIL_INT64 Operation,
|
|
MIL_INT64 StreamType,
|
|
MIL_DOUBLE Version,
|
|
MIL_INT64 ControlFlag,
|
|
MIL_ID* McontextIdPtr,
|
|
MIL_INT* SizeByteVarPtr)
|
|
{
|
|
MxxxStreamForStdVector(MemPtrOrFileName,
|
|
SysId,
|
|
Operation,
|
|
StreamType,
|
|
Version,
|
|
ControlFlag,
|
|
McontextIdPtr,
|
|
SizeByteVarPtr,
|
|
McodeStream);
|
|
}
|
|
#endif // defined(M_MIL_USE_VECTOR) && M_MIL_USE_VECTOR
|
|
|
|
#ifndef M_MIL_WARN_ON_DEPRECATED_MCODE
|
|
#define M_MIL_WARN_ON_DEPRECATED_MCODE 1
|
|
#endif
|
|
#if defined(M_MIL_WARN_ON_DEPRECATED_MCODE) && M_MIL_WARN_ON_DEPRECATED_MCODE
|
|
//MIL_DEPRECATED(McodeGetResultSingle, 1040) // Use McodeGetResult() instead.
|
|
#endif
|
|
|
|
#if M_MIL_USE_STRING
|
|
/***************************************************************************/
|
|
/* CODE READER MODULE */
|
|
/***************************************************************************/
|
|
#if M_MIL_USE_UNICODE
|
|
|
|
#if M_MIL_UNICODE_API
|
|
inline void MFTYPE McodeSaveW(const MIL_STRING& FileName, MIL_ID ContextCodeId, MIL_INT64 ControlFlag)
|
|
{
|
|
return McodeSaveW(FileName.c_str(), ContextCodeId, ControlFlag);
|
|
}
|
|
|
|
inline MIL_ID MFTYPE McodeRestoreW(const MIL_STRING& FileName, MIL_ID SysId, MIL_INT64 ControlFlag, MIL_ID* ContextCodeIdPtr)
|
|
{
|
|
return McodeRestoreW(FileName.c_str(), SysId, ControlFlag, ContextCodeIdPtr);
|
|
}
|
|
|
|
inline void MFTYPE McodeVerifyW(MIL_ID CodeContextId, MIL_ID ImageBufId, const MIL_STRING& String, MIL_ID CodeResultId)
|
|
{
|
|
return McodeVerifyW(CodeContextId, ImageBufId, String.c_str(), CodeResultId);
|
|
}
|
|
|
|
inline void MFTYPE McodeWriteW(MIL_ID ModelCodeId, MIL_ID ImageBufId, const MIL_STRING& StringPtr, MIL_INT64 ControlFlag, MIL_ID WriteResultCodeId)
|
|
{
|
|
return McodeWriteW(ModelCodeId, ImageBufId, StringPtr.c_str(), ControlFlag, WriteResultCodeId);
|
|
}
|
|
|
|
// OLD API
|
|
inline void MFTYPE McodeWriteW(MIL_ID ModelCodeId, MIL_ID ImageBufId, const MIL_STRING& StringPtr, MIL_INT64 ControlFlag)
|
|
{
|
|
return McodeWriteW(ModelCodeId, ImageBufId, StringPtr.c_str(), ControlFlag, M_NULL);
|
|
}
|
|
#else
|
|
inline void MFTYPE McodeSaveA(const MIL_STRING& FileName, MIL_ID ContextCodeId, MIL_INT64 ControlFlag)
|
|
{
|
|
return McodeSaveA(FileName.c_str(), ContextCodeId, ControlFlag);
|
|
}
|
|
|
|
inline MIL_ID MFTYPE McodeRestoreA(const MIL_STRING& FileName, MIL_ID SysId, MIL_INT64 ControlFlag, MIL_ID* ContextCodeIdPtr)
|
|
{
|
|
return McodeRestoreA(FileName.c_str(), SysId, ControlFlag, ContextCodeIdPtr);
|
|
}
|
|
|
|
inline void MFTYPE McodeVerifyA(MIL_ID CodeContextId, MIL_ID ImageBufId, const MIL_STRING& String, MIL_ID CodeResultId)
|
|
{
|
|
return McodeVerifyA(CodeContextId, ImageBufId, String.c_str(), CodeResultId);
|
|
}
|
|
|
|
inline void MFTYPE McodeWriteA(MIL_ID ModelCodeId, MIL_ID ImageBufId, const MIL_STRING& StringPtr, MIL_INT64 ControlFlag, MIL_ID WriteResultCodeId)
|
|
{
|
|
return McodeWriteA(ModelCodeId, ImageBufId, StringPtr.c_str(), ControlFlag, WriteResultCodeId);
|
|
}
|
|
|
|
// OLD API
|
|
inline void MFTYPE McodeWriteA(MIL_ID ModelCodeId, MIL_ID ImageBufId, const MIL_STRING& StringPtr, MIL_INT64 ControlFlag)
|
|
{
|
|
return McodeWriteA(ModelCodeId, ImageBufId, StringPtr.c_str(), ControlFlag, M_NULL);
|
|
}
|
|
|
|
#endif /* M_MIL_UNICODE_API */
|
|
#else
|
|
inline void MFTYPE McodeSave(const MIL_STRING& FileName, MIL_ID ContextCodeId, MIL_INT64 ControlFlag)
|
|
{
|
|
return McodeSave(FileName.c_str(), ContextCodeId, ControlFlag);
|
|
}
|
|
|
|
inline MIL_ID MFTYPE McodeRestore(const MIL_STRING& FileName, MIL_ID SysId, MIL_INT64 ControlFlag, MIL_ID* ContextCodeIdPtr)
|
|
{
|
|
return McodeRestore(FileName.c_str(), SysId, ControlFlag, ContextCodeIdPtr);
|
|
}
|
|
|
|
inline void MFTYPE McodeVerify(MIL_ID CodeContextId, MIL_ID ImageBufId, const MIL_STRING& String, MIL_ID CodeResultId)
|
|
{
|
|
return McodeVerify(CodeContextId, ImageBufId, String.c_str(), CodeResultId);
|
|
}
|
|
|
|
inline void MFTYPE McodeWrite(MIL_ID ModelCodeId, MIL_ID ImageBufId, const MIL_STRING& StringPtr, MIL_INT64 ControlFlag, MIL_ID WriteResultCodeId)
|
|
{
|
|
return McodeWrite(ModelCodeId, ImageBufId, StringPtr.c_str(), ControlFlag, WriteResultCodeId);
|
|
}
|
|
|
|
// OLD API
|
|
inline void MFTYPE McodeWrite(MIL_ID ModelCodeId, MIL_ID ImageBufId, const MIL_STRING& StringPtr, MIL_INT64 ControlFlag)
|
|
{
|
|
return McodeWrite(ModelCodeId, ImageBufId, StringPtr.c_str(), ControlFlag, M_NULL);
|
|
}
|
|
#endif /* M_MIL_USE_UNICODE */
|
|
|
|
#if M_MIL_USE_SAFE_TYPE
|
|
|
|
inline void MFTYPE McodeGetResultSafeType(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT RowOrScanIndex, MIL_INT64 ResultType, MIL_STRING& UserVarArrayPtr)
|
|
{
|
|
#if MIL_COMPILE_VERSION >= MIL_COMPILE_TRUNK_VERSION && M_MIL_USE_SAFE_TYPE
|
|
if((ResultType & M_CLIENT_ENCODING) != M_CLIENT_ENCODING)
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeGetResult"), MIL_TEXT("Result type not supported with MIL_STRING."));
|
|
}
|
|
#endif
|
|
|
|
MIL_INT InternalStringSize = 0;
|
|
McodeGetResult(ResultCodeId, ResultIndex, RowOrScanIndex, (ResultType & (~M_HLVLDATATYPE_MASK)) + M_STRING_SIZE + M_TYPE_MIL_INT, &InternalStringSize);
|
|
|
|
if(InternalStringSize > 0)
|
|
{
|
|
UserVarArrayPtr.assign(InternalStringSize, MIL_TEXT('\0'));
|
|
McodeGetResult(ResultCodeId, ResultIndex, RowOrScanIndex, ResultType, &UserVarArrayPtr[0]);
|
|
UserVarArrayPtr.resize(InternalStringSize - 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// Old API
|
|
inline void MFTYPE McodeGetResultSafeType(MIL_ID ResultCodeId, MIL_INT64 ResultType, MIL_STRING& UserVarArrayPtr)
|
|
{
|
|
McodeGetResult(ResultCodeId, M_DEFAULT, M_DEFAULT, ResultType, UserVarArrayPtr);
|
|
}
|
|
|
|
inline void MFTYPE McodeGetResultSingleSafeType(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT64 ResultType, MIL_STRING& UserVarPtr)
|
|
{
|
|
#if MIL_COMPILE_VERSION >= MIL_COMPILE_TRUNK_VERSION && M_MIL_USE_SAFE_TYPE
|
|
if((ResultType & M_CLIENT_ENCODING) != M_CLIENT_ENCODING)
|
|
{
|
|
SafeTypeError(MIL_TEXT("McodeGetResultSingle"), MIL_TEXT("Result type not supported with MIL_STRING."));
|
|
}
|
|
#endif
|
|
|
|
MIL_INT InternalStringSize = 0;
|
|
McodeGetResultSingle(ResultCodeId, ResultIndex, (ResultType & (~M_HLVLDATATYPE_MASK)) + M_STRING_SIZE + M_TYPE_MIL_INT, &InternalStringSize);
|
|
|
|
if(InternalStringSize > 0)
|
|
{
|
|
UserVarPtr.assign(InternalStringSize, MIL_TEXT('\0'));
|
|
McodeGetResultSingle(ResultCodeId, ResultIndex, ResultType, &UserVarPtr[0]);
|
|
UserVarPtr.resize(InternalStringSize - 1);
|
|
|
|
}
|
|
}
|
|
#else
|
|
|
|
inline void MFTYPE McodeGetResult(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT RowOrScanIndex, MIL_INT64 ResultType, MIL_STRING &UserVarArrayPtr)
|
|
{
|
|
|
|
MIL_INT InternalStringSize = 0;
|
|
McodeGetResult(ResultCodeId, ResultIndex, RowOrScanIndex, (ResultType & (~M_HLVLDATATYPE_MASK)) + M_STRING_SIZE + M_TYPE_MIL_INT, &InternalStringSize);
|
|
|
|
if(InternalStringSize > 0)
|
|
{
|
|
UserVarArrayPtr.assign(InternalStringSize, MIL_TEXT('\0'));
|
|
McodeGetResult(ResultCodeId, ResultIndex, RowOrScanIndex, ResultType, &UserVarArrayPtr[0]);
|
|
UserVarArrayPtr.resize(InternalStringSize - 1);
|
|
|
|
}
|
|
}
|
|
|
|
// Old API
|
|
inline void MFTYPE McodeGetResult(MIL_ID ResultCodeId, MIL_INT64 ResultType, MIL_STRING &UserVarArrayPtr)
|
|
{
|
|
McodeGetResult(ResultCodeId, M_DEFAULT, M_DEFAULT, ResultType, UserVarArrayPtr);
|
|
}
|
|
|
|
inline void MFTYPE McodeGetResultSingle(MIL_ID ResultCodeId, MIL_INT ResultIndex, MIL_INT64 ResultType, MIL_STRING &UserVarPtr)
|
|
{
|
|
MIL_INT InternalStringSize = 0;
|
|
McodeGetResultSingle(ResultCodeId, ResultIndex, (ResultType & (~M_HLVLDATATYPE_MASK)) + M_STRING_SIZE + M_TYPE_MIL_INT, &InternalStringSize);
|
|
|
|
if(InternalStringSize > 0)
|
|
{
|
|
UserVarPtr.assign(InternalStringSize, MIL_TEXT('\0'));
|
|
McodeGetResultSingle(ResultCodeId, ResultIndex, ResultType, &UserVarPtr[0]);
|
|
UserVarPtr.resize(InternalStringSize - 1);
|
|
|
|
}
|
|
}
|
|
#endif /* M_MIL_USE_SAFE_TYPE */
|
|
#endif /* M_MIL_USE_STRING*/
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// MIL_UNIQUE_ID support
|
|
|
|
#if M_MIL_USE_MIL_UNIQUE_ID
|
|
|
|
#if M_MIL_USE_SAFE_TYPE
|
|
template <> inline bool MilIsCorrectObjectType<&McodeFree>(MIL_INT64 ObjectType)
|
|
{
|
|
return (ObjectType & ~M_USER_DEFINE_LOW_ATTRIBUTE) == M_CODE_OBJECT;
|
|
}
|
|
#endif
|
|
|
|
typedef MIL_UNIQUE_ID<&McodeFree> MIL_UNIQUE_CODE_ID;
|
|
|
|
#if M_MIL_USE_MOVE_SEMANTICS
|
|
|
|
inline MIL_UNIQUE_CODE_ID McodeAlloc(MIL_ID SysId, MIL_INT64 ContextType, MIL_INT64 ControlFlag, MIL_UNIQUE_ID_TAG)
|
|
{
|
|
return MIL_UNIQUE_CODE_ID(McodeAlloc(SysId, ContextType, ControlFlag, M_NULL));
|
|
}
|
|
inline MIL_UNIQUE_CODE_ID McodeAllocResult(MIL_ID SysId, MIL_INT64 ControlFlag, MIL_UNIQUE_ID_TAG)
|
|
{
|
|
return MIL_UNIQUE_CODE_ID(McodeAllocResult(SysId, ControlFlag, M_NULL));
|
|
}
|
|
inline MIL_UNIQUE_CODE_ID McodeRestore(MIL_CONST_TEXT_PTR FileName, MIL_ID SysId, MIL_INT64 ControlFlag, MIL_UNIQUE_ID_TAG)
|
|
{
|
|
return MIL_UNIQUE_CODE_ID(McodeRestore(FileName, SysId, ControlFlag, M_NULL));
|
|
}
|
|
#if M_MIL_USE_STRING
|
|
inline MIL_UNIQUE_CODE_ID McodeRestore(const MIL_STRING& FileName, MIL_ID SysId, MIL_INT64 ControlFlag, MIL_UNIQUE_ID_TAG)
|
|
{
|
|
return MIL_UNIQUE_CODE_ID(McodeRestore(FileName, SysId, ControlFlag, M_NULL));
|
|
}
|
|
#endif // M_MIL_USE_STRING
|
|
template <MilFreeFuncType FreeFunc> inline void McodeFree(const MIL_UNIQUE_ID<FreeFunc>&) = delete;
|
|
|
|
inline void McodeStream(MilStreamParam MemPtrOrFileName ,
|
|
MIL_ID SysId ,
|
|
MIL_INT64 Operation ,
|
|
MIL_INT64 StreamType ,
|
|
MIL_DOUBLE Version ,
|
|
MIL_INT64 ControlFlag ,
|
|
MIL_UNIQUE_CODE_ID* ContextOrResultCodeIdPtr,
|
|
MIL_INT* SizeByteVarPtr )
|
|
{
|
|
MxxxStreamForMilUniqueId(MemPtrOrFileName, SysId, Operation, StreamType, Version, ControlFlag, ContextOrResultCodeIdPtr, SizeByteVarPtr, McodeStream);
|
|
}
|
|
|
|
inline void McodeTrain(
|
|
MIL_ID ContextCodeId ,
|
|
MIL_INT NumImages ,
|
|
MilConstArrayIdParam ImageArrayPtr ,
|
|
MIL_INT64 ControlFlag ,
|
|
MIL_ID TrainResultCodeId)
|
|
{
|
|
McodeTrain(ContextCodeId, NumImages, ImageArrayPtr.m_IdArrayPtr, ControlFlag, TrainResultCodeId);
|
|
}
|
|
|
|
#endif // M_MIL_USE_MOVE_SEMANTICS
|
|
#endif // M_MIL_USE_MIL_UNIQUE_ID
|
|
|
|
// End of MIL_UNIQUE_ID support
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif // !M_MIL_LITE
|
|
#endif // __MILCODE_H__
|