FEDRA emulsion software from the OPERA Collaboration
milcode.h
Go to the documentation of this file.
1
2//
3// Filename : MILCODE.H
4// Content : function capi of McodeAlloc
5//
6// Copyright © 1999 Matrox Electronic Systems Ltd.
7// All Rights Reserved
8//
10
11#ifndef __MILCODE_H__
12#define __MILCODE_H__
13
14#if (!M_MIL_LITE) // MIL FULL ONLY
15
16/* C++ directive if needed */
17#ifdef __cplusplus
18extern "C"
19{
20#endif
21
22
23/**************************************************************************/
24/* CAPI defines */
25/**************************************************************************/
26
27/**************************************************************************/
28/* McodeAlloc() Code types */
29/**************************************************************************/
30
31#define M_CODE39 0x00000001
32#define M_DATAMATRIX 0x00000002
33#define M_EAN13 0x00000004
34#define M_MAXICODE 0x00000008
35#define M_INTERLEAVED25 0x00000010
36#define M_CODE128 0x00000020
37#define M_BC412 0x00000040
38#define M_CODABAR 0x00000080
39#define M_PDF417 0x00000100
40#define M_POSTNET 0x00000200
41#define M_PLANET 0x00000400
42#define M_UPC_A 0x00000800
43#define M_UPC_E 0x00001000
44#define M_PHARMACODE 0x00002000
45#define M_RSSCODE 0x00004000
46// RSS Sub type section...
47#define M_RSS14 0x00008000
48#define M_RSS14_TRUNCATED 0x00010000
49#define M_RSS_LIMITED 0x00020000
50#define M_RSS_EXPANDED 0x00040000
51#define M_RSS14_STACKED 0x00080000
52#define M_RSS14_STACKED_OMNI 0x00100000
53#define M_RSS_EXPANDED_STACKED 0x00200000
54// ...End of RSS Sub type section.
55#define M_EAN8 0x00400000
56#define M_MICROPDF417 0x00800000
57#define M_COMPOSITECODE 0x01000000
58#define M_UCCEAN128 0x02000000 //Part of a composite, this is a subtype only...
59
60// Allocation control flags
61#define M_CONTROL_FLAG 0x00019400L // Already define as 0x00019400L
62#define M_IGNORE_START_STOP 0x00000001
63
64/**************************************************************************/
65/* McodeReadMultiple() Code types */
66/**************************************************************************/
67#define M_AUTO_DETECT_ANGLE 0x00000001
68
69/**************************************************************************/
70/* McodeInquire(), McodeGetResult(), McodeControl() parameters */
71/**************************************************************************/
72
73#define M_CODE_TYPE 0x00000001L
74#define M_WRITE_SIZE_X 0x00000002L
75#define M_STRING 3L // Already define as 3L
76#define M_FOREGROUND_VALUE 4L // Already define as 4L
77#define M_WRITE_SIZE_Y 0x00000005L
78#define M_THRESHOLD 82 // Already define as 82
79#define M_OLD_THRESHOLD 6 // Already define as 6
80#define M_STATUS 0x00008002L
81#define M_FOREGROUND_WHITE 0x80L // Already define as 0x80L
82#define M_FOREGROUND_BLACK 0x100L // Already define as 0x100L
83#define M_SEARCH_ANGLE 0x00000100L // Already define as 0x00000100L
84#define M_SEARCH_ANGLE_DELTA_NEG 0x00000200L // Already define as 0x00000200L
85#define M_SEARCH_ANGLE_DELTA_POS 0x00000400L // Already define as 0x00000400L
86#define M_ANGLE 0x00000800L // Already define as 0x00000800L
87#define M_CELL_SIZE 0x00001000L
88#define M_CELL_SIZE_MIN 0x00002000L
89#define M_CELL_SIZE_MAX 0x00004000L
90#define M_ASPECT_RATIO 6001L // Already define as 6001L
91#define M_CELL_NUMBER_X 0x00008000L
92#define M_CELL_NUMBER_Y 0x00008001L
93#define M_SPEED M_SPEED_FACTOR // Already define as 8L
94#define M_STRING_SIZE 0x00008003L
95#define M_ERROR_CORRECTION 0x00008004L
96#define M_ENCODING 0x00008005L
97#define M_DOT_SPACING 0x00008007L
98#define M_SEGMENT_NUMBER_X 0x0000800AL
99#define M_SEGMENT_NUMBER_Y 0x0000800BL
100
101#define M_BIT_STREAM 0x00008008L
102#define M_POSITION_X 0x00003400L // Already define as 0x00003400L
103#define M_POSITION_Y 0x00004400L // Already define as 0x00004400L
104#define M_MATRIX_BASE_VECTOR_1_X 0x00004500L
105#define M_MATRIX_BASE_VECTOR_1_Y 0x00004600L
106#define M_MATRIX_BASE_VECTOR_2_X 0x00004700L
107#define M_MATRIX_BASE_VECTOR_2_Y 0x00004800L
108
109#define M_DISTANCE_MAX 0x00004900L
110#define M_SCAN_REVERSE 0x00004B00L
111#define M_USE_SHARPEN 0x00004C00L
112#define M_USE_PRESEARCH 0x00004D00L
113
114#define M_DATAMATRIX_TYPE 0x00004E00L //Undocumented flag usefull to increase
115 //speed if the user know his Datamatrix
116 //are always obsolete or never obsolete...
117 //Possible values are : M_OBSOLETE, M_REGULAR or
118 //M_ANY. M_ANY is the default value since it allow
119 //to read both type of Datamatrix.
120#define M_SCANLINE_HEIGHT 0x00004F00L //Usefull to control the height of the scanline (in pixel).
121#define M_SCANLINE_FREQUENCE 0x00005000L //Obsolete : replaced by M_SCANLINE_STEP
122 //keep here for backward compatibility
123#define M_SCANLINE_STEP M_SCANLINE_FREQUENCE //Usefull to control the distance between scanline.
124#define M_SUB_TYPE 0x00005100L //To enable code sub type for a read operation.
125 //Example : M_RSS14, M_RSS_LIMITED,...
126
127#define M_CHECK_DIGIT 0x0000000EL
128#define M_SIZE_X 1002L //Already define as 1002L
129#define M_SIZE_Y 1003L //Already define as 1003L
130#define M_TOP_LEFT_X 1004L
131#define M_TOP_LEFT_Y 1005L
132
133//Grading result flags
134#define M_OVERALL_SYMBOL_GRADE 0x00009000L
135#define M_SYMBOL_CONTRAST_GRADE 0x00009001L
136#define M_PRINT_GROWTH_GRADE 0x00009002L
137#define M_AXIAL_NONUNIFORMITY_GRADE 0x00009003L
138#define M_UNUSED_ERROR_CORRECTION_GRADE 0x00009004L
139#define M_DECODE_GRADE 0x00009005L
140#define M_EDGE_DETERMINATION_GRADE 0x00009006L
141#define M_MINIMUM_REFLECTANCE_GRADE 0x00009007L
142#define M_MINIMUM_EDGE_CONTRAST_GRADE 0x00009008L
143#define M_MODULATION_GRADE 0x00009009L
144#define M_DEFECTS_GRADE 0x0000900AL
145#define M_DECODABILITY_GRADE 0x0000900BL
146#define M_RAP_GRADE 0x0000900CL
147#define M_SYMBOL_BASED_GRADE 0x0000900DL
148#define M_START_STOP_PATTERN_GRADE 0x0000900EL
149
150#define M_TYPE_LONG 0x00040000L // Already define as 0x00040000L
151#define M_TYPE_DOUBLE 0x00100000L // Already define as 0x00010000L
152#define M_ESCAPE_SEQUENCE 0x00000010L
153
154#define M_SIZE_BYTE 5061L // already defined as 5061L
155
156/**************************************************************************/
157/* McodeSave(), McodeRestore() */
158/**************************************************************************/
159#ifndef M_MIL_75_COMPATIBLE
160#define M_MEMORY (M_APP_INQUIRE_SYS_START+120L) /*5120*/ // Already defined in Mil.h
161#else
162#define M_MEMORY 5L // Already defined in Mil.h
163#endif //M_MIL_75_COMPATIBLE
164
165#define M_INTERACTIVE M_NULL // Already defined in mil.h, milcal.h, miledge.h, milmeas.h, milocr.h, milpat.h, milmod.h
166
167
168
169/**************************************************************************/
170/* McodeInquire(), McodeGetResult(), McodeControl() parameter values */
171/**************************************************************************/
172
173#define M_ECC_050 0 // These numbers are importants!!
174#define M_ECC_080 1
175#define M_ECC_100 2
176#define M_ECC_140 3
177#define M_ECC_NONE 4
178#define M_ECC_CHECK_DIGIT 5
179#define M_ECC_UNKNOWN 6
180#define M_ECC_200 7
181#define M_ECC_REED_SOLOMON_0 10
182#define M_ECC_REED_SOLOMON_1 (M_ECC_REED_SOLOMON_0 + 1)
183#define M_ECC_REED_SOLOMON_2 (M_ECC_REED_SOLOMON_0 + 2)
184#define M_ECC_REED_SOLOMON_3 (M_ECC_REED_SOLOMON_0 + 3)
185#define M_ECC_REED_SOLOMON_4 (M_ECC_REED_SOLOMON_0 + 4)
186#define M_ECC_REED_SOLOMON_5 (M_ECC_REED_SOLOMON_0 + 5)
187#define M_ECC_REED_SOLOMON_6 (M_ECC_REED_SOLOMON_0 + 6)
188#define M_ECC_REED_SOLOMON_7 (M_ECC_REED_SOLOMON_0 + 7)
189#define M_ECC_REED_SOLOMON_8 (M_ECC_REED_SOLOMON_0 + 8)
190#define M_ECC_REED_SOLOMON 19
191#define M_ECC_010 20
192#define M_ECC_040 21
193#define M_ECC_060 22
194#define M_ECC_070 23
195#define M_ECC_090 24
196#define M_ECC_110 25
197#define M_ECC_120 26
198#define M_ECC_130 27
199#define M_ECC_COMPOSITE 28
200
201#define M_ENC_NUM 0 // These numbers are importants!!
202#define M_ENC_ALPHA 1
203#define M_ENC_ALPHANUM_PUNC 2
204#define M_ENC_ALPHANUM 3
205#define M_ENC_ASCII 4
206#define M_ENC_ISO8 5
207#define M_ENC_MODE2 6
208#define M_ENC_MODE3 (M_ENC_MODE2 + 1)
209#define M_ENC_MODE4 (M_ENC_MODE2 + 2)
210#define M_ENC_MODE5 (M_ENC_MODE2 + 3)
211#define M_ENC_MODE6 (M_ENC_MODE2 + 4)
212#define M_ENC_STANDARD 11
213#define M_ENC_UNKNOWN 13
214#define M_ENC_EAN13 0x00000020 //32
215#define M_ENC_EAN8 0x00000040 //64
216#define M_ENC_UPCA 0x00000080 //128
217#define M_ENC_UPCE 0x00000100 //256
218#define M_ENC_UCCEAN128_PDF417 0x00000200 //512
219#define M_ENC_RSS14 0x00000400 //1024
220#define M_ENC_RSS14_TRUNCATED 0x00000800 //2048
221#define M_ENC_RSS_LIMITED 0x00001000 //4096
222#define M_ENC_RSS_EXPANDED 0x00002000 //8192
223#define M_ENC_RSS14_STACKED 0x00004000 //16384
224#define M_ENC_RSS14_STACKED_OMNI 0x00008000 //32768
225#define M_ENC_RSS_EXPANDED_STACKED 0x00010000 //65536
226#define M_ENC_UCCEAN128_MICROPDF417 0x00020000 //131072
227#define M_ENC_UCCEAN128 0x00040000 //262144
228#define M_ENC_PDF417 0x00080000 //524288
229#define M_ENC_MICROPDF417 0x00040000 //1048576
230
231#define M_STATUS_OK 0 //Obsolete flag
232#define M_STATUS_READ_OK M_STATUS_OK
233#define M_STATUS_CRC_FAILED 1
234#define M_STATUS_ECC_UNKNOWN 2
235#define M_STATUS_ENC_UNKNOWN 3
236#define M_STATUS_WRITE_OK 4
237#define M_STATUS_WRITE_FAILED 5
238#define M_STATUS_NOT_FOUND 6
239#define M_STATUS_VERIFY_OK 7
240#define M_STATUS_VERIFY_FAILED 8
241#define M_STATUS_NO_RESULT_AVAILABLE 9
242
243#define M_VERY_LOW 0L // Already define as 0L
244#define M_LOW 1L // Already define as 1L
245#define M_MEDIUM 2L // Already define as 2L
246#define M_HIGH 3L // Already define as 3L
247#define M_VERY_HIGH 4L // Already define as 4L
248
249#define M_ANY 0x11000000L // Already define as 0x11000000L
250#define M_DEFAULT 0x10000000L // Already define as 0x10000000L
251
252#define M_PRESENT 2L// Already define as 2L
253#define M_ABSENT 3L
254
255#define M_OBSOLETE 25L
256#define M_REGULAR 0x00020000L // Already define as 0x00020000L
257
258//Grading result possible values
259#define M_CODE_GRADE_A 4L //These numbers should not be changed
260#define M_CODE_GRADE_B 3L
261#define M_CODE_GRADE_C 2L
262#define M_CODE_GRADE_D 1L
263#define M_CODE_GRADE_F 0L
264#define M_CODE_GRADE_NOT_AVAILABLE 5L
265
266/**************************************************************************/
267/* Function prototypes */
268/**************************************************************************/
269
270#ifndef __midl // MIDL compiler used by ActiveMIL
271
272MFTYPE32 MIL_ID MFTYPE McodeAlloc (MIL_ID SystemId, long CodeType, long ControlFlag, MIL_ID *CodeIdPtr);
273MFTYPE32 void MFTYPE McodeControl (MIL_ID CodeId, long ControlType, double ControlValue);
274MFTYPE32 long MFTYPE McodeInquire (MIL_ID CodeId, long ParamToInquire, void *ValuePtr);
275MFTYPE32 void MFTYPE McodeRead (MIL_ID CodeId, MIL_ID ImageBufId, long ControlFlag);
276MFTYPE32 void MFTYPE McodeWrite (MIL_ID CodeId, MIL_ID ImageBufId, MIL_TEXT_PTR String, long ControlFlag);
277MFTYPE32 void MFTYPE McodeGetResult (MIL_ID CodeId, long ResultType, void *ResultPtr);
278MFTYPE32 void MFTYPE McodeSave (MIL_TEXT_PTR FileName, MIL_ID CodeId, long ControlFlag);
279MFTYPE32 MIL_ID MFTYPE McodeRestore (MIL_TEXT_PTR FileName, MIL_ID SystemId, long ControlFlag, MIL_ID* CodeIdPtr);
280MFTYPE32 void MFTYPE McodeFree (MIL_ID CodeId );
281MFTYPE32 void MFTYPE McodeVerify (MIL_ID CodeId, MIL_ID ImageBufId, MIL_TEXT_PTR String, long ControlFlag);
282
283#endif /* #ifdef __midl */
284
285/* C++ directive if needed */
286#ifdef __cplusplus
287}
288#endif
289
290#endif // !M_MIL_LITE
291
292#endif /* __MILCODE_H__ */
long MIL_ID
Definition: AcqOdyssey.h:45
char * MIL_TEXT_PTR
Definition: Milos.h:90
MFTYPE32 void MFTYPE McodeRead(MIL_ID CodeId, MIL_ID ImageBufId, long ControlFlag)
MFTYPE32 void MFTYPE McodeControl(MIL_ID CodeId, long ControlType, double ControlValue)
MFTYPE32 MIL_ID MFTYPE McodeAlloc(MIL_ID SystemId, long CodeType, long ControlFlag, MIL_ID *CodeIdPtr)
MFTYPE32 void MFTYPE McodeWrite(MIL_ID CodeId, MIL_ID ImageBufId, MIL_TEXT_PTR String, long ControlFlag)
MFTYPE32 void MFTYPE McodeFree(MIL_ID CodeId)
MFTYPE32 void MFTYPE McodeGetResult(MIL_ID CodeId, long ResultType, void *ResultPtr)
MFTYPE32 void MFTYPE McodeSave(MIL_TEXT_PTR FileName, MIL_ID CodeId, long ControlFlag)
MFTYPE32 MIL_ID MFTYPE McodeRestore(MIL_TEXT_PTR FileName, MIL_ID SystemId, long ControlFlag, MIL_ID *CodeIdPtr)
MFTYPE32 long MFTYPE McodeInquire(MIL_ID CodeId, long ParamToInquire, void *ValuePtr)
MFTYPE32 void MFTYPE McodeVerify(MIL_ID CodeId, MIL_ID ImageBufId, MIL_TEXT_PTR String, long ControlFlag)
MFTYPE32 char * String
Definition: milocr.h:33