FEDRA emulsion software from the OPERA Collaboration
milcode.h
Go to the documentation of this file.
1 //
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
18 extern "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 
272 MFTYPE32 MIL_ID MFTYPE McodeAlloc (MIL_ID SystemId, long CodeType, long ControlFlag, MIL_ID *CodeIdPtr);
273 MFTYPE32 void MFTYPE McodeControl (MIL_ID CodeId, long ControlType, double ControlValue);
274 MFTYPE32 long MFTYPE McodeInquire (MIL_ID CodeId, long ParamToInquire, void *ValuePtr);
275 MFTYPE32 void MFTYPE McodeRead (MIL_ID CodeId, MIL_ID ImageBufId, long ControlFlag);
276 MFTYPE32 void MFTYPE McodeWrite (MIL_ID CodeId, MIL_ID ImageBufId, MIL_TEXT_PTR String, long ControlFlag);
277 MFTYPE32 void MFTYPE McodeGetResult (MIL_ID CodeId, long ResultType, void *ResultPtr);
278 MFTYPE32 void MFTYPE McodeSave (MIL_TEXT_PTR FileName, MIL_ID CodeId, long ControlFlag);
279 MFTYPE32 MIL_ID MFTYPE McodeRestore (MIL_TEXT_PTR FileName, MIL_ID SystemId, long ControlFlag, MIL_ID* CodeIdPtr);
280 MFTYPE32 void MFTYPE McodeFree (MIL_ID CodeId );
281 MFTYPE32 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