14#ifndef _BARCODESCANNER_H_
15#define _BARCODESCANNER_H_
33#define MWB_GRAYSCALE_LENX_MIN 25
34#define MWB_GRAYSCALE_LENX_MAX 5000
35#define MWB_GRAYSCALE_LENY_MIN 25
36#define MWB_GRAYSCALE_LENY_MAX 5000
45#define MWB_RT_NOT_SUPPORTED -2
46#define MWB_RT_BAD_PARAM -3
47#define MWB_RT_INVALID_SCANNING_RECTANGLE -4
55#define MWB_RTREG_INVALID_KEY -1
56#define MWB_RTREG_INVALID_CHECKSUM -2
57#define MWB_RTREG_INVALID_APPLICATION -3
58#define MWB_RTREG_INVALID_SDK_VERSION -4
59#define MWB_RTREG_INVALID_KEY_VERSION -5
60#define MWB_RTREG_INVALID_PLATFORM -6
61#define MWB_RTREG_KEY_EXPIRED -7
62#define MWB_RTREG_AIMER_REQUIRED -8
63#define MWB_RTREG_AIMER_NOT_DETECTED -9
66#define MWB_RTREG_CUSTOM_SIZE_EXCEEDED -100
79#define MWB_CFG_GLOBAL_HORIZONTAL_SHARPENING 0x01
80#define MWB_CFG_GLOBAL_VERTICAL_SHARPENING 0x02
81#define MWB_CFG_GLOBAL_SHARPENING 0x03
86#define MWB_CFG_GLOBAL_ROTATE90 0x04
87#define MWB_CFG_GLOBAL_ROTATE180 0x08
91#define MWB_CFG_GLOBAL_CALCULATE_1D_LOCATION 0x10
95#define MWB_CFG_GLOBAL_VERIFY_1D_LOCATION 0x20
100#define MWB_CFG_GLOBAL_USE_CENTRIC_SCANNING 0x40
104#define MWB_CFG_GLOBAL_DISABLE_PREPROCESSING 0x80
108#define MWB_CFG_GLOBAL_ENABLE_MULTI 0x100
112#define MWB_CFG_GLOBAL_SCANLINESx2 0x200
113#define MWB_CFG_GLOBAL_SCANLINESx4 0x400
114#define MWB_CFG_GLOBAL_SCANLINESx8 0x800
119#define MWB_CFG_CODE39_REQ_CHKSUM 0x2
124#define MWB_CFG_CODE39_DONT_REQUIRE_STOP 0x4
129#define MWB_CFG_CODE39_EXTENDED_MODE 0x8
134#define MWB_CFG_CODE39_CODE32_ENABLED 0x10
139#define MWB_CFG_CODE39_CODE32_PREFIX 0x20
145#define MWB_CFG_CODE93_EXTENDED_MODE 0x8
150#define MWB_CFG_EANUPC_DISABLE_ADDON 0x1
154#define MWB_CFG_EANUPC_DONT_EXPAND_UPCE 0x2
160#define MWB_CFG_CODE25_REQ_CHKSUM 0x01
161#define MWB_CFG_CODE25_REQ_CHKSUM_STANDARD 0x02
162#define MWB_CFG_CODE25_REQ_CHKSUM_INTERLEAVED 0x04
163#define MWB_CFG_CODE25_REQ_CHKSUM_IATA 0x08
164#define MWB_CFG_CODE25_REQ_CHKSUM_MATRIX 0x10
165#define MWB_CFG_CODE25_REQ_CHKSUM_COOP 0x20
166#define MWB_CFG_CODE25_REQ_CHKSUM_INVERTED 0x40
173#define MWB_CFG_CODE11_REQ_SINGLE_CHKSUM 0x1
174#define MWB_CFG_CODE11_REQ_DOUBLE_CHKSUM 0x2
180#define MWB_CFG_MSI_REQ_10_CHKSUM 0x01
181#define MWB_CFG_MSI_REQ_1010_CHKSUM 0x02
182#define MWB_CFG_MSI_REQ_11_IBM_CHKSUM 0x04
183#define MWB_CFG_MSI_REQ_11_NCR_CHKSUM 0x08
184#define MWB_CFG_MSI_REQ_1110_IBM_CHKSUM 0x10
185#define MWB_CFG_MSI_REQ_1110_NCR_CHKSUM 0x20
191#define MWB_CFG_CODABAR_INCLUDE_STARTSTOP 0x1
196#define MWB_CFG_DM_DPM_MODE 0x2
201#define MWB_CFG_TELEPEN_FORCE_NUMERIC 0x1
206#define MWB_PAR_ID_ECI_MODE 0x08
207#define MWB_PAR_ID_RESULT_PREFIX 0x10
208#define MWB_PAR_ID_VERIFY_LOCATION 0x20
211#define MWB_PAR_ID_SCAN_COLOR 0x40
214#define MWB_PAR_ID_SAFE_ZONE_SCALE 0x80
221#define MWB_PAR_VALUE_ECI_DISABLED 0x00
222#define MWB_PAR_VALUE_ECI_ENABLED 0x01
224#define MWB_PAR_VALUE_RESULT_PREFIX_NEVER 0x00
225#define MWB_PAR_VALUE_RESULT_PREFIX_ALWAYS 0x01
226#define MWB_PAR_VALUE_RESULT_PREFIX_DEFAULT 0x02
228#define MWB_PAR_VALUE_VERIFY_LOCATION_OFF 0x00
229#define MWB_PAR_VALUE_VERIFY_LOCATION_ON 0x01
230#define MWB_PAR_VALUE_VERIFY_LOCATION_STRICT 0x02
232#define MWB_PAR_VALUE_COLOR_NORMAL 0x01
233#define MWB_PAR_VALUE_COLOR_INVERTED 0x02
234#define MWB_PAR_VALUE_COLOR_BOTH 0x04
244#define MWB_CODE_MASK_NONE 0x00000000u
245#define MWB_CODE_MASK_QR 0x00000001u
246#define MWB_CODE_MASK_DM 0x00000002u
247#define MWB_CODE_MASK_RSS 0x00000004u
248#define MWB_CODE_MASK_39 0x00000008u
249#define MWB_CODE_MASK_EANUPC 0x00000010u
250#define MWB_CODE_MASK_128 0x00000020u
251#define MWB_CODE_MASK_PDF 0x00000040u
252#define MWB_CODE_MASK_AZTEC 0x00000080u
253#define MWB_CODE_MASK_25 0x00000100u
254#define MWB_CODE_MASK_93 0x00000200u
255#define MWB_CODE_MASK_CODABAR 0x00000400u
256#define MWB_CODE_MASK_DOTCODE 0x00000800u
257#define MWB_CODE_MASK_11 0x00001000u
258#define MWB_CODE_MASK_MSI 0x00002000u
259#define MWB_CODE_MASK_MAXICODE 0x00004000u
260#define MWB_CODE_MASK_POSTAL 0x00008000u
261#define MWB_CODE_MASK_TELEPEN 0x00010000u
262#define MWB_CODE_MASK_ALL 0x00ffffffu
268#define MWB_SUBC_MASK_RSS_14 0x00000001u
269#define MWB_SUBC_MASK_RSS_14_STACK 0x00000002u
270#define MWB_SUBC_MASK_RSS_LIM 0x00000004u
271#define MWB_SUBC_MASK_RSS_EXP 0x00000008u
277#define MWB_SUBC_MASK_QR_STANDARD 0x00000001u
278#define MWB_SUBC_MASK_QR_MICRO 0x00000002u
284#define MWB_SUBC_MASK_PDF_STANDARD 0x00000001u
285#define MWB_SUBC_MASK_PDF_MICRO 0x00000002u
292#define MWB_SUBC_MASK_C25_INTERLEAVED 0x00000001u
293#define MWB_SUBC_MASK_C25_STANDARD 0x00000002u
294#define MWB_SUBC_MASK_C25_ITF14 0x00000004u
295#define MWB_SUBC_MASK_C25_IATA 0x00000008u
296#define MWB_SUBC_MASK_C25_MATRIX 0x00000010u
297#define MWB_SUBC_MASK_C25_COOP 0x00000020u
298#define MWB_SUBC_MASK_C25_INVERTED 0x00000040u
305#define MWB_SUBC_MASK_POSTAL_POSTNET 0x00000001u
306#define MWB_SUBC_MASK_POSTAL_PLANET 0x00000002u
307#define MWB_SUBC_MASK_POSTAL_IM 0x00000004u
308#define MWB_SUBC_MASK_POSTAL_ROYAL 0x00000008u
309#define MWB_SUBC_MASK_POSTAL_AUSTRALIAN 0x00000010u
316#define MWB_SUBC_MASK_EANUPC_EAN_13 0x00000001u
317#define MWB_SUBC_MASK_EANUPC_EAN_8 0x00000002u
318#define MWB_SUBC_MASK_EANUPC_UPC_A 0x00000004u
319#define MWB_SUBC_MASK_EANUPC_UPC_E 0x00000008u
320#define MWB_SUBC_MASK_EANUPC_UPC_E1 0x00000010u
327#define MWB_SCANDIRECTION_HORIZONTAL 0x00000001u
328#define MWB_SCANDIRECTION_VERTICAL 0x00000002u
329#define MWB_SCANDIRECTION_OMNI 0x00000004u
330#define MWB_SCANDIRECTION_AUTODETECT 0x00000008u
331#define MWB_SCANDIRECTION_CUSTOM 0x00000010u
392#define MWB_RESULT_TYPE_RAW 0x00000001u
393#define MWB_RESULT_TYPE_MW 0x00000002u
403#define MWB_RESULT_FT_BYTES 0x00000001u
404#define MWB_RESULT_FT_TEXT 0x00000002u
405#define MWB_RESULT_FT_TYPE 0x00000003u
406#define MWB_RESULT_FT_SUBTYPE 0x00000004u
407#define MWB_RESULT_FT_SUCCESS 0x00000005u
408#define MWB_RESULT_FT_ISGS1 0x00000006u
409#define MWB_RESULT_FT_LOCATION 0x00000007u
410#define MWB_RESULT_FT_IMAGE_WIDTH 0x00000008u
411#define MWB_RESULT_FT_IMAGE_HEIGHT 0x00000009u
412#define MWB_RESULT_FT_PARSER_BYTES 0x0000000Au
414#define MWB_RESULT_FT_MODULES_COUNT_X 0x0000000Bu
415#define MWB_RESULT_FT_MODULES_COUNT_Y 0x0000000Cu
416#define MWB_RESULT_FT_MODULE_SIZE_X 0x0000000Du
417#define MWB_RESULT_FT_MODULE_SIZE_Y 0x0000000Eu
418#define MWB_RESULT_FT_SKEW 0x0000000Fu
419#define MWB_RESULT_FT_KANJI 0x00000010u
421#define MWB_RESULT_FT_BARCODE_WIDTH 0x00000011u
422#define MWB_RESULT_FT_BARCODE_HEIGHT 0x00000012u
424#define MWB_RESULT_FT_TEXT_ENCODING 0x00000013u
426#define MWB_RESULT_FT_PDF_ROWS 0x00000020u
427#define MWB_RESULT_FT_PDF_COLUMNS 0x00000021u
428#define MWB_RESULT_FT_PDF_TRUNCATED 0x00000022u
429#define MWB_RESULT_FT_PDF_ECLEVEL 0x00000023u
430#define MWB_RESULT_FT_PDF_CODEWORDS 0x00000024u
437#define MWB_RESULT_FNAME_BYTES "Bytes"
438#define MWB_RESULT_FNAME_TEXT "Text"
439#define MWB_RESULT_FNAME_TYPE "Type"
440#define MWB_RESULT_FNAME_SUBTYPE "Subtype"
441#define MWB_RESULT_FNAME_SUCCESS "Success"
442#define MWB_RESULT_FNAME_ISGS1 "GS1 compliance"
443#define MWB_RESULT_FNAME_KANJI "Kanji encoding"
444#define MWB_RESULT_FNAME_TEXT_ENCODING "Text encoding"
445#define MWB_RESULT_FNAME_LOCATION "Location"
446#define MWB_RESULT_FNAME_IMAGE_WIDTH "Image Width"
447#define MWB_RESULT_FNAME_IMAGE_HEIGHT "Image Height"
448#define MWB_RESULT_FNAME_PARSER_BYTES "Parser Input"
450#define MWB_RESULT_FNAME_MODULES_COUNT_X "Modules Count X"
451#define MWB_RESULT_FNAME_MODULES_COUNT_Y "Modules Count Y"
452#define MWB_RESULT_FNAME_MODULE_SIZE_X "Module Size X"
453#define MWB_RESULT_FNAME_MODULE_SIZE_Y "Module Size Y"
454#define MWB_RESULT_FNAME_SKEW "Skew"
456#define MWB_RESULT_FNAME_BARCODE_WIDTH "Barcode Width"
457#define MWB_RESULT_FNAME_BARCODE_HEIGHT "Barcode Height"
459#define MWB_RESULT_FNAME_PDF_ROWS "PDF417 Rows Count"
460#define MWB_RESULT_FNAME_PDF_COLUMNS "PDF417 Columns Count"
461#define MWB_RESULT_FNAME_PDF_TRUNCATED "PDF417 is Truncated"
462#define MWB_RESULT_FNAME_PDF_ECLEVEL "PDF417 EC Level"
463#define MWB_RESULT_FNAME_PDF_CODEWORDS "PDF417 Codewords"
int MWB_getTargetRect(float *left, float *top, float *width, float *height)
Get rectangular area for targeted barcode scanning Output values are in percentages of screeen width ...
int MWB_setActiveSubcodes(const uint32_t codeMask, const uint32_t subMask)
Set active subcodes for given code group flag.
int MWB_getParam(const uint32_t codeMask, const uint32_t paramId)
Get specified decoder param.
unsigned int MWB_getLibVersion(void)
Returns version code of Barcode Scanner Library.
int MWB_registerSDKCustom(const char *key, const char *customData)
Same as RegisterSDK with addition of custom string to be sent along with tracking info.
char * MWB_getLicenseString(void)
Get license string for retrieving remaining devices It should be called after registering call,...
int MWB_getActiveCodes(void)
Get active decoder types.
int MWB_setActiveCodes(const uint32_t codeMask)
Sets active or inactive status of decoder types and updates decoder execution priority list.
int MWB_setDirection(const uint32_t direction)
Configure scanning direction for 1D barcodes.
int MWB_getDirection(void)
Get active scanning direction.
int MWB_getBarcodeLocation(float *points)
Barcode location points .
unsigned int uint32_t
Definition: BarcodeScanner.h:22
int MWB_disableCode(const uint32_t codeMask)
Disable decoder type Remove barcode type from set of enabled types.
int MWB_setTargetRect(float left, float top, float width, float height)
Sets rectangular area for targeted barcode scanning.
int MWB_setMinLength(const uint32_t codeMask, const uint32_t minLength)
Set minimum result length for single barcode type.
int MWB_createRegionsFromTiles(int tilesX, int tilesY, int overlap, float *regionsData)
Create multiple regions based on number of tiles by X and Y axes.
int MWB_getLastType(void)
Retrieves actual detected code type after successful MWB_scanGrayscaleImage call.
int MWB_setFlags(const uint32_t codeMask, const uint32_t flags)
Configure options for single barcode type.
char * MWB_getLibVersionText(void)
int MWB_scanGrayscaleImage(uint8_t *pp_image, int lenX, int lenY, uint8_t **pp_data)
Main scan function.
int MWB_setCodePriority(const uint32_t codeMask, const uint8_t priority)
Sets code priority level for selected decoder group or groups.
unsigned int MWB_getSupportedCodes(void)
Returns supported decoders in this library release.
res_types
Definition: BarcodeScanner.h:339
@ FOUND_CODABAR
Definition: BarcodeScanner.h:358
@ FOUND_UPC_E
Definition: BarcodeScanner.h:350
@ FOUND_RSS_EXP
Definition: BarcodeScanner.h:346
@ FOUND_RSS_14_STACK
Definition: BarcodeScanner.h:344
@ FOUND_ROYALMAIL
Definition: BarcodeScanner.h:373
@ FOUND_25_MATRIX
Definition: BarcodeScanner.h:365
@ FOUND_39
Definition: BarcodeScanner.h:342
@ FOUND_11
Definition: BarcodeScanner.h:362
@ FOUND_32
Definition: BarcodeScanner.h:375
@ FOUND_QR
Definition: BarcodeScanner.h:353
@ FOUND_25_COOP
Definition: BarcodeScanner.h:366
@ FOUND_25_STANDARD
Definition: BarcodeScanner.h:356
@ FOUND_ITF14
Definition: BarcodeScanner.h:361
@ FOUND_TELEPEN
Definition: BarcodeScanner.h:377
@ FOUND_EAN_13
Definition: BarcodeScanner.h:347
@ FOUND_IMB
Definition: BarcodeScanner.h:372
@ FOUND_NONE
Definition: BarcodeScanner.h:340
@ FOUND_93
Definition: BarcodeScanner.h:357
@ FOUND_EAN_8
Definition: BarcodeScanner.h:348
@ FOUND_DOTCODE
Definition: BarcodeScanner.h:359
@ FOUND_QR_MICRO
Definition: BarcodeScanner.h:368
@ FOUND_RSS_LIM
Definition: BarcodeScanner.h:345
@ FOUND_PDF
Definition: BarcodeScanner.h:352
@ FOUND_MAXICODE
Definition: BarcodeScanner.h:369
@ FOUND_MSI
Definition: BarcodeScanner.h:363
@ FOUND_25_IATA
Definition: BarcodeScanner.h:364
@ FOUND_UPC_A
Definition: BarcodeScanner.h:349
@ FOUND_MICRO_PDF
Definition: BarcodeScanner.h:374
@ FOUND_25_INVERTED
Definition: BarcodeScanner.h:367
@ FOUND_128
Definition: BarcodeScanner.h:351
@ FOUND_AZTEC
Definition: BarcodeScanner.h:354
@ FOUND_POSTNET
Definition: BarcodeScanner.h:370
@ FOUND_DM
Definition: BarcodeScanner.h:341
@ FOUND_RSS_14
Definition: BarcodeScanner.h:343
@ FOUND_PLANET
Definition: BarcodeScanner.h:371
@ FOUND_AUSTRALIAN
Definition: BarcodeScanner.h:376
@ FOUND_128_GS1
Definition: BarcodeScanner.h:360
@ FOUND_25_INTERLEAVED
Definition: BarcodeScanner.h:355
int MWB_getFlags(const uint32_t codeMask)
Get active flags for single barcode type.
int MWB_enableSubcode(const uint32_t codeMask, const uint32_t subMask)
enable subcode for given code group flag.
int MWB_setResultType(const uint32_t resultType)
Set result type from MWB_scanGrayscaleImage.
int MWB_enableCode(const uint32_t codeMask)
Enable decoder type Upon library load, all decoder types are inactive by default.
char * MWB_getDeviceID(void)
Get device ID It should be called after registering call, and works only on iOS and Android.
int MWB_validateVIN(char *vin, int length)
VIN validator.
int MWB_cleanupLib(void)
Free memory resources allocated by library.
int MWB_isLastGS1(void)
Retrieves is result of GS1 type.
int MWB_setLevel(const int level)
Configure global library effort level.
int MWB_setScanningRect(const uint32_t codeMask, float left, float top, float width, float height)
Sets rectangular area for barcode scanning with selected single decoder type.
unsigned char uint8_t
Definition: BarcodeScanner.h:23
int MWB_registerSDK(const char *key)
Registers licensing information for all SDK functionality.
void MWB_setDuplicate(uint8_t *barcode, int length)
int MWB_getResultType(void)
Get currently active result type.
int MWB_enableFlag(const uint32_t codeMask, const uint32_t flag)
Enable option for single barcode type (or global one).
int MWB_setDuplicatesTimeout(uint32_t timeout)
int MWB_getScanningRect(const uint32_t codeMask, float *left, float *top, float *width, float *height)
Get rectangular area for barcode scanning with selected single or multiple decoder type(s).
int MWB_scanGrayscaleRegions(uint8_t *pp_image, int lenX, int lenY, float *regionsData, int numberOfRegions, int maxThreads, uint8_t **pp_data)
Multi-regions scan function.
int MWB_setParam(const uint32_t codeMask, const uint32_t paramId, const uint32_t paramValue)
Set custom decoder param.
int MWB_getActiveSubcodes(const uint32_t codeMask)
Get active subcodes for given code group flag.
int MWB_disableFlag(const uint32_t codeMask, const uint32_t flag)
Disable option for single barcode type (or global one).
int MWB_disableSubcode(const uint32_t codeMask, const uint32_t subMask)
Disable subcode for given code group flag.