#pragma once // hg_scanner_cfg is the base configuration definitions // // created on 2022-02-23 // #include #include "char_const.h" #include "sane/sane_ex.h" #include #include #include "sane/sane_option_definitions.h" #include ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 硬件配置项定义 // #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) typedef struct hg_tag_SIZE { long cx; long cy; }CSSIZE, * PCSSIZE, * LPCSSIZE; typedef CSSIZE CSSIZEL; typedef CSSIZE* PCSSIZEL, * LPCSSIZEL; #if defined(WIN32) || defined(_WIN64) #include #else typedef CSSIZE Size; typedef CSSIZE SIZE; #endif enum hg_scanner_type { HG_SCANNER_TYPE_NONE = 0, HG_SCANNER_TYPE_G100, HG_SCANNER_TYPE_G200, HG_SCANNER_TYPE_G300, HG_SCANNER_TYPE_G400, HG_SCANNER_TYPE_G139, HG_SCANNER_TYPE_G239, }; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 设置项字符串定义 // // int match_best_xxx(std::string& val, bool* exact) 函数簇原型说明 // // Function: 匹配最接近的字符串,并返回对应的枚举值 // // Parameter: val - [in] 用户传入的设置参数字符串 // [out] 如果传入的参数不能精确匹配固定值,则修改为最接近的值或默认值 // // exact - [out] 如果val与固定选项精确匹配, 则返回true; // 否则返回false,并在val中返回精确的选项值 // // Return: 匹配字符串值的枚举值 // // 注意:下列所有文本定义,必须与设备JSON配置文件中的相关内容保持一致,否则将导致设备参数设置不正确,行为不可控!!! // // 颜色模式 选项 //#define HUAGAO_SETTING_STR_COLOR_MODE_BLACK_WHITE "黑白" //#define HUAGAO_SETTING_STR_COLOR_MODE_256_GRAY "256级灰度" //#define HUAGAO_SETTING_STR_COLOR_MODE_24_BITS "24位彩色" //#define HUAGAO_SETTING_STR_COLOR_MODE_AUTO_MATCH "颜色自动识别" enum { COLOR_MODE_BLACK_WHITE = 0, COLOR_MODE_256_GRAY, COLOR_MODE_24_BITS, COLOR_MODE_AUTO_MATCH, }; int match_best_color_mode(std::string& val, bool* exact); std::string color_mode_string(int clr_mode); //#define HUAGAO_SETTING_STR_MULTI_OUT_NOT "不选择输出模式" //#define HUAGAO_SETTING_STR_MULTI_OUT_ALL "彩色+灰度+黑白" //#define HUAGAO_SETTING_STR_MULTI_COLOR_ADN_GRAY "彩色+灰度" //#define HUAGAO_SETTING_STR_MULTI_COLOR_ADN_BW "彩色+黑白" //#define HUAGAO_SETTING_STR_MULTI_GRAY_ADN_BW "灰度+黑白" enum { MULTI_OUT_ALL = 0, MULTI_COLOR_AND_GRAY, MULTI_COLOR_AND_BW, MULTI_GRAY_AND_BW }; int match_best_multi_out(std::string& val, bool* exact); std::string multi_out_string(int clr_mode); // 除色 选项 //#define HUAGAO_SETTING_STR_RID_COLOR_NONE "不除色" //#define HUAGAO_SETTING_STR_RID_COLOR_RID_RED "除红色" //#define HUAGAO_SETTING_STR_RID_COLOR_RID_GREEN "除绿色" //#define HUAGAO_SETTING_STR_RID_COLOR_RID_BLUE "除蓝色" //#define HUAGAO_SETTING_STR_RID_COLOR_ENHANCE_RED "红色增强" //#define HUAGAO_SETTING_STR_RID_COLOR_ENHANCE_GREEN "绿色增强" //#define HUAGAO_SETTING_STR_RID_COLOR_ENHANCE_BLUE "蓝色增强" enum { RID_COLOR_NONE = 0, RID_COLOR_RID_RED, RID_COLOR_RID_GREEN, RID_COLOR_RID_BLUE, RID_COLOR_ENHANCE_RED, RID_COLOR_ENHANCE_GREEN, RID_COLOR_ENHANCE_BLUE, }; int match_best_rid_color(std::string& val, bool* exact); std::string rid_color_string(int rid_color); // 纸张 选项 //#define HUAGAO_SETTING_STR_PAPER_A3 "A3" //#define HUAGAO_SETTING_STR_PAPER_A4 "A4" //#define HUAGAO_SETTING_STR_PAPER_A5 "A5" //#define HUAGAO_SETTING_STR_PAPER_A6 "A6" //#define HUAGAO_SETTING_STR_PAPER_B4 "B4" //#define HUAGAO_SETTING_STR_PAPER_B5 "B5" //#define HUAGAO_SETTING_STR_PAPER_B6 "B6" //#define HUAGAO_SETTING_STR_PAPER_8K "8开" //#define HUAGAO_SETTING_STR_PAPER_16K "16开" //#define HUAGAO_SETTING_STR_PAPER_LETTER "Letter" //#define HUAGAO_SETTING_STR_PAPER_A4_LATERAL "A4横向" //#define HUAGAO_SETTING_STR_PAPER_A5_LATERAL "A5横向" //#define HUAGAO_SETTING_STR_PAPER_A6_LATERAL "A6横向" //#define HUAGAO_SETTING_STR_PAPER_B5_LATERAL "B5横向" //#define HUAGAO_SETTING_STR_PAPER_B6_LATERAL "B6横向" //#define HUAGAO_SETTING_STR_PAPER_16K_LATERAL "16开横向" //#define HUAGAO_SETTING_STR_PAPER_LETTER_LATERAL "Letter横向" //#define HUAGAO_SETTING_STR_PAPER_DOUBLE_LETTER "Double Letter" //#define HUAGAO_SETTING_STR_PAPER_LEGAL "LEGAL" //#define HUAGAO_SETTING_STR_PAPER_AUTO_MATCH "匹配原始尺寸" //#define HUAGAO_SETTING_STR_PAPER_MAX_SIZE "最大扫描尺寸" //#define HUAGAO_SETTING_STR_PAPER_MAX_SIZE_CLIP "最大扫描尺寸自动裁切" //#define HUAGAO_SETTING_STR_PAPER_TRIGEMINY "三联试卷" enum { PAPER_A3 = 0, PAPER_A4, PAPER_A5, PAPER_A6, PAPER_B4, PAPER_B5, PAPER_B6, PAPER_8K, PAPER_16K, PAPER_LETTER, PAPER_A4_LATERAL, PAPER_A5_LATERAL, PAPER_A6_LATERAL, PAPER_B5_LATERAL, PAPER_B6_LATERAL, PAPER_16K_LATERAL, PAPER_LETTER_LATERAL, PAPER_DOUBLE_LETTER, PAPER_LEGAL, PAPER_AUTO_MATCH, PAPER_MAX_SIZE, PAPER_MAX_SIZE_CLIP, PAPER_TRIGEMINY, }; SIZE paper_size(int paper); // unit: mm int match_best_paper(std::string& val, bool* exact); std::string paper_string(int paper); bool is_lateral(int paper); // 页面扫描模式 选项 //#define HUAGAO_SETTING_STR_PAGE_SINGLE "单面" //#define HUAGAO_SETTING_STR_PAGE_DOUBLE "双面" //#define HUAGAO_SETTING_STR_PAGE_OMIT_EMPTY "跳过空白页(通用)" //#define HUAGAO_SETTING_STR_PAGE_OMIT_EMPTY_RECEIPT "跳过空白页(发票纸)" //#define HUAGAO_SETTING_STR_PAGE_FOLIO "对折" enum { PAGE_SINGLE = 0, PAGE_DOUBLE, PAGE_OMIT_EMPTY, PAGE_OMIT_EMPTY_RECEIPT, PAGE_FOLIO, }; int match_best_page(std::string& val, bool* exact); std::string page_string(int page); // 锐化 选项 //#define HUAGAO_SETTING_STR_SHARPEN_NONE "无" //#define HUAGAO_SETTING_STR_SHARPEN_SHARPEN "锐化" //#define HUAGAO_SETTING_STR_SHARPEN_SHARPEN_MORE "进一步锐化" //#define HUAGAO_SETTING_STR_SHARPEN_HAZY "模糊" //#define HUAGAO_SETTING_STR_SHARPEN_HAZY_MORE "进一步模糊" enum { SHARPEN_NONE = 0, SHARPEN_SHARPEN, SHARPEN_SHARPEN_MORE, SHARPEN_HAZY, SHARPEN_HAZY_MORE, }; int match_best_sharpen(std::string& val, bool* exact); std::string sharpen_string(int sharpen); //背景填充方式 选项 //#define HUAGAO_SETTING_STR_FILL_BKG_CONVEX_POLYGON "凸多边形" //#define HUAGAO_SETTING_STR_FILL_BKG_CONCAVE_POLYGON "凹多边形" enum { FILL_BKG_CONVEX_POLYGON = 0, FILL_BKG_CONCAVE_POLYGON, }; int match_best_fill_background(std::string& val, bool* exact); std::string fill_background_string(int fill); // 扫描数量 选项 //#define HUAGAO_SETTING_STR_SCAN_MODE_CONTINUOUS "连续扫描" //#define HUAGAO_SETTING_STR_SCAN_MODE_GIVEN_COUNT "扫描指定张数" enum { SCAN_MODE_CONTINUOUS = 0, SCAN_MODE_GIVEN_COUNT, }; int match_best_scan_mode(std::string& val, bool* exact); std::string scan_mode_string(int mode); // 文稿方向 选项 //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_0 "0°" //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_90 "90°" //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_180 "180°" //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_270 "-90°" //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_AUTO "自动文本方向识别°" enum { TEXT_DIRECTION_0 = 0, TEXT_DIRECTION_90, TEXT_DIRECTION_180, TEXT_DIRECTION_270, TEXT_DIRECTION_AUTO, }; int match_best_text_direction(std::string& val, bool* exact); std::string text_direction_string(int text_dir); //#define HUAGAO_SETTING_STR_PERMAEATE_WEAKER "较弱" //#define HUAGAO_SETTING_STR_PERMAEATE_WEAK "弱" //#define HUAGAO_SETTING_STR_PERMAEATE_ORDINARY "一般" //#define HUAGAO_SETTING_STR_PERMAEATE_STRONG "强" //#define HUAGAO_SETTING_STR_PERMAEATE_STRONGER "较强" enum { PERMAEATE_WEAKER = 0, PERMAEATE_WEAK, PERMAEATE_ORDINARY, PERMAEATE_STRONG, PERMAEATE_STRONGER, }; int match_best_permaeate_lv(std::string& val, bool* exact); std::string is_permaeate_string(int text_dir); //画质 enum { IMG_NONE = -1, IMG_SPEED , IMG_QUALITY, }; int match_best_img_quality(std::string& val, bool* exact); std::string is_img_quality(int is_quakuty); // 双张处理 enum { DOUBLE_PAPER_CONTINUE = 0x01, // 继续扫描 DOUBLE_PAPER_SAVE_IMG = 0x02, // 保存图片 DOUBLE_PAPEAR_STOP = 0x03 //丢弃并停止 }; int double_paper_flag_from_option_value(std::string& opt_val, bool* exact); std::string double_paper_flag_to_option_value(int flag); bool is_continue_when_double_paper(int flag); bool is_save_img_when_double_paper(int flag); enum { PAPER_WEAK = 0, PAPER_AVERAGE, PAPER_STRONG, }; int match_best_paper_strength(std::string& val, bool* exact); std::string is_paper_strength(int strength); enum { SLEEP_TIME_0MIN = 0, SLEEP_TIME_5MIN, SLEEP_TIME_10MIN, SLEEP_TIME_20MIN, SLEEP_TIME_30MIN, SLEEP_TIME_60MIN, SLEEP_TIME_120MIN, SLEEP_TIME_240MIN, }; int match_best_sleep_time(std::string& val, bool* exact); std::string is_sleep_time(int sleep_time); enum { FOLD_TYPE_LEFT_RIGHT, FOLD_TYPE_UP_DOWN, FOLD_TYPE_AUTO }; int match_best_fold_type(std::string& val, bool* exact); std::string is_fold_type(int fold_type); // call me when language changed in multi-language - added on 2023-01-19 void reload_setting_string_from_pak(int cp, void* param); typedef union _img_proc_fixed_param { unsigned long long value; struct { unsigned long long rid_red : 1; // 多流输出除红 unsigned long long rid_answer_red : 1; // 答题卡除红 unsigned long long erase_bakground : 1; // 背景移除 unsigned long long noise_optimize : 1; // 噪点优化 unsigned long long exchange : 1; // 交换正反面 unsigned long long split : 1; // 图像拆分 unsigned long long rid_hole : 1; // 穿孔移除 unsigned long long dark_sample : 1; // 深色样张 unsigned long long rotate_back_180 : 1; // 背面旋转180度 unsigned long long fractate_check : 1; // 折角检测 unsigned long long is_permeate : 1; // 防止渗透 unsigned long long remove_morr : 1; // 去除摩尔纹 unsigned long long error_extention : 1; // 错误扩散 unsigned long long remove_txtture : 1; // 去网纹 unsigned long long fill_background : 2; // 背景填充方式 unsigned long long is_permeate_lv_ : 3; // 渗透等级 1 - 5 unsigned long long multi_out : 3; // 多流输出 unsigned long long erase_black_frame: 1; // 消除黑框 unsigned long long automatic_skew : 1; // 自动纠偏 unsigned long long rid_color : 3; // 除色 unsigned long long color_mode : 3; // 颜色模式 unsigned long long page : 3; // 页面模式 unsigned long long paper : 8; // 纸张类型 unsigned long long sharpen : 4; // 锐化模式 unsigned long long text_direction : 4; // 文稿方向 unsigned long long reserved2 : 14; // 保留 }bits; }IMGPRCFIXPARAM; // 设置项字符串定义 - OVER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 状态信息描述符 // // 状态信息描述符 - OVER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////图像参数及设备协议/////////////////////////////////////////////////////// //DSP 3288设备USB读写协议结构 // typedef struct tag_USBCB { unsigned int u32_CMD; unsigned int u32_Data; unsigned int u32_Count; }USBCB, * PUSBCB; //DSP设备USB读写协议结构 - OVER enum PaperAlign :unsigned char { Rot0 = 0, Rot270 = 3, AutoTextOrientation = 5 }; enum LowPowerMode :unsigned int { Min_None = 0, Min_5, Min_10, Min_20, Min_30, Min_60, Min_120, Min_240 }; //纸张类型 enum TwSS : unsigned short { None = 0, A4Letter = 1, A4 = 1, B5Letter = 2, JISB5 = 2, B5 = 2, USLetter = 3, USLegal = 4, A5 = 5, B4 = 6, ISOB4 = 6, B6 = 7, ISOB6 = 7, USLedger = 9, USExecutive = 10, A3 = 11, B3 = 12, ISOB3 = 12, A6 = 13, C4 = 14, C5 = 15, C6 = 16, _4A0 = 17, _2A0 = 18, A0 = 19, A1 = 20, A2 = 21, A7 = 22, A8 = 23, A9 = 24, A10 = 25, ISOB0 = 26, ISOB1 = 27, ISOB2 = 28, ISOB5 = 29, ISOB7 = 30, ISOB8 = 31, ISOB9 = 32, ISOB10 = 33, JISB0 = 34, JISB1 = 35, JISB2 = 36, JISB3 = 37, JISB4 = 38, JISB6 = 39, JISB7 = 40, JISB8 = 41, JISB9 = 42, JISB10 = 43, C0 = 44, C1 = 45, C2 = 46, C3 = 47, C7 = 48, C8 = 49, C9 = 50, C10 = 51, USStatement = 52, BusinessCard = 53, MaxSize = 54, K8 = 0x81, K16 = 0x82, Trigeminy = 0x83, }; //纸张类型 - OVER enum ScannerSerial { G100Serial, G200Serial, G300Serial, G400Serial, G10039Serial, G20039Serial, }; #pragma pack(push) #pragma pack(4) //除色和增强 // typedef enum tagColor_Filter { FILTER_RED, FILTER_GREEN, FILTER_BLUE, FILTER_NONE, FILTER_ALL, ENHANCE_RED, ENHANCE_GREEN, ENHANCE_BLUE }ColorFilter; //除色和增强 - OVER //填穿孔 // typedef struct tagFillHole { uint8_t is_fillhole; int fillholeratio; }FillHole; //填穿孔 - OVER //黑白降噪 // typedef struct tagDetachNoise { unsigned char is_detachnoise; int detachnoise; }DetachNoise; //黑白降噪 -OVER //自定义裁切 // typedef struct tagCrop_Rect { int enable; int x; /*****自定义裁切区域左上角x坐标*/ int y; /*****自定义裁切区域左上角y坐标*/ int width; /*****自定义裁切区域宽度*******/ int height; /*****自定义裁切区域高度*******/ }CropRect; //自定义裁切 -OVER //多留输出 // typedef enum tagMulti_Output { Unused = -1, All, ColorGray, ColorBw, GrayBw }MultiOutput; //多留输出 -OVER //设置设备硬件状态 // typedef struct tagHhardware_Params { unsigned char capturepixtype; unsigned char en_doublefeed; unsigned char en_stapledetect; unsigned char en_skrewdetect; unsigned char skrewdetectlevel; LowPowerMode lowpowermode; #ifdef UV unsigned char en_uv; #endif }HardwareCaps; //设置设备硬件状态 -OVER //图像参数设置 // typedef struct _scan_conf { unsigned char papertype; /**< 纸张尺寸>*/ unsigned char paperAlign; /**< 纸张尺寸是否横向>*/ unsigned char en_sizecheck; /**< 尺寸检测>*/ float imageRotateDegree; /**< 旋转>*/ unsigned char is_duplex; /**< 是否双面*/ unsigned char en_fold; /**< 是否对折>*/ int pixtype; /**< 颜色模式>*/ int automaticcolor; /**< 顔色自動識別>*/ int automaticcolortype; /**< 顔色自動識別后非彩色上傳類型>*/ float resolution_dst; /**< 设置分辨率>*/ float resolution_native; /**< 保存分辨率>*/ float gamma; /**< 伽马值>*/ float contrast; /**< 对比度>*/ float brightness; /**< 亮度>*/ float threshold; /**< 阈值>*/ unsigned char is_autocontrast; /**< 自动对比度>*/ unsigned char is_autocrop; /**< 自动裁切>*/ unsigned char is_autodiscradblank_normal; /**< 自动丢弃空白页通用>*/ int discardblank_percent; /**< 跳过空白页阈值*/ unsigned char is_autodiscradblank_vince; /**< 自动丢弃空白页发票>*/ unsigned char is_switchfrontback; /**< 交换正反面>*/ unsigned char autodescrew; /**< 自动纠偏>*/ unsigned char multi_output_red; /**< 多流输出>*/ unsigned char hsvcorrect; /**< 答题卡除红>*/ unsigned char filter; /**< 除色>*/ unsigned char sharpen; /**< 锐化>*/ unsigned char enhance_color; /**< 颜色增强>*/ unsigned char fillbackground; /**< 填黑框>*/ bool is_convex; /**< 填黑框模式,true为凸多边形填充,false为凹多边形填充,默认true>*/ int noise; /**< 除噪像素,能够消除noise宽度的背景竖条纹干扰,默认40>*/ int indent; /**< 轮廓缩进,裁剪、纠偏或者黑底填充时,对探索到的纸张轮廓进行缩进indent像素,默认5>*/ int AutoCrop_threshold; /**< 自动裁剪二值化阈值,取值范围(0, 255),默认40>*/ unsigned short scannum; /**< 扫描张数>*/ unsigned char is_backrotate180; /**< 背面旋转180>*/ unsigned char is_dogeardetection; /**< 折角检测>*/ HardwareCaps hardwarecaps; /**< 硬件扫描参数>*/ FillHole fillhole; /**< 填穿孔>*/ DetachNoise detachnoise; /**< 黑白降噪>*/ unsigned char is_autotext; /**< 自动文本方向识别>*/ bool isfillcolor; /**< 自动裁切颜色填充>*/ int refuseInflow; /**< 防止渗透>*/ int colorCorrection; /**< 色彩校正>*/ int removeMorr; /**< 去除摩尔纹>*/ int errorExtention; /**< 错误扩散>*/ int textureRemove; /**< 除网纹>*/ int splitImage; /**< 图像拆分>*/ CropRect cropRect; /**< 自定义裁切>*/ MultiOutput multiOutput; /**< 多流输出>*/ bool normalCrop; /**< 自动裁切深色样张>*/ uint32_t dogeardistabce; bool fadeback; /**< 背景除色>*/ int fadebackrange; /**< 背景除色阈值>*/ bool isuoloadexceptionimage; /**< 是否保留双张出图>*/ int fillholeratio_up; /**< 上侧除穿孔比率,0为不除。[0,50],added on 2022-09-12>*/ int fillholeratio_down; /**< 下侧除穿孔比率,0为不除。[0,50],added on 2022-09-12>*/ int fillholeratio_left; /**< 左侧除穿孔比率,0为不除。[0,50],added on 2022-09-12>*/ int fillholeratio_right; /**< 右侧除穿孔比率,0为不除。[0,50],added on 2022-09-12>*/ uint8_t fold_concatmode; /**< 对折拼接模式 0左右,1上下,2自动对折>*/ int HsvFilterType; /**< 答题卡留红出杂色功能类型 暂定为0*/ bool is_colorcast; /**< 色偏校正*/ uint32_t reserve[1024]; /**< 预留4096字节做协议扩展*/ }SCANCONF ,*LPSCANCONF; //图像参数设置 -OVER //硬件协议定义 namespace setting_hardware { typedef union hg_scanner_config_3399 { unsigned int value; struct { unsigned int paper : 5; // 纸张类型 (每个型号有不同的映射表) unsigned int color : 1; // 是否彩色 0 - 黑白, 1 - 彩色 unsigned int dpi : 2; // DPI (映射表) unsigned int ultrasonic_enable : 1; // 是否进行超声波检测(双/多张进纸检测) unsigned int staple_enbale : 1; // 是否进行钉书钉检测 unsigned int screw_detect_enable : 1; // 是否歪斜检测 unsigned int screw_detect_level : 3; // 歪斜检测水平 bit14 unsigned int iscorrect_mod : 1; // 是否自动校正 unsigned int is_autopaper : 1; // 是否自动进纸 // unsigned int reserved1 : 4; // 保留 unsigned int is_textcorrect : 1; // 1 - 照片模式;0 - 文本模式。默认值为 0 unsigned int is_fixedpaper : 1; // is_fixedpaper 为false en_autosize为true自适应幅面开启 unsigned int en_anlogic_key : 1; // unsigned int en_autosize : 1; // unsigned int pc_correct : 1; // 是否在PC端校正 1:不校正 cis原图,0:校正 //unsigned int enable_sizecheck : 1; // 是否进行尺寸检测 2023-10-11 屏蔽 此bit位变更为double_out_en unsigned int double_out_en : 1; //true 双张纸搓出出纸口, false 卡在出纸口 unsigned int enabledsp_cache : 1; // 是否在片上缓存 unsigned int sizeerror_errorratio : 9; // 幅面检测 }params_3399; }HGSCANCONF_3399; typedef union hg_scanner_config_dsp { unsigned int value; struct { unsigned int paper : 5; unsigned int color : 1; unsigned int dpi : 2; unsigned int double_feed_enbale : 1; unsigned int stable_enbale : 1; unsigned int screw_detect_enable : 1; unsigned int screw_detect_level : 3; unsigned int isCorrect : 1; //设置0 为原图,1为校正后的图 unsigned int unused_one : 5; unsigned int pc_correct : 1; unsigned int enable_sizecheck : 1; unsigned int unused_two : 10; }params_dsp; }HGSCANCONF_DSP; typedef union hg_scanner_config_3288 { unsigned int value; //struct //{ // unsigned int pageSize : 5; // unsigned int isColor : 1; // unsigned int dpi : 2; // unsigned int doubleFeeded : 1; // unsigned int enableUV : 1; // unsigned int enableLed : 1; // unsigned int sizedetece : 1; // unsigned int reversed1 : 5; // unsigned int isCorrect : 1; // unsigned int dstHeight : 8; // unsigned int reversed2 : 6; //}params; struct // changed on 2022-07-25 { unsigned int pageSize : 5; unsigned int isColor : 1; unsigned int dpi : 2; unsigned int doubleFeeded : 1; unsigned int enableStable : 1; unsigned int enableLed : 1; unsigned int enableSizeDetect : 1; unsigned int lutmode : 1; // 设置文本和照片模式, 0 - 文本;1 - 照片。默认值为“0” unsigned int moire : 1; unsigned int reversed1 : 3; unsigned int isCorrect : 1; //设置0 为原图,1为校正后的图 unsigned int dstHeight : 8; unsigned int reversed2 : 6; }params_3288; }HGSCANCONF_3288; } //硬件协议定义 -OVER namespace setting3288dsp { union FLAT_INFO { struct { unsigned int dpi : 5; unsigned int colormode : 1; unsigned int is_whiteimage : 1; unsigned int status : 8; unsigned int reversed : 1; unsigned int datalen : 16; }params; unsigned int value; }; struct FLAT_INFO_IMAGE { FLAT_INFO info; cv::Mat flat_lut; float vratio; float hratio; }; struct HG_JpegCompressInfo { unsigned int data_type; unsigned int first_frame; unsigned int last_frame; unsigned int index_frame; unsigned int DataLength; unsigned int width; unsigned int height; unsigned char* pJpegData; }; //100-200 dsp 300-400 3288设备状态 typedef enum tagUsbSupported { SCAN_STOP = -2, //停止扫描 HAVE_ERROR = -1, //异常 NORMAL = 0, //正常状态 OPEN_COVER = 1, //开盖 NO_FEED = 2, //无纸 FEED_IN_ERROR = 4, //搓纸失败 PAPER_JAM = 8, //卡纸 DETECT_DOUBLE_FEED = 16,//检测到双张 DETECT_STAPLE = 32, //检测到订书钉 PAPER_SKEW = 64, //纸张倾斜 AUTO_SCAN_MODE = 65, //自动模式 MANAUL_SCAN_MODE = 66, //手动模式 COUNT_MODE = 67, //计数模式 HARDWARE_ERROR = 68, //硬件错误 FPGA_ERROR = 68, //FPGA崩溃 START_SCAN = 69, //开始 STOP_SCAN = 70, //停止 HAVE_IMAGE = 71, //有图 UPDATE_SCAN_PARAMETER = 72,// 更新扫描参数 PC_SCAN_BUSY_or_ERROR = 73,// PC繁忙或出错 DOG_EAR = 74, //摺角 SIZE_ERROR = 75, //幅面检测错误 AQUIRE_IMAGE_TIMEOUT = 76, //取图超时 LOSE_IMAGE = 77, //获取图片与扫描张数不匹配 USB_BULK_ERROR = 78, //usb读取数据错误 V4L2_AQULRE_ERROR = 79, //v4l2取图失败 V4L2_IMAGE_EMPTY = 80, //扫描仪内部图片丢失 SLEEPING = 81, //处于休眠中 HAVE_DOGEAR = 82, //检测到有折角 HAVE_HOLE = 84 , //检测到纸张有孔洞, 注意不是穿孔,类似于中间破损一块 AUTO_FLATTING = 198, //自动校正中 USB_DISCONNECTED = 200, //USB 未连接 USER_STOP = 201, //用户点击停止 AUTO_FLAT_FINISHED = 202, //自动校正完成 USB_CONNECTED, //USB已连接 HAVE_PAPER, DEVICE_OFF_LINE, //USB链接断开 } UsbSupported, * PUsbSupported; // //设备状态 - OVER enum tagUsbKeyWords { //无命令 NO_COMMAND = 0, //获取dsp 状态 GET_DSP_STATUS = 1, //取图 GET_IMAGE = 2, //销毁DSP中驻存的图 POP_IMAGE = 3, //开始扫描命令 START_COMMAND = 4, //停止扫描命令 STOP = 5, //获取扫描仪扫描模式 GET_SCAN_MODE = 6, //获取固件版本号 GET_FW_VERSION = 7, //返回PC端的状态 SEND_STATUS_PC = 8, //下发扫描配置参数 CONFIGURED_DATA = 9, //下发固件信息 SEND_FW = 10, //获取扫描参数 GET_CONFIG_DATA = 11, //获取扫描总张数 GET_SCANN_NUM = 12, //获取有无纸的状态 GET_PAPERFEEDER_STATUS = 13, //DSP初始化 INIT_HARDWARE_SYS = 14, //下发元器件配置参数(灰度,LED R曝光时间) SEND_COMPONENTS_GR = 15, //下发元器件配置参数(LED G/B曝光时间) SEND_COMPONENTS_GB = 16, //下发扫描模式 SEND_SCAN_MODE = 17, //开始进行平场矫正 START_FLAT = 18, //停止平场矫正 STOP_FLAT = 19, //下发200dpi彩色平场矫正参数 SEND_200_COLOR_FLAT_DATA = 20, //下发300dpi彩色平场矫正参数 SEND_300_COLOR_FLAT_DATA = 21, //获取200dpi彩色平场矫正参数 GET_200_COLOR_FLAT_DATA = 22, //获取300dpi彩色平场矫正参数 GET_300_COLOR_FLAT_DATA = 23, //下发200dpi灰度平场校正参数 SEND_200_GRAY_FLAT_DATA = 24, //下发300dpi灰度平场校正参数 SEND_300_GRAY_FLAT_DATA = 25, //获取200DPI灰度平场校正参数 GET_200_GRAY_FLAT_DATA = 26, //获取300DPI灰度平场校正参数 GET_300_GRAY_FLAT_DATA = 27, //下发序列号命令 SEND_SERIAL = 28, //获取序列号命令 GET_SERIAL = 29, //获取滚轴数 GET_ROLLER_NUM = 0x1e, //清零滚轴数 CLR_ROLLER_NUM = 0x1f, //清除扫描总张数 CLR_SCAN_NUM = 0x20, //准备更新固件 PRE_UPGRADE = 0X21, //开始更新固件 START_UPGRADE = 0x22, //彩色的AD参数 RGB_ADI_PARA = 0x23, //灰度的AD参数 ADI_PARA = 0x24, //获取CIS参数(曝光时间,ad参数) GET_CIS_PARA = 0x25, //扫描张数 START_COMMAND_COUNT = 0x26, //下发休眠时间 SET_SLEEP_TIME = 0x27, //获取休眠时间 GET_SLEEP_TIME = 0x28, //清除缓存 CLR_CACHE = 0x29, //下发速度模式 SET_SPEED_MODE = 0x2a, //获取扫描速度模式 GET_SPEED_MODE = 0X2b, //设置固件版本一共8个字节 SET_FW_VERSION = 0X2c, //获取DSP版本 GET_DSP_VERSION = 0X2d, //采集板FPGA固件版本 GET_SCANFPGA_VERSION = 0x2e, //电机板FPGA固件版本 GET_MOTORFPGA_VERSION = 0X2f, //设置制造商信息 SET_USB_INFOR_MANUFACTURE = 0X30, //获取制造商信息 GET_USB_INFOR_MANUFACTURE = 0X31, //设置产品型号信息 SET_USB_INFOR_MODEL_NAME = 0X32, //获取产品型号信息 GET_USB_INFOR_MODEL_NAME = 0X33, //设置USB PID / VID信息 SET_USB_INFOR_VIDPID = 0X34, GET_USB_INFOR_VIDPID = 0X35, //设置卡纸急停检测灵敏度 SET_JAM_DETECT_SENSITIVE = 0X36, //获取卡纸急停检测灵敏度 GET_JAM_DETECT_SENSITIVE = 0X37, //设置横向畸变系数 SET_JUST_COF_H = 0x38, //读取横向畸变系数 GET_JUST_COF_H = 0x39, //G400 清除硬件异常 CLEAR_HWERROR = 0x40, //设置纵向畸变系数 SET_JUST_COF_V = 0x41, //读取纵向畸变系数 GET_JUST_COF_V = 0x42, //设置彩色校正参数 SEND_COLOR_FLAT = 0x43, //设置彩色平场校正参数 SEND_COLORCORRECT_FLAT = 0x44, //设置灰度校正参数 SEND_GRAY_FLAT = 0x45, //设置灰度平场校正参数 SEND_GRAYCORRECT_FLAT = 0x46, //设置平场校正参数 GET_FLAT_DATA = 0x47, //更新完成 UPDATE_FINISHED = 0x48, //重启 1进入loader,0普通重启 REBOOT = 0x49, //获取日志 GET_LOG_FILES_INFO = 0x50, //发送log文件完成 GET_UPDATE_RESULT = 0x51, //清空日志 CLEAR_LOG_FILES = 0x52, //获取搓纸失败 GET_CUO_ERROR, //获取双张失败次数 GET_DOU_ERROR, //获取卡纸次数 GET_JAM_ERROR, //获取设备是否睡眠状态 ACTIVE_SCANNER = 0x100, //图像处理参数下发 GETSYSINFO_LEN = 0x200, GETSYSINFO = 0x201, GETMOTORPARAM = 0x202, GETMOTORPARMLEN = 0x203, SETMOTORPARAM = 0x204, SETMOTORPARAMLEN = 0x205, DEVICES_7010 = 0x7010 }; typedef enum tagUsbKeyWords UsbKeyWords, * PUsbKeyWords; //G300 G400 纸张类型协议 注:只支持3288 300 400 // enum G400_PaperSize { G400_A3 = 0, G400_A4, G400_A4R, G400_A5, G400_A5R, G400_A6, G400_A6R, G400_B4, G400_B5, G400_B5R, G400_B6, G400_B6R, G400_DOUBLELETTER, G400_LEGAL, G400_LETTER, G400_LETTERR, G400_LONGLETTER, G400_MAXSIZE, G400_AUTO }; //G300 G400 纸张类型协议 - OVER } namespace setting3288dsp_600dpi { enum G400_PaperSize { G400_A3 = 0, G400_A4, G400_A4R, G400_A5, G400_A5R, G400_A6, G400_A6R, G400_B4, G400_B5, G400_B5R, G400_B6, G400_B6R, G400_DOUBLELETTER, G400_LEGAL, G400_LETTER, G400_LETTERR, G400_LONGLETTER, G400_MAXSIZE, G400_AUTO, G400_MAXAUTO }; } namespace setting3399 { enum Scanner_Reg_Defs { SR_CMD, SR_STATUS, SR_SCAN_COUNT, SR_OS, //val == 1计数模式 SR_SENSORS, SR_MOTOR, SR_IM_TYPE, SR_IM_COUNT, SR_IM_TX, SR_IM_FRONT_SIZE, SR_IM_CLEAR, SR_IM_TXING,//图像数据传输过程中 SR_IM_POP, SR_IM_ABORT,//停止传输图像 SR_COUNT, SR_CONFIG_SCAN_PARAM, SR_GET_FWVERSION, SR_SET_FWERSION, SR_GET_SERIALNUM, SR_SET_SERIALNUM, SR_CONFIF_IMGPROCPARAM, SC_AUTOCORRECT, SC_GET_CORRECT_PARAM, SC_SET_CORRECT_PARAM, SR_GET_H_RATIO, SR_SET_H_RATIO, SR_GET_V_RATIO, SR_SET_V_RATIO, SR_GET_SERIAL_LEN, SR_GET_GRAY_SP, SR_GET_COLOR_SP, SR_SET_GRAY_SP, SR_SET_COLOR_SP, SR_SET_SLEEPTIME, SR_GET_SLEEPTIME, SR_GET_SLEEP_STAUTUS, //返回1不在睡眠状态 0反之 SR_GET_IMAGEPROCESSDONE,//指设备所有图像处理完成没有 SR_GET_KEEP_LAST_PAPER, SR_GET_PAPERON, SR_SET_SPEEDMODE, SR_GET_SPEEDMODE, SR_GET_JSON_SIZE, SR_GET_JSON, SR_SET_JSON_PATH, SR_SET_JSON, SR_GET_FILE_POS, SR_SET_FILE_POS, SR_NOTIFY_SLEEP, SR_GET_FEEDMODE, SR_SET_FEEDMODE, SR_GET_AUTOMATICCONTROLFEEDMODE_ENABLE, SR_SET_AUTOMATICCONTROLFEEDMODE_ENABLE, SR_GET_AUTOMATICCONTROLFEEDMODE_THRESHOLD, SR_SET_AUTOMATICCONTROLFEEDMODE_THRESHOLD, SR_GET_TRAYPOSITION, SR_SET_TRAYPOSITION, SR_GET_LOCK_STATES, SR_SET_LOCK_STATES, SR_GET_TOKEN, SR_SET_TOKEN, SR_GET_TOKEN_LENGHT, SR_DECODE_TOKEN, SR_CLEAN_PAPER_ROAD, //清理纸道 SR_GET_CUO_ERROR = 0x50, SR_GET_DOU_ERROR, SR_GET_JAM_ERROR, SR_GET_SCANN_NUM, //历史张数 SR_CLR_ROLLER_NUM, SR_GET_ROLLER_NUM, //获取滚轴张数 SR_CLR_SCANN_NUM, SR_GET_H_200_RATIO, //非敦南cis需返回false SR_SET_H_200_RATIO, SR_GET_V_200_RATIO, SR_SET_V_200_RATIO, SR_GET_H_300_RATIO, SR_SET_H_300_RATIO, SR_GET_V_300_RATIO, SR_SET_V_300_RATIO, SR_GET_H_600_RATIO, SR_SET_H_600_RATIO, SR_GET_V_600_RATIO, SR_SET_V_600_RATIO, SR_UPDATA_START = 0x100, SR_UPDATA_STAUTUS = 0x101, SR_UPDATA_MD5_RELUST = 0x102, SR_UPDATA_RECOVERY = 0x103, SR_UPDATA_REBOOT = 0x104, SR_POWEROFF = 0x105, SR_REBOOT = 0x106, SR_FLAT_CLR_MAX_BRIGHT, SR_FLAT_GRAY_MAX_BRIGHT, SR_KERNEL_VERSION_INFO_LENGTH, SR_GET_KERNEL_VERSION, SR_GET_MBSTATUS, SR_GET_IPADDR_LENGHT = 0x200, SR_GET_MACADDR, SR_GET_IPADDR, SR_GET_MBVERSION_LENGHT, SR_GET_MBVERSION, SR_GET_USBVIDPID, SR_SET_USBVIDPID, SR_SET_STARTBACKUP }; enum Scanner_Cmd_Defs { SC_START, SC_STOP, SC_CLEAR, SC_COUNT }; enum HGType { MtBoard = 1, FPGA, V4L2, IMG, AutoCorrect, STOPSCAN, }; enum Image_Status { Image_Status_OK = 0, // normal Image_Status_Double = 1 << 0, // double-feeded paper Image_Status_Jammed = 1 << 1, // jammed paper Image_Status_Staple = 1 << 2, // staples on the paper Image_Status_Size_Error = 1 << 3, // size check failed Image_Status_Dogear = 1 << 4, // paper has dogear - common Image_Status_Partial = 1 << 5, // dogear - scanned partial Image_Status_Blank = 1 << 6 // blank image }; struct HGEIntInfo { HGType From; unsigned int Code; unsigned int Img_Index; Image_Status Img_Status; }; enum PaperSize_ //239 302 402 { G400_A3 = 0, G400_A4, G400_A4R, G400_A5, G400_A5R, G400_A6, G400_A6R, G400_B4, G400_B5, G400_B5R, G400_B6, G400_B6R, G400_DOUBLELETTER, G400_LEGAL, G400_LETTER, G400_LETTERR, G400_LONGLETTER = 16, G400_MAXSIZE = 16, G400_AUTO = 16, G400_MAXAUTO = 16 }; //#define SAVE_TO_FILE } #pragma pack(pop) static struct Paper_Map { int paper; TwSS type; int dev_value; }paper_map_3399[] = { {PAPER_A3, TwSS::A3, setting3399::G400_A3}, {PAPER_8K, TwSS::K8, 0}, {PAPER_A4, TwSS::A4, setting3399::G400_A4}, {PAPER_A4_LATERAL, TwSS::A4, setting3399::G400_A4R}, {PAPER_16K, TwSS::K16, 0}, {PAPER_16K_LATERAL, TwSS::K16, 0}, {PAPER_A5, TwSS::A5, setting3399::G400_A5}, {PAPER_A5_LATERAL, TwSS::A5, setting3399::G400_A5R}, {PAPER_A6, TwSS::A6, setting3399::G400_A6}, {PAPER_A6_LATERAL, TwSS::A6, setting3399::G400_A6R}, {PAPER_B4, TwSS::B4, setting3399::G400_B4}, {PAPER_B5, TwSS::B5, setting3399::G400_B5}, {PAPER_B5_LATERAL, TwSS::B5, setting3399::G400_B5R}, {PAPER_B6, TwSS::B6, setting3399::G400_B6}, {PAPER_B6_LATERAL, TwSS::B6, setting3399::G400_B6R}, {PAPER_LETTER, TwSS::USLetter, setting3399::G400_LETTER}, {PAPER_LETTER_LATERAL, TwSS::USLetter, setting3399::G400_LETTERR}, {PAPER_DOUBLE_LETTER, TwSS::USLedger, setting3399::G400_DOUBLELETTER}, {PAPER_LEGAL, TwSS::USLegal, setting3399::G400_LEGAL}, {PAPER_AUTO_MATCH, TwSS::None, 0}, //重影版本发布之后 需要变更为G400_MAXAUTO ,3C 以前发12 {PAPER_MAX_SIZE_CLIP, TwSS::USStatement, setting3399::G400_MAXAUTO}, {PAPER_MAX_SIZE, TwSS::MaxSize, setting3399::G400_MAXSIZE}, {PAPER_TRIGEMINY, TwSS::Trigeminy, setting3399::G400_LONGLETTER} }, paper_map_dsp[] = { {PAPER_A3, TwSS::A3, 0}, {PAPER_8K, TwSS::K8, 0}, {PAPER_A4, TwSS::A4, 1}, {PAPER_A4_LATERAL, TwSS::A4, 2}, {PAPER_16K, TwSS::K16, 0}, {PAPER_16K_LATERAL, TwSS::K16, 0}, {PAPER_A5, TwSS::A5, 2}, {PAPER_A5_LATERAL, TwSS::A5, 2}, {PAPER_A6, TwSS::A6, 2}, {PAPER_A6_LATERAL, TwSS::A6, 2}, {PAPER_B4, TwSS::B4, 0}, {PAPER_B5, TwSS::B5, 0}, {PAPER_B5_LATERAL, TwSS::B5, 1}, {PAPER_B6, TwSS::B6, 2}, {PAPER_B6_LATERAL, TwSS::B6, 2}, {PAPER_LETTER, TwSS::USLetter, 14}, {PAPER_LETTER_LATERAL, TwSS::USLetter, 1}, {PAPER_DOUBLE_LETTER, TwSS::USLedger, 2}, {PAPER_LEGAL, TwSS::USLegal, 0}, {PAPER_AUTO_MATCH, TwSS::None, 0}, {PAPER_MAX_SIZE_CLIP, TwSS::USStatement, 16}, {PAPER_MAX_SIZE, TwSS::MaxSize, 16}, {PAPER_TRIGEMINY, TwSS::Trigeminy, 16} }, paper_map_3288[] = { {PAPER_A3, TwSS::A3, setting3288dsp::G400_A3}, {PAPER_A4, TwSS::A4, setting3288dsp::G400_A4}, {PAPER_A4_LATERAL, TwSS::A4, setting3288dsp::G400_A4R}, {PAPER_A5, TwSS::A5, setting3288dsp::G400_A5}, {PAPER_A5_LATERAL, TwSS::A5, setting3288dsp::G400_A5R}, {PAPER_A6, TwSS::A6, setting3288dsp::G400_A6}, {PAPER_A6_LATERAL, TwSS::A6, setting3288dsp::G400_A6R}, {PAPER_B4, TwSS::B4, setting3288dsp::G400_B4}, {PAPER_B5, TwSS::B5, setting3288dsp::G400_B5}, {PAPER_B5_LATERAL, TwSS::B5, setting3288dsp::G400_B5R}, {PAPER_B6, TwSS::B6, setting3288dsp::G400_B6}, {PAPER_B6_LATERAL, TwSS::B6, setting3288dsp::G400_B6R}, {PAPER_LETTER, TwSS::USLetter, setting3288dsp::G400_LETTER}, {PAPER_LETTER_LATERAL, TwSS::USLetter, setting3288dsp::G400_LETTERR}, {PAPER_DOUBLE_LETTER, TwSS::USLedger, setting3288dsp::G400_DOUBLELETTER}, {PAPER_LEGAL, TwSS::USLegal, setting3288dsp::G400_LEGAL}, {PAPER_AUTO_MATCH, TwSS::None, setting3288dsp::G400_A3}, {PAPER_MAX_SIZE_CLIP, TwSS::USStatement, setting3288dsp::G400_MAXSIZE}, {PAPER_MAX_SIZE, TwSS::MaxSize, setting3288dsp::G400_MAXSIZE}, {PAPER_TRIGEMINY, TwSS::MaxSize, setting3288dsp::G400_LONGLETTER}, }, paper_map_3288_600dpi[] = { {PAPER_A3, TwSS::A3, setting3288dsp_600dpi::G400_A3}, {PAPER_A4, TwSS::A4, setting3288dsp_600dpi::G400_A4}, {PAPER_A4_LATERAL, TwSS::A4, setting3288dsp_600dpi::G400_A4R}, {PAPER_A5, TwSS::A5, setting3288dsp_600dpi::G400_A5}, {PAPER_A5_LATERAL, TwSS::A5, setting3288dsp_600dpi::G400_A5R}, {PAPER_A6, TwSS::A6, setting3288dsp_600dpi::G400_A6}, {PAPER_A6_LATERAL, TwSS::A6, setting3288dsp_600dpi::G400_A6R}, {PAPER_B4, TwSS::B4, setting3288dsp_600dpi::G400_B4}, {PAPER_B5, TwSS::B5, setting3288dsp_600dpi::G400_B5}, {PAPER_B5_LATERAL, TwSS::B5, setting3288dsp_600dpi::G400_B5R}, {PAPER_B6, TwSS::B6, setting3288dsp_600dpi::G400_B6}, {PAPER_B6_LATERAL, TwSS::B6, setting3288dsp_600dpi::G400_B6R}, {PAPER_LETTER, TwSS::USLetter, setting3288dsp_600dpi::G400_LETTER}, {PAPER_LETTER_LATERAL, TwSS::USLetter, setting3288dsp_600dpi::G400_LETTERR}, {PAPER_DOUBLE_LETTER, TwSS::USLedger, setting3288dsp_600dpi::G400_DOUBLELETTER}, {PAPER_LEGAL, TwSS::USLegal, setting3288dsp_600dpi::G400_LEGAL}, {PAPER_AUTO_MATCH, TwSS::None, setting3288dsp_600dpi::G400_AUTO}, {PAPER_MAX_SIZE_CLIP, TwSS::USStatement, setting3288dsp_600dpi::G400_MAXAUTO}, {PAPER_MAX_SIZE, TwSS::MaxSize, setting3288dsp_600dpi::G400_MAXSIZE}, {PAPER_TRIGEMINY, TwSS::MaxSize, setting3288dsp_600dpi::G400_LONGLETTER}, }; #ifndef WIN32 #ifdef OEM_HANWANG #define LIBNAME "libhwdriver.so" #define HGVERSION_LIBNANE "libHwVersion.so" #define IMGPRC_LIBNANE "libHwImgProc.so" #define HGBASE_LIBNAME "libHwBase.so" #ifdef UOS #define HELP_PATH "../../entries/help/HanvonScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN #elif KYLIN #define HELP_PATH "../doc/HanvonScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN #endif #elif defined(OEM_LISICHENG) #define LIBNAME "liblscdriver.so" #define HGVERSION_LIBNANE "libLscVersion.so" #define IMGPRC_LIBNANE "libLscImgProc.so" #define HGBASE_LIBNAME "libLscBase.so" #ifdef UOS #define HELP_PATH "../../entries/help/LanxumScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "" #elif KYLIN #define HELP_PATH "../doc/LanxumScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "" #endif #elif defined(OEM_CANGTIAN) #define LIBNAME "libctsdriver.so" #define HGVERSION_LIBNANE "libCtsVersion.so" #define IMGPRC_LIBNANE "libCtsImgProc.so" #define HGBASE_LIBNAME "libCtsBase.so" #ifdef UOS #define HELP_PATH "../../entries/help/CumtennScan_scanSettings_Help_manual.pdf"; #define HELP_PATH_EN "" #elif KYLIN #define HELP_PATH "../doc/CumtennScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "" #endif #elif defined(OEM_ZHONGJING) #define LIBNAME "libzjdriver.so" #define HGVERSION_LIBNANE "libZjVersion.so" #define IMGPRC_LIBNANE "libZjImgProc.so" #define HGBASE_LIBNAME "libZjBase.so" #ifdef UOS #define HELP_PATH "../../entries/help/MicrotekScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "../../entries/help/MicrotekScan_scanSettings_Help_manual_EN.pdf" #elif KYLIN #define HELP_PATH "../doc/MicrotekScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "../doc/MicrotekScan_scanSettings_Help_manual_EN.pdf" #endif #elif defined(OEM_ZIGUANG) #define LIBNAME "libzgdriver.so" #define HGVERSION_LIBNANE "libZGVersion.so" #define IMGPRC_LIBNANE "libZgImgProc.so" #define HGBASE_LIBNAME "libZgBase.so" #ifdef UOS #define HELP_PATH "../../entries/help/UniScan_scanSettings_Help_manual.pdf"; #define HELP_PATH_EN "" #elif KYLIN #define HELP_PATH "../doc/UniScan_scanSettings_Help_manual.pdf"; #define HELP_PATH_EN "" #endif #elif defined(OEM_NEUTRAL) #define LIBNAME "libneudriver.so" #define HGVERSION_LIBNANE "libNeuVersion.so" #define IMGPRC_LIBNANE "libNeuImgProc.so" #define HGBASE_LIBNAME "libNeuBase.so" #ifdef UOS #define HELP_PATH "../../entries/help/NeuScan_scanSettings_Help_manual.pdf"; #define HELP_PATH_EN "" #elif KYLIN #define HELP_PATH "../doc/NeuScan_scanSettings_Help_manual.pdf"; #define HELP_PATH_EN "" #endif #elif defined(OEM_DELI) #define LIBNAME "libdldriver.so" #define HGVERSION_LIBNANE "libDlVersion.so" #define IMGPRC_LIBNANE "libDlImgProc.so" #define HGBASE_LIBNAME "libDlBase.so" #ifdef UOS #define HELP_PATH "../../entries/help/DeliScan_scanSettings_Help_manual.pdf"; #define HELP_PATH_EN "" #elif KYLIN #define HELP_PATH "../doc/DeliScan_scanSettings_Help_manual.pdf"; #define HELP_PATH_EN "" #endif #else #define LIBNAME "libhgdriver.so" #define HGVERSION_LIBNANE "libHGVersion.so" #define IMGPRC_LIBNANE "libHGImgProc.so" #define HGBASE_LIBNAME "libHGBase.so" #ifdef UOS #define HELP_PATH "../../entries/help/HuaGoScan_scanSettings_Help_manual.pdf"; #define HELP_PATH_EN "" #elif KYLIN #define HELP_PATH "../doc/HuaGoScan_scanSettings_Help_manual.pdf"; #define HELP_PATH_EN "" #endif #endif #else #ifdef OEM_HANWANG #define HGVERSION_LIBNANE "HWVersion.dll" #define IMGPRC_LIBNANE "HWImgProc.dll" #define HGBASE_LIBNAME "HWBase.dll" #define HELP_PATH "HanvonScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "" #elif defined(OEM_LISICHENG) #define HGVERSION_LIBNANE "LSCVersion.dll" #define IMGPRC_LIBNANE "LSCImgProc.dll" #define HGBASE_LIBNAME "LSCBase.dll" #define HELP_PATH "LanxumScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "" #elif defined(OEM_CANGTIAN) #define HGVERSION_LIBNANE "CTSVersion.dll" #define IMGPRC_LIBNANE "CtsImgProc.dll" #define HGBASE_LIBNAME "CtsBase.dll" #define HELP_PATH "CumtennScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "" #elif defined(OEM_ZHONGJING) #define HGVERSION_LIBNANE "ZJVersion.dll" #define IMGPRC_LIBNANE "ZJImgProc.dll" #define HGBASE_LIBNAME "ZJBase.dll" #define HELP_PATH "MicrotekScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "MicrotekScan_scanSettings_Help_manual_EN.pdf" #elif defined(OEM_ZIGUANG) #define HGVERSION_LIBNANE "ZGVersion.dll" #define IMGPRC_LIBNANE "ZGImgProc.dll" #define HGBASE_LIBNAME "ZGBase.dll" #define HELP_PATH "UniScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "" #elif defined(OEM_NEUTRAL) #define HGVERSION_LIBNANE "NEUVersion.dll" #define IMGPRC_LIBNANE "NEUImgProc.dll" #define HGBASE_LIBNAME "NEUBase.dll" #define HELP_PATH "NeuScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "" #elif defined(OEM_DELI) #define HGVERSION_LIBNANE "DLVersion.dll" #define IMGPRC_LIBNANE "DLImgProc.dll" #define HGBASE_LIBNAME "DLBase.dll" #define HELP_PATH "DeliScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "" #else #define OEM_HUAGAO #define HGVERSION_LIBNANE "HGVersion.dll" #define IMGPRC_LIBNANE "HGImgProc.dll" #define HGBASE_LIBNAME "HGBase.dll" #define HELP_PATH "HuaGoScan_scanSettings_Help_manual.pdf" #define HELP_PATH_EN "HuaGoScan_scanSettings_Help_manual_EN.pdf" #endif #define LIBNAME "scanner.dll" #endif