From 9c25fa52f357947deb77cee77317ea2fe9822ee5 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Fri, 8 Mar 2024 17:32:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E8=AE=BE=E5=A4=87=E7=AB=AF?= =?UTF-8?q?=E4=B8=8EPC=E7=AB=AF=E5=85=AC=E7=94=A8=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdk/base/plat_types.h | 1 + sdk/base/utils.cpp | 23 +++- sdk/base/utils.h | 2 +- sdk/huagao/brand.h | 203 +++++++++++++++++++++++++++++++++ sdk/huagao/brand_ct.h | 101 ++++++++++++++++ sdk/huagao/brand_hw.h | 125 ++++++++++++++++++++ sdk/huagao/brand_lsc.h | 102 +++++++++++++++++ sdk/huagao/brand_neu.h | 101 ++++++++++++++++ sdk/huagao/brand_zg.h | 89 +++++++++++++++ sdk/huagao/brand_zj.h | 89 +++++++++++++++ sdk/huagao/hgscanner_error.cpp | 91 +++++++++++++++ sdk/huagao/hgscanner_error.h | 4 + sdk/sane/sane_ex.h | 4 +- sdk/sane/sane_name.h | 101 ++++++++-------- 14 files changed, 982 insertions(+), 54 deletions(-) create mode 100644 sdk/huagao/brand.h create mode 100644 sdk/huagao/brand_ct.h create mode 100644 sdk/huagao/brand_hw.h create mode 100644 sdk/huagao/brand_lsc.h create mode 100644 sdk/huagao/brand_neu.h create mode 100644 sdk/huagao/brand_zg.h create mode 100644 sdk/huagao/brand_zj.h create mode 100644 sdk/huagao/hgscanner_error.cpp diff --git a/sdk/base/plat_types.h b/sdk/base/plat_types.h index 95a2260..7025a5d 100644 --- a/sdk/base/plat_types.h +++ b/sdk/base/plat_types.h @@ -168,6 +168,7 @@ extern void Sleep(DWORD milliseconds); extern int GetModuleFileNameA(HMODULE module, char* buf, size_t len); // NOTE: parameter 'module' is consinder as a part of the module file name extern uint64_t GetCurrentProcessId(void); extern uint64_t GetCurrentThreadId(void); +extern uint64_t GetCurrentThread(void); #else #include diff --git a/sdk/base/utils.cpp b/sdk/base/utils.cpp index bc58b8b..26ff442 100644 --- a/sdk/base/utils.cpp +++ b/sdk/base/utils.cpp @@ -200,6 +200,10 @@ uint64_t GetCurrentThreadId(void) { return (uint64_t)pthread_self(); } +uint64_t GetCurrentThread(void) +{ + return GetCurrentThreadId(); +} uint64_t GetCurrentProcessId(void) { return (uint64_t)getpid(); @@ -1531,20 +1535,27 @@ namespace utils } int set_cpu_affinity(int *cpuind, int cnt, pthread_t thread) { - int ret = 0; + int ret = 0; + long mask = 0; + + for (int i = 0; i < cnt; ++i) + mask |= 1 << (cpuind[i] & 0x3f); if(thread == (pthread_t)-1) - thread = GetCurrentThreadId(); + thread = GetCurrentThread(); + +#if OS_WIN + ret = SetThreadAffinityMask(thread, mask); + if (ret == 0) + ret = GetLastError(); +#else cpu_set_t cpu; - int mask = 0; - - for(int i = 0; i < cnt; ++i) - mask |= 1 << (cpuind[i] & 0x1f); CPU_ZERO(&cpu); CPU_SET(mask, &cpu); ret = pthread_setaffinity_np(thread, sizeof(cpu), &cpu); +#endif return ret; } diff --git a/sdk/base/utils.h b/sdk/base/utils.h index 6d90f67..0664008 100644 --- a/sdk/base/utils.h +++ b/sdk/base/utils.h @@ -114,7 +114,7 @@ namespace utils void print_memory_usage(const char* tips, bool to_log_file); int get_disk_space(const char* path, unsigned long long* total, unsigned long long* avail, unsigned long long* block); unsigned int get_page_size(unsigned int* map_unit = nullptr); - int set_cpu_affinity(int *cpuind, int cnt = 1, pthread_t thread = -1); + int set_cpu_affinity(int *cpuind, int cnt = 1, pthread_t thread = (pthread_t)-1); // return logging file path if 'type' was LOG_TYPE_FILE std::string init_log(log_type type, log_level level = LOG_LEVEL_ALL, const char* fn_appendix = nullptr/*appendix to default log-file-name*/); diff --git a/sdk/huagao/brand.h b/sdk/huagao/brand.h new file mode 100644 index 0000000..1ec1517 --- /dev/null +++ b/sdk/huagao/brand.h @@ -0,0 +1,203 @@ +#pragma once + +// Definitions for all versions ... +// +// + +// #define OEM_NONE +#define VERSION_MAIN 4 +#define VERSION_SUB 50 +#define VERSION_BUILD1 10100 +#define VERSION_PATCH 23156 + + + +#define PASTE_DEFINE(a, b) a##b +#define TO_STR(a) #a +#define TO_VER_STR(vs) TO_STR(v##vs) +#define VERSION_STR(a, b, c, d) TO_VER_STR(a.b.c.d) + +#ifndef PRODUCT_PID +#pragma message("lost PRODUCT_PID definition") +#define PRODUCT_PID 0x200 +#endif + +#define BRAND_DISPLAY_ALL_EXPAND // 定义该标志,使得扩展信息始终显示 +#define BRAND_INFO_MAX_LENGTH 40 + +// #define BRAND_TITLE_FIRM_VERSION "设备型号" +#define BRAND_TITLE_DEVICE_MODEL "\350\256\276\345\244\207\345\236\213\345\217\267" +// #define BRAND_TITLE_FIRM_VERSION "固件版本" +#define BRAND_TITLE_FIRM_VERSION "\345\233\272\344\273\266\347\211\210\346\234\254" +// #define BRAND_TITLE_SERIAL_NUM "序列号" +#define BRAND_TITLE_SERIAL_NUM "\345\272\217\345\210\227\345\217\267" +// #define BRAND_TITLE_ROLLER_COUNT "滚轴张数" +#define BRAND_TITLE_ROLLER_COUNT "\346\273\232\350\275\264\345\274\240\346\225\260" +// #define BRAND_TITLE_IP "设备IP" +#define BRAND_TITLE_IP "\350\256\276\345\244\207IP" +// #define BRAND_TITLE_HISTORY_COUNT "历史张数" +#define BRAND_TITLE_HISTORY_COUNT "\345\216\206\345\217\262\345\274\240\346\225\260" +// #define BRAND_NO_DEVICE "未连接设备" +#define BRAND_NO_DEVICE "\346\234\252\350\277\236\346\216\245\350\256\276\345\244\207" +// #define BRAND_COMMUNICATION_FAIL "与设备通信失败" +#define BRAND_COMMUNICATION_FAIL "\344\270\216\350\256\276\345\244\207\351\200\232\344\277\241\345\244\261\350\264\245" +// #define BRAND_DEVICE_NOT_SUPPORT "设备不支持" +#define BRAND_DEVICE_NOT_SUPPORT "\350\256\276\345\244\207\344\270\215\346\224\257\346\214\201" + +//#define BRAND_SOFTWARE_VERSION "软件版本" +#define BRAND_SOFTWARE_VERSION "\350\275\257\344\273\266\347\211\210\346\234\254" +//#define BRAND_SOFTWARE_VERSION_TEST "测试版" +#define BRAND_SOFTWARE_VERSION_TEST "\346\265\213\350\257\225\347\211\210" + +//#define BRAND_TITLE_DEVICE_INITIAL_POWER_ON_TIME "设备初始开机时间" +#define BRAND_TITLE_DEVICE_INITIAL_POWER_ON_TIME "\350\256\276\345\244\207\345\210\235\345\247\213\345\274\200\346\234\272\346\227\266\351\227\264" + + +#ifdef OEM_HANWANG + +#include "brand_hw.h" + +#elif defined(OEM_LISICHENG) + +#include "brand_lsc.h" + +#elif defined(OEM_CANGTIAN) + +#include "brand_ct.h" + +#elif defined(OEM_ZHONGJING) + +#include "brand_zj.h" + +#elif defined(OEM_ZIGUANG) + +#include "brand_zg.h" + +#elif defined(OEM_NEUTRAL) + +#include "brand_neu.h" + +#else + + #define OEM_NAME "\345\256\201\346\263\242\345\215\216\351\253\230\344\277\241\346\201\257\347\247\221\346\212\200\346\234\211\351\231\220\345\205\254\345\217\270" + #define OEM_SHORT_NAME "\345\215\216\351\253\230" + #define OEM_SHORT_NAME_E "hg" + #define PRODUCT_VID 0x3072 + #define PRODUCT_VENDOR "HuaGo" + + #define ADMIN_NAME "user" + #define ADMIN_PWD "huagoscan" + + // #define COMPANY_NAME "宁波华高信息科技有限公司" + #define COMPANY_NAME "\345\256\201\346\263\242\345\215\216\351\253\230\344\277\241\346\201\257\347\247\221\346\212\200\346\234\211\351\231\220\345\205\254\345\217\270" + // #define BRAND_APP_NAME "华高扫描应用程序" + #define BRAND_APP_NAME "\345\215\216\351\253\230\346\211\253\346\217\217\345\272\224\347\224\250\347\250\213\345\272\217" + // #define BRAND_TITLE_VERSION "版本" + #define BRAND_TITLE_VERSION "\347\211\210\346\234\254" + // #define BRAND_TITLE_COPYRIGHT "版权" + #define BRAND_TITLE_COPYRIGHT "\347\211\210\346\235\203" + #define BRAND_COPYRIGHT "2017 HuaGoScan\343\200\202\344\277\235\347\225\231\346\211\200\346\234\211\346\235\203\345\210\251" + // #define BRAND_TITE_MANUFACTOR "制造商/开发商" + #define BRAND_TITE_MANUFACTOR "\345\210\266\351\200\240\345\225\206/\345\274\200\345\217\221\345\225\206" + // #define BRAND_TITLE_URL "公司网址" + #define BRAND_TITLE_URL "\345\205\254\345\217\270\347\275\221\345\235\200" + #define BRAND_COMPANY_URL "www.huagaochina.com" + #define BRAND_COMPANY_URL_EN "www.huagaochina.com" + #define BRAND_URL_COMPANY_URL "http://www.huagaochina.com" + #define BRAND_URL_COMPANY_URL_EN "http://www.huagaochina.com" + // #define BRAND_TITLE_TEL "联系电话" + #define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235" + #define BRAND_COMPANY_TEL "+86 0574 27974866" + // #define BRAND_TITLE_ADDRESS "地址" + #define BRAND_TITLE_ADDRESS "\345\234\260\345\235\200" + // #define BRAND_COMPANY_ADDRESS "浙江省宁波市鄞州区学士路655号(信科大厦)C栋211" + #define BRAND_COMPANY_ADDRESS "\346\265\231\346\261\237\347\234\201\345\256\201\346\263\242\345\270\202\351\204\236\345\267\236\345\214\272\345\255\246\345\243\253\350\267\257655\345\217\267\357\274\210\344\277\241\347\247\221\345\244\247\345\216\246\357\274\211C\346\240\213211" + // #define BRAND_TITLE_GPS "导航地址" + #define BRAND_TITLE_GPS "\345\257\274\350\210\252\345\234\260\345\235\200" + // #define BRAND_COMPANY_GPS "百度地图访问" + #define BRAND_COMPANY_GPS "\347\231\276\345\272\246\345\234\260\345\233\276\350\256\277\351\227\256" + #define BRAND_URL_GPS "https://j.map.baidu.com/7e/1TO" + #define HELP_PATH "HuaGoScan_scanSettings_Help_manual.pdf" + #define HELP_PATH_EN "HuaGoScan_scanSettings_Help_manual_EN.pdf" + + + #ifndef WIN32 + + #define LIBNAME "libhgdriver.so" + #define HGVERSION_LIBNANE "libHGVersion.so" + #define IMGPRC_LIBNANE "libHGImgProc.so" + #define HGBASE_LIBNAME "libHGBase.so" + + #else + + #define HGVERSION_LIBNANE "HGVersion.dll" + #define IMGPRC_LIBNANE "HGImgProc.dll" + #define HGBASE_LIBNAME "HGBase.dll" + + #endif + + + // 编译DS时,每个系列只需要编译其中一个PID即可,最好是该系列有代表性的PID + #define IS_BELONG_FAMILY_G100(pid) ((pid) == 0x100 || (pid) == 0x139) + #define PRODUCT_NAME_HG_G100 "HUAGOSCAN G100" + #define PRODUCT_FAMILY_HG_G100 "G100" + #define IS_BELONG_FAMILY_G200(pid) ((pid) == 0x200 || (pid) == 0x239 || (pid) == 0x7823) + #define PRODUCT_NAME_HG_G200 "HUAGOSCAN G200" + #define PRODUCT_FAMILY_HG_G200 "G200" + #define IS_BELONG_FAMILY_G300(pid) ((pid) == 0x300 || (pid) == 0x339 || (pid) == 0x302) + #define PRODUCT_NAME_HG_G300 "HUAGOSCAN G300" + #define PRODUCT_FAMILY_HG_G300 "G300" + #define IS_BELONG_FAMILY_G400(pid) ((pid) == 0x400 || (pid) == 0x439 || (pid) == 0x402) + #define PRODUCT_NAME_HG_G400 "HUAGOSCAN G400" + #define PRODUCT_FAMILY_HG_G400 "G400" + + #if IS_BELONG_FAMILY_G100(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HG_G100 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HG_G100 + #elif IS_BELONG_FAMILY_G200(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HG_G200 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HG_G200 + #elif IS_BELONG_FAMILY_G300(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HG_G300 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HG_G300 + #elif IS_BELONG_FAMILY_G400(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HG_G400 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HG_G400 + #endif + + // product families ... {vid, pid, family, name} +#define SINGLE_PRODUCT(pid, family) \ + PRODUCT_VID, 0x##pid, TO_STR(G##family), TO_STR(HUAGOSCAN\040G##pid) + +#define ALL_FAMILIES \ + {SINGLE_PRODUCT(100, 100)} \ + , {SINGLE_PRODUCT(139, 100)} \ + , {SINGLE_PRODUCT(200, 200)} \ + , {SINGLE_PRODUCT(239, 200)} \ + , {SINGLE_PRODUCT(300, 300)} \ + , {SINGLE_PRODUCT(302, 300)} \ + , {SINGLE_PRODUCT(306, 300)} \ + , {SINGLE_PRODUCT(339, 300)} \ + , {SINGLE_PRODUCT(400, 400)} \ + , {SINGLE_PRODUCT(402, 400)} \ + , {SINGLE_PRODUCT(439, 400)} + +#endif + + + + +// add module-name definitions on 2023-10-20 +#ifdef _WIN32 + +#define MODULE_NAME_LANG "yuyanbao.dll" +#define MODULE_NAME_SANE "sanexy.dll" +#define MODULE_NAME_SCANNER "scannerqd.dll" + +#else + +#define MODULE_NAME_LANG "libyuyanbao.so" +#define MODULE_NAME_SANE TO_STR(PASTE_DEF(libsane-, PASTE_DEF(OEM_SHORT_NAME_E, sane.so.1))) +#define MODULE_NAME_SCANNER TO_STR(PASTE_DEF(lib, PASTE_DEF(OEM_SHORT_NAME_E, driver.so))) + +#endif diff --git a/sdk/huagao/brand_ct.h b/sdk/huagao/brand_ct.h new file mode 100644 index 0000000..0bf55e5 --- /dev/null +++ b/sdk/huagao/brand_ct.h @@ -0,0 +1,101 @@ +#pragma once + +// Definitions for Cumtenn OEM ... +// +// + + +#define OEM_NAME "\346\265\231\346\261\237\346\262\247\347\224\260\346\231\272\350\203\275\344\277\241\346\201\257\347\247\221\346\212\200" +#define OEM_SHORT_NAME "\346\262\247\347\224\260" +#define OEM_SHORT_NAME_E "cts" +#define PRODUCT_VID 0x3308 +#define PRODUCT_VENDOR "Cumtenn" + +#define ADMIN_NAME "user" +#define ADMIN_PWD "cumtenn" + +// #define COMPANY_NAME "沧田智能信息技术有限公司" +#define COMPANY_NAME "\346\262\247\347\224\260\346\231\272\350\203\275\344\277\241\346\201\257\346\212\200\346\234\257\346\234\211\351\231\220\345\205\254\345\217\270" +// #define BRAND_APP_NAME "沧田扫描应用程序" +#define BRAND_APP_NAME "\346\262\247\347\224\260\346\211\253\346\217\217\345\272\224\347\224\250\347\250\213\345\272\217" +// #define BRAND_TITLE_VERSION "版本" +#define BRAND_TITLE_VERSION "\347\211\210\346\234\254" +// #define BRAND_TITLE_COPYRIGHT "版权" +#define BRAND_TITLE_COPYRIGHT "\347\211\210\346\235\203" +#define BRAND_COPYRIGHT "2017 CUMTENN\343\200\202\344\277\235\347\225\231\346\211\200\346\234\211\346\235\203\345\210\251" +// #define BRAND_TITE_MANUFACTOR "制造商/开发商" +#define BRAND_TITE_MANUFACTOR "\345\210\266\351\200\240\345\225\206/\345\274\200\345\217\221\345\225\206" +// #define BRAND_TITLE_URL "公司网址" +#define BRAND_TITLE_URL "\345\205\254\345\217\270\347\275\221\345\235\200" +#define BRAND_COMPANY_URL "www.cumtenn.com" +#define BRAND_COMPANY_URL_EN "www.cumtenn.com" +#define BRAND_URL_COMPANY_URL "http://www.cumtenn.com" +#define BRAND_URL_COMPANY_URL_EN "http://www.cumtenn.com" +//#define BRAND_TITLE_TEL "联系电话" +#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235" +#define BRAND_COMPANY_TEL "400-008-1300" +//#define BRAND_TITLE_ADDRESS "地址" +#define BRAND_TITLE_ADDRESS "\345\234\260\345\235\200" +// #define BRAND_COMPANY_ADDRESS "浙江省嘉兴市嘉善县南星路819号" +#define BRAND_COMPANY_ADDRESS "\346\265\231\346\261\237\347\234\201\345\230\211\345\205\264\345\270\202\345\230\211\345\226\204\345\216\277\345\215\227\346\230\237\350\267\257819\345\217\267" +//#define BRAND_TITLE_GPS "导航地址" +#define BRAND_TITLE_GPS "\345\257\274\350\210\252\345\234\260\345\235\200" +//#define BRAND_COMPANY_GPS "百度地图访问" +#define BRAND_COMPANY_GPS "\347\231\276\345\272\246\345\234\260\345\233\276\350\256\277\351\227\256" +#define BRAND_URL_GPS "https://j.map.baidu.com/27/KGSu" + + +#ifndef WIN32 + + #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 + +#else + + #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 "" + +#endif + + +// 编译DS时,每个系列只需要编译其中一个PID即可,最好是该系列有代表性的PID +#define IS_BELONG_FAMILY_G138(pid) ((pid) == 0x138 || (pid) == 0x403) +#define PRODUCT_NAME_CT_138 "CUMTENNSCAN CT-138" +#define PRODUCT_FAMILY_CT_138 "CT-138" +#define IS_BELONG_FAMILY_G238(pid) ((pid) == 0x238) +#define PRODUCT_NAME_CT_238 "CUMTENNSCAN CT-238" +#define PRODUCT_FAMILY_CT_238 "CT-238" +#define IS_BELONG_FAMILY_G6005(pid) ((pid) == 0x6005 || (pid) == 0x303) +#define PRODUCT_NAME_CT_6005 "CUMTENNSCAN CT-6005" +#define PRODUCT_FAMILY_CT_6005 "CT-6005" +#define IS_BELONG_FAMILY_G6006(pid) ((pid) == 0x6006) +#define PRODUCT_NAME_CT_6006 "CUMTENNSCAN CT-6900" +#define PRODUCT_FAMILY_CT_6006 "CT-6900" + +#if IS_BELONG_FAMILY_G138(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_CT_138 + #define PRODUCT_FAMILY PRODUCT_FAMILY_CT_138 +#elif IS_BELONG_FAMILY_G238(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_CT_238 + #define PRODUCT_FAMILY PRODUCT_FAMILY_CT_238 +#elif IS_BELONG_FAMILY_G6005(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_CT_6005 + #define PRODUCT_FAMILY PRODUCT_FAMILY_CT_6005 +#elif IS_BELONG_FAMILY_G6006(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_CT_6006 + #define PRODUCT_FAMILY PRODUCT_FAMILY_CT_6006 +#endif + diff --git a/sdk/huagao/brand_hw.h b/sdk/huagao/brand_hw.h new file mode 100644 index 0000000..29f70de --- /dev/null +++ b/sdk/huagao/brand_hw.h @@ -0,0 +1,125 @@ +#pragma once + +// Definitions for Hanvon OEM ... +// +// + +#define OEM_NAME "\346\261\211\347\216\213\347\247\221\346\212\200\350\202\241\344\273\275\346\234\211\351\231\220\345\205\254\345\217\270" +#define OEM_SHORT_NAME "\346\261\211\347\216\213" +#define OEM_SHORT_NAME_E "hw" +#define PRODUCT_VID 0x2903 +#define PRODUCT_VENDOR "Hanvon" + +#define ADMIN_NAME "user" +#define ADMIN_PWD "hanvonscan" + +// #define COMPANY_NAME "汉王科技股份有限公司" +#define COMPANY_NAME "\346\261\211\347\216\213\347\247\221\346\212\200\350\202\241\344\273\275\346\234\211\351\231\220\345\205\254\345\217\270" +// #define BRAND_APP_NAME "汉王扫描应用程序" +#define BRAND_APP_NAME "\346\261\211\347\216\213\346\211\253\346\217\217\345\272\224\347\224\250\347\250\213\345\272\217" +// #define BRAND_TITLE_VERSION "版本" +#define BRAND_TITLE_VERSION "\347\211\210\346\234\254" +// #define BRAND_TITLE_COPYRIGHT "版权" +#define BRAND_TITLE_COPYRIGHT "\347\211\210\346\235\203" +#define BRAND_COPYRIGHT "1998-2022 HANVONSCAN\343\200\202\344\277\235\347\225\231\346\211\200\346\234\211\346\235\203\345\210\251" +// #define BRAND_TITE_MANUFACTOR "制造商/开发商" +#define BRAND_TITE_MANUFACTOR "\345\210\266\351\200\240\345\225\206/\345\274\200\345\217\221\345\225\206" +// #define BRAND_TITLE_URL "公司网址" +#define BRAND_TITLE_URL "\345\205\254\345\217\270\347\275\221\345\235\200" +#define BRAND_COMPANY_URL "www.hw99.com" +#define BRAND_COMPANY_URL_EN "www.hw99.com" +#define BRAND_URL_COMPANY_URL "https://www.hw99.com" +#define BRAND_URL_COMPANY_URL_EN "https://www.hw99.com" +// #define BRAND_TITLE_TEL "联系电话" +#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235" +#define BRAND_COMPANY_TEL "(010)82786854" +// #define BRAND_TITLE_ADDRESS "地址" +#define BRAND_TITLE_ADDRESS "\345\234\260\345\235\200" +// #define BRAND_COMPANY_ADDRESS "北京市海淀区东北旺西路8号中关村软件园5号楼汉王大厦" +#define BRAND_COMPANY_ADDRESS "\345\214\227\344\272\254\345\270\202\346\265\267\346\267\200\345\214\272\344\270\234\345\214\227\346\227\272\350\245\277\350\267\2578\345\217\267\344\270\255\345\205\263\346\235\221\350\275\257\344\273\266\345\233\2555\345\217\267\346\245\274\346\261\211\347\216\213\345\244\247\345\216\246" +// #define BRAND_TITLE_GPS "导航地址" +#define BRAND_TITLE_GPS "\345\257\274\350\210\252\345\234\260\345\235\200" +// #define BRAND_COMPANY_GPS "百度地图访问" +#define BRAND_COMPANY_GPS "\347\231\276\345\272\246\345\234\260\345\233\276\350\256\277\351\227\256" +#define BRAND_URL_GPS "https://j.map.baidu.com/68/idCJ" + + +#ifndef WIN32 + + #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 + +#else + + #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 "" + +#endif + + +// 编译DS时,每个系列只需要编译其中一个PID即可,最好是该系列有代表性的PID +#define IS_BELONG_FAMILY_G1000(pid) ((pid) == 0x1000) +#define PRODUCT_NAME_HW_G1000 "Hanvon HW-1000NS" +#define PRODUCT_FAMILY_HW_G1000 "HW-1000NS" +#define IS_BELONG_FAMILY_G1002(pid) ((pid) == 0x1002) +#define PRODUCT_NAME_HW_G1002 "Hanvon HW-1000" +#define PRODUCT_FAMILY_HW_G1002 "HW-1000" +#define IS_BELONG_FAMILY_G7000(pid) ((pid) == 0x7000) +#define PRODUCT_NAME_HW_G7000 "Hanvon HW-7000NS" +#define PRODUCT_FAMILY_HW_G7000 "HW-7000NS" +#define IS_BELONG_FAMILY_G7002(pid) ((pid) == 0x7002) +#define PRODUCT_NAME_HW_G7002 "Hanvon HW-7000" +#define PRODUCT_FAMILY_HW_G7002 "HW-7000" +#define IS_BELONG_FAMILY_G7039(pid) ((pid) == 0x7039) +#define PRODUCT_NAME_HW_G7039 "Hanvon HW-7039NS" +#define PRODUCT_FAMILY_HW_G7039 "HW-7039NS" +#define IS_BELONG_FAMILY_G8000(pid) ((pid) == 0x8000) +#define PRODUCT_NAME_HW_G8000 "Hanvon HW-8000" +#define PRODUCT_FAMILY_HW_G8000 "HW-8000" +#define IS_BELONG_FAMILY_G9000(pid) ((pid) == 0x9000) +#define PRODUCT_NAME_HW_G9000 "Hanvon HW-9000" +#define PRODUCT_FAMILY_HW_G9000 "HW-9000" + +#if IS_BELONG_FAMILY_G1000(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HW_G1000 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HW_G1000 + #define IS_BELONG_FAMILY IS_BELONG_FAMILY_G1000 +#elif IS_BELONG_FAMILY_G1002(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HW_G1002 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HW_G1002 + #define IS_BELONG_FAMILY IS_BELONG_FAMILY_G1002 +#elif IS_BELONG_FAMILY_G7000(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HW_G7000 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HW_G7000 + #define IS_BELONG_FAMILY IS_BELONG_FAMILY_G7000 +#elif IS_BELONG_FAMILY_G7002(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HW_G7002 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HW_G7002 + #define IS_BELONG_FAMILY IS_BELONG_FAMILY_G7002 +#elif IS_BELONG_FAMILY_G7039(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HW_G7039 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HW_G7039 + #define IS_BELONG_FAMILY IS_BELONG_FAMILY_G7039 +#elif IS_BELONG_FAMILY_G8000(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HW_G8000 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HW_G8000 + #define IS_BELONG_FAMILY IS_BELONG_FAMILY_G8000 +#elif IS_BELONG_FAMILY_G9000(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_HW_G9000 + #define PRODUCT_FAMILY PRODUCT_FAMILY_HW_G9000 + #define IS_BELONG_FAMILY IS_BELONG_FAMILY_G9000 +#endif + diff --git a/sdk/huagao/brand_lsc.h b/sdk/huagao/brand_lsc.h new file mode 100644 index 0000000..efe0e87 --- /dev/null +++ b/sdk/huagao/brand_lsc.h @@ -0,0 +1,102 @@ +#pragma once + +// Definitions for Lanxum OEM ... +// +// + + + +#define OEM_NAME "\345\214\227\344\272\254\347\253\213\346\200\235\350\276\260\350\256\241\347\256\227\346\234\272\346\212\200\346\234\257\346\234\211\351\231\220\345\205\254\345\217\270" +#define OEM_SHORT_NAME "\347\253\213\346\200\235\350\276\260" +#define OEM_SHORT_NAME_E "lsc" +#define PRODUCT_VID 0x31c9 +#define PRODUCT_VENDOR "Lanxum" + + +#define ADMIN_NAME "user" +#define ADMIN_PWD "lanxum" + +// #define COMPANY_NAME "北京立思辰计算机技术有限公司" +#define COMPANY_NAME "\345\214\227\344\272\254\347\253\213\346\200\235\350\276\260\350\256\241\347\256\227\346\234\272\346\212\200\346\234\257\346\234\211\351\231\220\345\205\254\345\217\270" +// #define BRAND_APP_NAME "立思辰扫描应用程序" +#define BRAND_APP_NAME "\347\253\213\346\200\235\350\276\260\346\211\253\346\217\217\345\272\224\347\224\250\347\250\213\345\272\217" +// #define BRAND_TITLE_VERSION "版本" +#define BRAND_TITLE_VERSION "\347\211\210\346\234\254" +// #define BRAND_TITLE_COPYRIGHT "版权" +#define BRAND_TITLE_COPYRIGHT "\347\211\210\346\235\203" +#define BRAND_COPYRIGHT "2010-2022 LANXUM\343\200\202\344\277\235\347\225\231\346\211\200\346\234\211\346\235\203\345\210\251" +// #define BRAND_TITE_MANUFACTOR "制造商/开发商" +#define BRAND_TITE_MANUFACTOR "\345\210\266\351\200\240\345\225\206/\345\274\200\345\217\221\345\225\206" +// #define BRAND_TITLE_URL "公司网址" +#define BRAND_TITLE_URL "\345\205\254\345\217\270\347\275\221\345\235\200" +#define BRAND_COMPANY_URL "www.lanxum.com" +#define BRAND_COMPANY_URL_EN "www.lanxum.com" +#define BRAND_URL_COMPANY_URL "http://www.lanxum.com" +#define BRAND_URL_COMPANY_URL_EN "http://www.lanxum.com" +// #define BRAND_TITLE_TEL "联系电话" +#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235" +#define BRAND_COMPANY_TEL "+86 010 82736600" +// #define BRAND_TITLE_ADDRESS "地址" +#define BRAND_TITLE_ADDRESS "\345\234\260\345\235\200" +// #define BRAND_COMPANY_ADDRESS "中国北京市海淀区学清路8号科技财富中心B座3A层" +#define BRAND_COMPANY_ADDRESS "\344\270\255\345\233\275\345\214\227\344\272\254\345\270\202\346\265\267\346\267\200\345\214\272\345\255\246\346\270\205\350\267\2578\345\217\267\347\247\221\346\212\200\350\264\242\345\257\214\344\270\255\345\277\203B\345\272\2473A\345\261\202" +// #define BRAND_TITLE_GPS "导航地址" +#define BRAND_TITLE_GPS "\345\257\274\350\210\252\345\234\260\345\235\200" +// #define BRAND_COMPANY_GPS "百度地图访问" +#define BRAND_COMPANY_GPS "\347\231\276\345\272\246\345\234\260\345\233\276\350\256\277\351\227\256" +#define BRAND_URL_GPS "https://j.map.baidu.com/5f/Xzh" + + +#ifndef WIN32 + + #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 + +#else + + #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 "" + +#endif + + +// 编译DS时,每个系列只需要编译其中一个PID即可,最好是该系列有代表性的PID +#define IS_BELONG_FAMILY_G42(pid) ((pid) == 0x8200 || (pid) == 0x8420 || (pid) == 0x8429) +#define PRODUCT_NAME_LSC_G42 "LANXUMSCAN G42S" +#define PRODUCT_FAMILY_LSC_G42 "G42S" +#define IS_BELONG_FAMILY_G52(pid) ((pid) == 0x8520 || (pid) == 0x8529) +#define PRODUCT_NAME_LSC_G52 "LANXUMSCAN G52S" +#define PRODUCT_FAMILY_LSC_G52 "G52S" +#define IS_BELONG_FAMILY_G62(pid) ((pid) == 0x8620 || (pid) == 0x8629) +#define PRODUCT_NAME_LSC_G62 "LANXUMSCAN G62S" +#define PRODUCT_FAMILY_LSC_G62 "G62S" +#define IS_BELONG_FAMILY_G73(pid) ((pid) == 0x8730 || (pid) == 0x8739) +#define PRODUCT_NAME_LSC_G73 "LANXUMSCAN G73S" +#define PRODUCT_FAMILY_LSC_G73 "G73S" + +#if IS_BELONG_FAMILY_G42(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_LSC_G42 + #define PRODUCT_FAMILY PRODUCT_FAMILY_LSC_G42 +#elif IS_BELONG_FAMILY_G52(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_LSC_G52 + #define PRODUCT_FAMILY PRODUCT_FAMILY_LSC_G52 +#elif IS_BELONG_FAMILY_G62(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_LSC_G62 + #define PRODUCT_FAMILY PRODUCT_FAMILY_LSC_G62 +#elif IS_BELONG_FAMILY_G73(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_LSC_G73 + #define PRODUCT_FAMILY PRODUCT_FAMILY_LSC_G73 +#endif diff --git a/sdk/huagao/brand_neu.h b/sdk/huagao/brand_neu.h new file mode 100644 index 0000000..0a423cd --- /dev/null +++ b/sdk/huagao/brand_neu.h @@ -0,0 +1,101 @@ +#pragma once + +// Definitions for Neural ... +// +// + + + +#define OEM_NAME "\345\256\201\346\263\242\345\215\216\351\253\230\344\277\241\346\201\257\347\247\221\346\212\200\346\234\211\351\231\220\345\205\254\345\217\270" +#define OEM_SHORT_NAME "\345\215\216\351\253\230" +#define OEM_SHORT_NAME_E "neu" +#define PRODUCT_VID 0x3072 +#define PRODUCT_VENDOR "Neu" + + + +// #define COMPANY_NAME "宁波华高信息科技有限公司" +#define COMPANY_NAME "\345\256\201\346\263\242\345\215\216\351\253\230\344\277\241\346\201\257\347\247\221\346\212\200\346\234\211\351\231\220\345\205\254\345\217\270" +// #define BRAND_APP_NAME "华高扫描应用程序" +#define BRAND_APP_NAME "\345\215\216\351\253\230\346\211\253\346\217\217\345\272\224\347\224\250\347\250\213\345\272\217" +// #define BRAND_TITLE_VERSION "版本" +#define BRAND_TITLE_VERSION "\347\211\210\346\234\254" +// #define BRAND_TITLE_COPYRIGHT "版权" +#define BRAND_TITLE_COPYRIGHT "\347\211\210\346\235\203" +#define BRAND_COPYRIGHT "2017 HuaGoScan\343\200\202\344\277\235\347\225\231\346\211\200\346\234\211\346\235\203\345\210\251" +// #define BRAND_TITE_MANUFACTOR "制造商/开发商" +#define BRAND_TITE_MANUFACTOR "\345\210\266\351\200\240\345\225\206/\345\274\200\345\217\221\345\225\206" +// #define BRAND_TITLE_URL "公司网址" +#define BRAND_TITLE_URL "\345\205\254\345\217\270\347\275\221\345\235\200" +#define BRAND_COMPANY_URL "www.huagaochina.com" +#define BRAND_COMPANY_URL_EN "www.huagaochina.com" +#define BRAND_URL_COMPANY_URL "http://www.huagaochina.com" +#define BRAND_URL_COMPANY_URL_EN "http://www.huagaochina.com" +// #define BRAND_TITLE_TEL "联系电话" +#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235" +#define BRAND_COMPANY_TEL "+86 0574 27974866" +// #define BRAND_TITLE_ADDRESS "地址" +#define BRAND_TITLE_ADDRESS "\345\234\260\345\235\200" +// #define BRAND_COMPANY_ADDRESS "浙江省宁波市鄞州区学士路655号(信科大厦)C栋211" +#define BRAND_COMPANY_ADDRESS "\346\265\231\346\261\237\347\234\201\345\256\201\346\263\242\345\270\202\351\204\236\345\267\236\345\214\272\345\255\246\345\243\253\350\267\257655\345\217\267\357\274\210\344\277\241\347\247\221\345\244\247\345\216\246\357\274\211C\346\240\213211" +// #define BRAND_TITLE_GPS "导航地址" +#define BRAND_TITLE_GPS "\345\257\274\350\210\252\345\234\260\345\235\200" +// #define BRAND_COMPANY_GPS "百度地图访问" +#define BRAND_COMPANY_GPS "\347\231\276\345\272\246\345\234\260\345\233\276\350\256\277\351\227\256" +#define BRAND_URL_GPS "https://j.map.baidu.com/7e/1TO" + + +#ifndef WIN32 + + #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 + +#else + + #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 "" + +#endif + + +// 编译DS时,每个系列只需要编译其中一个PID即可,最好是该系列有代表性的PID +#define IS_BELONG_FAMILY_G100(pid) ((pid) == 0x100 || (pid) == 0x139) +#define PRODUCT_NAME_NEU_100 "NEUSCAN G100" +#define PRODUCT_FAMILY_NEU_100 "G100" +#define IS_BELONG_FAMILY_G200(pid) ((pid) == 0x200 || (pid) == 0x239 || (pid) == 0x7823) +#define PRODUCT_NAME_NEU_200 "NEUSCAN G200" +#define PRODUCT_FAMILY_NEU_200 "G200" +#define IS_BELONG_FAMILY_G300(pid) ((pid) == 0x300 || (pid) == 0x339 || (pid) == 0x302) +#define PRODUCT_NAME_NEU_300 "NEUSCAN G300" +#define PRODUCT_FAMILY_NEU_300 "G300" +#define IS_BELONG_FAMILY_G400(pid) ((pid) == 0x400 || (pid) == 0x439 || (pid) == 0x402) +#define PRODUCT_NAME_NEU_400 "NEUSCAN G400" +#define PRODUCT_FAMILY_NEU_400 "G400" + +#if IS_BELONG_FAMILY_G100(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_NEU_100 + #define PRODUCT_FAMILY PRODUCT_FAMILY_NEU_100 +#elif IS_BELONG_FAMILY_G200(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_NEU_200 + #define PRODUCT_FAMILY PRODUCT_FAMILY_NEU_200 +#elif IS_BELONG_FAMILY_G300(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_NEU_300 + #define PRODUCT_FAMILY PRODUCT_FAMILY_NEU_300 +#elif IS_BELONG_FAMILY_G400(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_NEU_400 + #define PRODUCT_FAMILY PRODUCT_FAMILY_NEU_400 +#endif + diff --git a/sdk/huagao/brand_zg.h b/sdk/huagao/brand_zg.h new file mode 100644 index 0000000..d77df90 --- /dev/null +++ b/sdk/huagao/brand_zg.h @@ -0,0 +1,89 @@ +#pragma once + +// Definitions for ZiGuang OEM ... +// +// + + + +#define OEM_NAME "\347\264\253\345\205\211\350\202\241\344\273\275\346\234\211\351\231\220\345\205\254\345\217\270" +#define OEM_SHORT_NAME "\347\264\253\345\205\211" +#define OEM_SHORT_NAME_E "zg" +#define PRODUCT_VID 0x32EC +#define PRODUCT_VENDOR "uni" + + +#define ADMIN_NAME "user" +#define ADMIN_PWD "uniscan" + +// #define COMPANY_NAME "紫光股份有限公司" +#define COMPANY_NAME "\347\264\253\345\205\211\350\202\241\344\273\275\346\234\211\351\231\220\345\205\254\345\217\270" +// #define BRAND_APP_NAME "紫光扫描应用程序" +#define BRAND_APP_NAME "\347\264\253\345\205\211\346\211\253\346\217\217\345\272\224\347\224\250\347\250\213\345\272\217" +// #define BRAND_TITLE_VERSION "版本" +#define BRAND_TITLE_VERSION "\347\211\210\346\234\254" +// #define BRAND_TITLE_COPYRIGHT "版权" +#define BRAND_TITLE_COPYRIGHT "\347\211\210\346\235\203" +#define BRAND_COPYRIGHT "\347\264\253\345\205\211\350\202\241\344\273\275\346\234\211\351\231\220\345\205\254\345\217\270\347\211\210\346\235\203\346\211\200\346\234\211\302\2512020" +// #define BRAND_TITE_MANUFACTOR "制造商/开发商" +#define BRAND_TITE_MANUFACTOR "\345\210\266\351\200\240\345\225\206/\345\274\200\345\217\221\345\225\206" +// #define BRAND_TITLE_URL "公司网址" +#define BRAND_TITLE_URL "\345\205\254\345\217\270\347\275\221\345\235\200" +#define BRAND_COMPANY_URL "www.uniscan.com" +#define BRAND_URL_COMPANY_URL "http://www.unisscan.com" +#define BRAND_URL_COMPANY_URL_EN "http://www.unisscan.com" +//#define BRAND_TITLE_TEL "联系电话" +#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235" +#define BRAND_COMPANY_TEL "400-700-8188" +//#define BRAND_TITLE_ADDRESS "地址" +#define BRAND_TITLE_ADDRESS "\345\234\260\345\235\200" +// #define BRAND_COMPANY_ADDRESS "北京市海淀区清华大学紫光大楼" +#define BRAND_COMPANY_ADDRESS "\345\214\227\344\272\254\345\270\202\346\265\267\346\267\200\345\214\272\346\270\205\345\215\216\345\244\247\345\255\246\347\264\253\345\205\211\345\244\247\346\245\274" +//#define BRAND_TITLE_GPS "导航地址" +#define BRAND_TITLE_GPS "\345\257\274\350\210\252\345\234\260\345\235\200" +//#define BRAND_COMPANY_GPS "百度地图访问" +#define BRAND_COMPANY_GPS "\347\231\276\345\272\246\345\234\260\345\233\276\350\256\277\351\227\256" +#define BRAND_URL_GPS "https://j.map.baidu.com/dd/eNIJ" + + +#ifndef WIN32 + + #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 + +#else + + #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 "" + +#endif + + +// 编译DS时,每个系列只需要编译其中一个PID即可,最好是该系列有代表性的PID +#define IS_BELONG_FAMILY_G200(pid) ((pid) == 0x200) +#define PRODUCT_NAME_ZG_200 "Uniscan Q7 Series" +#define PRODUCT_FAMILY_ZG_200 "Q7" +#define IS_BELONG_FAMILY_G210(pid) ((pid) == 0x210) +#define PRODUCT_NAME_ZG_210 "Uniscan Q1 Series" +#define PRODUCT_FAMILY_ZG_210 "Q1" + +#if IS_BELONG_FAMILY_G200(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_ZG_200 + #define PRODUCT_FAMILY PRODUCT_FAMILY_ZG_200 +#elif IS_BELONG_FAMILY_G210(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_ZG_210 + #define PRODUCT_FAMILY PRODUCT_FAMILY_ZG_210 +#endif diff --git a/sdk/huagao/brand_zj.h b/sdk/huagao/brand_zj.h new file mode 100644 index 0000000..d7cda79 --- /dev/null +++ b/sdk/huagao/brand_zj.h @@ -0,0 +1,89 @@ +#pragma once + +// Definitions for ZhongJing OEM ... +// +// + + +#define OEM_NAME "\344\270\212\346\265\267\344\270\255\346\231\266\347\247\221\346\212\200\346\234\211\351\231\220\345\205\254\345\217\270" +#define OEM_SHORT_NAME "\344\270\255\346\231\266" +#define OEM_SHORT_NAME_E "zj" +#define PRODUCT_VID 0x05DA +#define PRODUCT_VENDOR "Microtek" + + +#define ADMIN_NAME "user" +#define ADMIN_PWD "microtek" + +// #define COMPANY_NAME "上海中晶科技有限公司" +#define COMPANY_NAME "\344\270\212\346\265\267\344\270\255\346\231\266\347\247\221\346\212\200\346\234\211\351\231\220\345\205\254\345\217\270" +// #define BRAND_APP_NAME "中晶扫描应用程序" +#define BRAND_APP_NAME "\344\270\255\346\231\266\346\211\253\346\217\217\345\272\224\347\224\250\347\250\213\345\272\217" +// #define BRAND_TITLE_VERSION "版本" +#define BRAND_TITLE_VERSION "\347\211\210\346\234\254" +// #define BRAND_TITLE_COPYRIGHT "版权" +#define BRAND_TITLE_COPYRIGHT "\347\211\210\346\235\203" +#define BRAND_COPYRIGHT "2022 MICROTEK\343\200\202\344\277\235\347\225\231\346\211\200\346\234\211\347\211\210\346\235\203" +// #define BRAND_TITE_MANUFACTOR "制造商/开发商" +#define BRAND_TITE_MANUFACTOR "\345\210\266\351\200\240\345\225\206/\345\274\200\345\217\221\345\225\206" +// #define BRAND_TITLE_URL "公司网址" +#define BRAND_TITLE_URL "\345\205\254\345\217\270\347\275\221\345\235\200" +#define BRAND_COMPANY_URL "www.microtek.com.cn" +#define BRAND_COMPANY_URL_EN "www.microtek.com" +#define BRAND_URL_COMPANY_URL "http://www.microtek.com.cn" +#define BRAND_URL_COMPANY_URL_EN "http://www.microtek.com" +//#define BRAND_TITLE_TEL "联系电话" +#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235" +#define BRAND_COMPANY_TEL "886-3-5772155" +//#define BRAND_TITLE_ADDRESS "地址" +#define BRAND_TITLE_ADDRESS "\345\234\260\345\235\200" +// #define BRAND_COMPANY_ADDRESS "上海市徐汇区桂平路680号35号楼" +#define BRAND_COMPANY_ADDRESS "\344\270\212\346\265\267\345\270\202\345\276\220\346\261\207\345\214\272\346\241\202\345\271\263\350\267\257680\345\217\26735\345\217\267\346\245\274" +//#define BRAND_TITLE_GPS "导航地址" +#define BRAND_TITLE_GPS ""//"\345\257\274\350\210\252\345\234\260\345\235\200" +//#define BRAND_COMPANY_GPS "百度地图访问" +#define BRAND_COMPANY_GPS ""//"\347\231\276\345\272\246\345\234\260\345\233\276\350\256\277\351\227\256" +#define BRAND_URL_GPS ""//"https://j.map.baidu.com/67/BWSu" + + +#ifndef WIN32 + + #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 + +#else + + #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" + +#endif + + +// 编译DS时,每个系列只需要编译其中一个PID即可,最好是该系列有代表性的PID +#define IS_BELONG_FAMILY_G9200(pid) ((pid) == 0x9220) +#define PRODUCT_NAME_ZJ_9200 "Microtek A3HG Scanner" +#define PRODUCT_FAMILY_ZJ_9200 "S6500" +#define IS_BELONG_FAMILY_OTHER(pid) ((pid) != 0x9220) +#define PRODUCT_NAME_ZJ_OTHER "Microtek" +#define PRODUCT_FAMILY_ZJ_OTHER "General" + +#if IS_BELONG_FAMILY_G9200(PRODUCT_PID) + #define PRODUCT_NAME PRODUCT_NAME_ZJ_9200 + #define PRODUCT_FAMILY PRODUCT_FAMILY_ZJ_9200 +#else + #define PRODUCT_NAME PRODUCT_NAME_ZJ_OTHER + #define PRODUCT_FAMILY PRODUCT_FAMILY_ZJ_OTHER +#endif diff --git a/sdk/huagao/hgscanner_error.cpp b/sdk/huagao/hgscanner_error.cpp new file mode 100644 index 0000000..619b1ae --- /dev/null +++ b/sdk/huagao/hgscanner_error.cpp @@ -0,0 +1,91 @@ +#include +#include "hgscanner_error.h" + + +#define TRY_VALUE(en) RETURN_IF(scanerr, en) + +std::string scanner_error_name(int scanerr) +{ + TRY_VALUE(SCANNER_ERR_OK); + + // 1:软件逻辑错误 + TRY_VALUE(SCANNER_ERR_INVALID_PARAMETER); + TRY_VALUE(SCANNER_ERR_USER_CANCELED); + TRY_VALUE(SCANNER_ERR_INSUFFICIENT_MEMORY); + TRY_VALUE(SCANNER_ERR_ACCESS_DENIED); + TRY_VALUE(SCANNER_ERR_IO_PENDING); + TRY_VALUE(SCANNER_ERR_NOT_EXACT); + TRY_VALUE(SCANNER_ERR_CONFIGURATION_CHANGED); + TRY_VALUE(SCANNER_ERR_NOT_OPEN); + TRY_VALUE(SCANNER_ERR_NOT_START); + TRY_VALUE(SCANNER_ERR_NOT_ANY_MORE); + TRY_VALUE(SCANNER_ERR_NO_DATA); + TRY_VALUE(SCANNER_ERR_HAS_DATA_YET); + TRY_VALUE(SCANNER_ERR_OUT_OF_RANGE); + TRY_VALUE(SCANNER_ERR_IO); + TRY_VALUE(SCANNER_ERR_TIMEOUT); + TRY_VALUE(SCANNER_ERR_OPEN_FILE_FAILED); + TRY_VALUE(SCANNER_ERR_CREATE_FILE_FAILED); + TRY_VALUE(SCANNER_ERR_WRITE_FILE_FAILED); + TRY_VALUE(SCANNER_ERR_DATA_DAMAGED); + TRY_VALUE(SCANNER_ERR_OPENED_BY_OTHER_PROCESS); + TRY_VALUE(SCANNER_ERR_LANG_PAK_LOST); + TRY_VALUE(SCANNER_ERR_RELOAD_IMAGE_PARAM); + TRY_VALUE(SCANNER_ERR_RELOAD_OPT_PARAM); + TRY_VALUE(SCANNER_ERR_THROW_EXCEPTION); + + // 2:USB错误; + TRY_VALUE(SCANNER_ERR_USB_INIT_FAILED); + TRY_VALUE(SCANNER_ERR_USB_REGISTER_PNP_FAILED); + TRY_VALUE(SCANNER_ERR_USB_CLAIM_INTERFACE_FAILED); + + // 3:硬件错误 + TRY_VALUE(SCANNER_ERR_DEVICE_NOT_FOUND); + TRY_VALUE(SCANNER_ERR_DEVICE_NOT_SUPPORT); + TRY_VALUE(SCANNER_ERR_DEVICE_BUSY); + TRY_VALUE(SCANNER_ERR_DEVICE_SLEEPING); + TRY_VALUE(SCANNER_ERR_DEVICE_COUNT_MODE); + TRY_VALUE(SCANNER_ERR_DEVICE_STOPPED); + TRY_VALUE(SCANNER_ERR_DEVICE_COVER_OPENNED); + TRY_VALUE(SCANNER_ERR_DEVICE_NO_PAPER); + TRY_VALUE(SCANNER_ERR_DEVICE_FEEDING_PAPER); + TRY_VALUE(SCANNER_ERR_DEVICE_DOUBLE_FEEDING); + TRY_VALUE(SCANNER_ERR_DEVICE_PAPER_JAMMED); + TRY_VALUE(SCANNER_ERR_DEVICE_STAPLE_ON); + TRY_VALUE(SCANNER_ERR_DEVICE_PAPER_SKEW); + TRY_VALUE(SCANNER_ERR_DEVICE_SIZE_CHECK); + TRY_VALUE(SCANNER_ERR_DEVICE_DOGEAR); + TRY_VALUE(SCANNER_ERR_DEVICE_NO_IMAGE); + TRY_VALUE(SCANNER_ERR_DEVICE_SCANN_ERROR); + TRY_VALUE(SCANNER_ERR_DEVICE_PC_BUSY); + TRY_VALUE(SCANNER_ERR_DEVICE_ISLOCK); + TRY_VALUE(SCANNER_ERR_DEVICE_UPGRADE_SUCCESSFUL); + TRY_VALUE(SCANNER_ERR_DEVICE_UPGRADE_FAIL); + TRY_VALUE(SCANNER_ERR_DEVICE_AUTO_FAIL_OVER); + TRY_VALUE(SCANNER_ERR_DEVICE_AUTO_FAIL_INFO); + TRY_VALUE(SCANNER_ERR_DEVICE_DISTORTION); + TRY_VALUE(SCANNER_ERR_DEVICE_MAYBE_IS_HOLE); + TRY_VALUE(SCANNER_ERR_DEVICE_DEVS_BOOTING); + TRY_VALUE(SCANNER_ERR_DEVICE_UNKNOWN_STATUS); + + TRY_VALUE(SCANNER_ERR_DEVICE_NOT_READY); + TRY_VALUE(SCANNER_ERR_DEVICE_GET_STATUS_FAILED); + TRY_VALUE(SCANNER_ERR_DEVICE_FEEDER_POS); + TRY_VALUE(SCANNER_ERR_DEVICE_CIS_OUT_OF_MEM); + TRY_VALUE(SCANNER_ERR_DEVICE_CIS_STREAM); + TRY_VALUE(SCANNER_ERR_DEVICE_HD_001); + TRY_VALUE(SCANNER_ERR_DEVICE_HD_002); + TRY_VALUE(SCANNER_ERR_DEVICE_HD_003); + TRY_VALUE(SCANNER_ERR_DEVICE_HD_004); + TRY_VALUE(SCANNER_ERR_DEVICE_HD_005); + TRY_VALUE(SCANNER_ERR_DEVICE_HD_006); + TRY_VALUE(SCANNER_ERR_DEVICE_HD_007); + TRY_VALUE(SCANNER_ERR_DEVICE_HD_008); + TRY_VALUE(SCANNER_ERR_DEVICE_HD_009); + + char unk[40] = { 0 }; + + sprintf(unk, "Unknown error(%d)", scanerr); + + return unk; +} diff --git a/sdk/huagao/hgscanner_error.h b/sdk/huagao/hgscanner_error.h index abb93f5..16d23d1 100644 --- a/sdk/huagao/hgscanner_error.h +++ b/sdk/huagao/hgscanner_error.h @@ -14,6 +14,10 @@ #define DEV_ERR(err) \ SCANNER_ERR_DEVICE_##err + +#include +extern std::string scanner_error_name(int scanerr); + enum scanner_err { SCANNER_ERR_OK = 0, // 成功,正常状态 diff --git a/sdk/sane/sane_ex.h b/sdk/sane/sane_ex.h index 119d5c0..7bdcb16 100644 --- a/sdk/sane/sane_ex.h +++ b/sdk/sane/sane_ex.h @@ -148,8 +148,10 @@ extern "C" { enum SANE_Frame_Ex // after SANE_Frame { - SANE_FRAME_RAW = 5, + SANE_FRAME_RAW = 100, SANE_FRAME_MIME, // MIME descriptor + SANE_FRAME_JPEG, + SANE_FRAME_PNG, }; // SANE_ACTION_ENUM_INVISIBLE_FIX_ID diff --git a/sdk/sane/sane_name.h b/sdk/sane/sane_name.h index b66eb9b..6ecd7d8 100644 --- a/sdk/sane/sane_name.h +++ b/sdk/sane/sane_name.h @@ -1,10 +1,11 @@ -// sane option names && fixed-id definitions +// sane option names && fixed-id definitions // // Date: 2024-01-31 #pragma once #define SANE_OPT_NAME(name) SANE_STD_OPT_NAME_##name #define SANE_OPT_FIXED_ID(id) SANE_OPT_ID_##id +#define IS_SANE_OPT(n, pn) strcmp(n, SANE_OPT_NAME(pn)) == 0 #define MAX_OPT_NAME_LEN 64 #define JSON_SANE_TYPE_BOOL "bool" #define JSON_SANE_TYPE_INT "int" @@ -19,7 +20,7 @@ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Names ... // -// PART I: 参数类型与华高一致,可直接通过改name字段为标准值实现 +// PART I: 参数类型与华高一致,可直接通过改name字段为标准值实现 over-line #define SANE_STD_OPT_NAME_RESTORE "restore" // OPTION_TITLE_HFMRSZ #define SANE_STD_OPT_NAME_HELP "help" // OPTION_TITLE_BZ #define SANE_STD_OPT_NAME_IS_MULTI_OUT "is-multiout" // OPTION_TITLE_DLSC @@ -39,9 +40,9 @@ #define SANE_STD_OPT_NAME_NOISE_OPTIMIZE "is-noise-optimize" // OPTION_TITLE_HBTXZDYH #define SANE_STD_OPT_NAME_NOISE_SIZE "noise-size" // OPTION_TITLE_ZDYHCC #define SANE_STD_OPT_NAME_PAPER "paper" // OPTION_TITLE_ZZCC -#define SANE_STD_OPT_NAME_PAPER_W "paper-w" // 纸张宽度 -#define SANE_STD_OPT_NAME_PAPER_H "paper-h" // 纸张高度 -#define SANE_STD_OPT_NAME_LATERAL "lateral" // 纸张横向标志 +#define SANE_STD_OPT_NAME_PAPER_W "paper-w" // 纸张宽度 over-line +#define SANE_STD_OPT_NAME_PAPER_H "paper-h" // 纸张高度 over-line +#define SANE_STD_OPT_NAME_LATERAL "lateral" // 纸张横向标志 over-line #define SANE_STD_OPT_NAME_CUSTOM_AREA "is-custom-area" // OPTION_TITLE_ZDYSMQY #define SANE_STD_OPT_NAME_CUSTOM_AREA_LEFT "tl-x" // OPTION_TITLE_SMQYZCmm #define SANE_STD_OPT_NAME_CUSTOM_AREA_RIGHT "br-x" // OPTION_TITLE_SMQYYCmm @@ -108,57 +109,63 @@ #define SANE_STD_OPT_NAME_WAIT_SCAN_EXIT "wait-scan-exit" // OPTION_TITLE_DZSMTCSJ #define SANE_STD_OPT_NAME_DISCARDBLANK "discardblank" // OPTION_TITLE_TGKBY -#define SANE_STD_OPT_NAME_DEVICE_NAME "dev-name" // 设备名称 -#define SANE_STD_OPT_NAME_DEVICE_VID "dev-vid" // 设备VID -#define SANE_STD_OPT_NAME_DEVICE_PID "dev-pid" // 设备PID -#define SANE_STD_OPT_NAME_DEVICE_MODEL "dev-model" // 设备系列 +#define SANE_STD_OPT_NAME_DEVICE_NAME "dev-name" // 设备名称 over-line +#define SANE_STD_OPT_NAME_DEVICE_VID "dev-vid" // 设备VID over-line +#define SANE_STD_OPT_NAME_DEVICE_PID "dev-pid" // 设备PID over-line +#define SANE_STD_OPT_NAME_DEVICE_MODEL "dev-model" // 设备系列 over-line #define SANE_STD_OPT_NAME_DEV_NAME SANE_STD_OPT_NAME_DEVICE_NAME #define SANE_STD_OPT_NAME_VID SANE_STD_OPT_NAME_DEVICE_VID #define SANE_STD_OPT_NAME_PID SANE_STD_OPT_NAME_DEVICE_PID #define SANE_STD_OPT_NAME_DEV_FAMILY SANE_STD_OPT_NAME_DEVICE_MODEL -#define SANE_STD_OPT_NAME_DEVICE_TYPE "dev-type" // 设备型号 -#define SANE_STD_OPT_NAME_DEVICE_SERIAL_NO "dev-sn" // 设备序列号 -#define SANE_STD_OPT_NAME_FIRMWARE_VERSION "fmw-ver" // 固件版本 -#define SANE_STD_OPT_NAME_DEVICE_IP_ADDR "ip-addr" // 设备IP地址 -#define SANE_STD_OPT_NAME_DEVICE_MAC_ADDR "mac-addr" // 设备MAC地址 -#define SANE_STD_OPT_NAME_ROLLER_COUNT "roll-cnt" // 滚轴张数 -#define SANE_STD_OPT_NAME_TOTAL_COUNT "total-cnt" // 历史总张数 +#define SANE_STD_OPT_NAME_DEVICE_TYPE "dev-type" // 设备型号 over-line +#define SANE_STD_OPT_NAME_DEVICE_SERIAL_NO "dev-sn" // 设备序列号 over-line +#define SANE_STD_OPT_NAME_FIRMWARE_VERSION "fmw-ver" // 固件版本 over-line +#define SANE_STD_OPT_NAME_DEVICE_IP_ADDR "ip-addr" // 设备IP地址 over-line +#define SANE_STD_OPT_NAME_DEVICE_MAC_ADDR "mac-addr" // 设备MAC地址 over-line +#define SANE_STD_OPT_NAME_ROLLER_COUNT "roll-cnt" // 滚轴张数 over-line +#define SANE_STD_OPT_NAME_TOTAL_COUNT "total-cnt" // 历史总张数 over-line #define SANE_STD_OPT_NAME_HISTORY_COUNT SANE_STD_OPT_NAME_TOTAL_COUNT -#define SANE_STD_OPT_NAME_GET_DEVS_L0G "devs-log" // 获取设备日志 -#define SANE_STD_OPT_NAME_DRIVER_VERSION "drv-ver" // 设备VID -#define SANE_STD_OPT_NAME_MANUFACTURER "company" // 公司名称 -#define SANE_STD_OPT_NAME_COPYRIGHT "copyright" // 版权 -#define SANE_STD_OPT_NAME_CO_URL "co-url" // 公司网址 -#define SANE_STD_OPT_NAME_CO_TEL "co-tel" // 公司电话 -#define SANE_STD_OPT_NAME_CO_ADDR "co-addr" // 公司地址 -#define SANE_STD_OPT_NAME_CO_GPS "co-gps" // 公司地图定位 -#define SANE_STD_OPT_NAME_USER_NAME "user-name" // 登录账号 -#define SANE_STD_OPT_NAME_USER_PASSWORD "user-pwd" // 登录密码 -#define SANE_STD_OPT_NAME_LOGIN "login" // 登录 -#define SANE_STD_OPT_NAME_LOGOUT "logout" // 登出 -#define SANE_STD_OPT_NAME_DRIVER_LOG "drv-log" // 驱动日志 +#define SANE_STD_OPT_NAME_GET_DEVS_L0G "devs-log" // 获取设备日志 over-line +#define SANE_STD_OPT_NAME_DRIVER_VERSION "drv-ver" // 设备VID over-line +#define SANE_STD_OPT_NAME_MANUFACTURER "company" // 公司名称 over-line +#define SANE_STD_OPT_NAME_COPYRIGHT "copyright" // 版权 over-line +#define SANE_STD_OPT_NAME_CO_URL "co-url" // 公司网址 over-line +#define SANE_STD_OPT_NAME_CO_TEL "co-tel" // 公司电话 over-line +#define SANE_STD_OPT_NAME_CO_ADDR "co-addr" // 公司地址 over-line +#define SANE_STD_OPT_NAME_CO_GPS "co-gps" // 公司地图定位 over-line +#define SANE_STD_OPT_NAME_USER_NAME "user-name" // 登录账号 over-line +#define SANE_STD_OPT_NAME_USER_PASSWORD "user-pwd" // 登录密码 over-line +#define SANE_STD_OPT_NAME_LOGIN "login" // 登录 over-line +#define SANE_STD_OPT_NAME_LOGOUT "logout" // 登出 over-line +#define SANE_STD_OPT_NAME_DRIVER_LOG "drv-log" // 驱动日志 over-line #define SANE_STD_OPT_NAME_DEVICE_LOG SANE_STD_OPT_NAME_GET_DEVS_L0G -#define SANE_STD_OPT_NAME_ROLLER_LIFE "roller-life" // 滚轴最大寿命(过纸张数) -#define SANE_STD_OPT_NAME_LANGUAGE "language" // 语言 +#define SANE_STD_OPT_NAME_ROLLER_LIFE "roller-life" // 滚轴最大寿命(过纸张数) over-line +#define SANE_STD_OPT_NAME_LANGUAGE "language" // 语言 over-line #define SANE_STD_OPT_NAME_MOTOR_VER "motor-ver" // 电机固件版本, data = char* -#define SANE_STD_OPT_NAME_FPGA_VER "fpga-ver" // CIS控制器(FPGA)版本, data = char* -#define SANE_STD_OPT_NAME_TRANSFORM_IMAGE_FORMAT "trans-img-fmt" // 图像格式转换, data - SANE_ImageFormatConvert*, dst.data 调用SANE_STD_OPT_NAME_FREE_BUFFER释放 +#define SANE_STD_OPT_NAME_FPGA_VER "fpga-ver" // CIS控制器(FPGA)版本 data = char* +#define SANE_STD_OPT_NAME_TRANSFORM_IMAGE_FORMAT "trans-img-fmt" // 图像格式转换, data - SANE_ImageFormatConvert*, dst.data 调用SANE_STD_OPT_NAME_FREE_BUFFER释放 over-line #define SANE_STD_OPT_NAME_FREE_BUFFER "free-buf" // 释放由驱动返回的内存, data - (void**)&buf #define SANE_STD_OPT_NAME_PAPER_ON "paper-on" // check whether paper is on -#define SANE_STD_OPT_NAME_INITIAL_BOOT_TIME "initial-boot-time" // 设备的初始开机时间 -#define SANE_STD_OPT_NAME_DUMP_IMG "dump-img" // 是否输出算法各阶段中间图像 -#define SANE_STD_OPT_NAME_DUMP_IMG_PATH "dump-path" // 中间图像输出路径 -#define SANE_STD_OPT_NAME_CIS_LENGTH "cis-len" // CIS 长度(采集图像的最大宽度) -#define SANE_STD_OPT_NAME_CIS_REBUILD "rebuild" // 复原从CIS出来的数据流为原始图像 +#define SANE_STD_OPT_NAME_INITIAL_BOOT_TIME "initial-boot-time" // 设备的初始开机时间 over-line +#define SANE_STD_OPT_NAME_DUMP_IMG "dump-img" // 是否输出算法各阶段中间图像 over-line +#define SANE_STD_OPT_NAME_DUMP_IMG_PATH "dump-path" // 中间图像输出路径 over-line -// PART II: 参数类型与华高不一致,需要通过“hgsane”组件在中间转换 + +// PART II: 参数类型与华高不一致,需要通过“hgsane”组件在中间转换 over-line #define SANE_STD_OPT_NAME_PAGE_W "page-width" // OPTION_TITLE_ZZCC #define SANE_STD_OPT_NAME_PAGE_H "page-height" // OPTION_TITLE_ZZCC #define SANE_STD_OPT_NAME_DUPLEX "duplex" // OPTION_TITLE_SMYM // END for sane-standard-option-name defined by third-app // + + + + + // PART III: inner option on device +#define SANE_STD_OPT_NAME_CIS_LENGTH "cis-len" // CIS 长度(采集图像的最大宽度) over-line +#define SANE_STD_OPT_NAME_CIS_REBUILD "rebuild" // 复原从CIS出来的数据流为原始图像 over-line #define SANE_STD_OPT_NAME_CIS_MODE "cis-mode" #define SANE_STD_OPT_NAME_CIS_DPI "cis-dpi" #define SANE_STD_OPT_NAME_Y_DPI "y-dpi" @@ -168,7 +175,6 @@ #define SANE_STD_OPT_NAME_CIS_SAMPLE "sample" #define SANE_STD_OPT_NAME_CIS_SP "cis-sp" #define SANE_STD_OPT_NAME_CIS_LED "cis-led" -#define SANE_STD_OPT_NAME_CIS_REBUILD "cis-rebuild" #define SANE_STD_OPT_NAME_CIS_STRETCH "stretch" #define SANE_STD_OPT_NAME_CIS_EXPO_FB "expo-fb" #define SANE_STD_OPT_NAME_CIS_EXPO_FG "expo-fg" @@ -197,10 +203,13 @@ + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // fixed-ids ... // -// 借鉴TWAIN协议固定ID的做法,定义SANE属性的固定ID - 这里与TWAIN中的ID保持一致,以方便TWAIN的调用 +// 借鉴TWAIN协议固定ID的做法,定义SANE属性的固定ID - 这里与TWAIN中的ID保持一致,以方便TWAIN的调用 over-line enum sane_option_id { SANE_OPT_ID_BASE = 0x8800, @@ -297,9 +306,9 @@ enum sane_option_id SANE_OPT_ID_ROLLER_LIFE = 0x885B, // data: uint32_t* SANE_OPT_ID_LANGUAGE = 0x885C, // data: char* SANE_OPT_ID_MOTOR_VER = 0x885D, // 电机固件版本, data - char* - SANE_OPT_ID_TRANSFORM_IMAGE_FORMAT = 0x885E,// 图像格式转换, data - SANE_ImageFormatConvert*, dst.data 调用SANE_STD_OPT_NAME_FREE_BUFFER释放 + SANE_OPT_ID_TRANSFORM_IMAGE_FORMAT = 0x885E,// 图像格式转换, data - SANE_ImageFormatConvert*, dst.data 调用SANE_STD_OPT_NAME_FREE_BUFFER释放 over-line SANE_OPT_ID_FREE_BUFFER = 0x885F, // 释放由驱动返回的内存, data - (void**)&buf - SANE_OPT_ID_PAPER_ON = 0x8860, // 是否有纸张, data - SANE_Bool* + SANE_OPT_ID_PAPER_ON = 0x8860, // 是否有纸�? data - SANE_Bool* SANE_OPT_ID_GRAY_GAMMA = 0x8861, // gray-gamma-table SANE_OPT_ID_COLOR_GAMMA = 0x8862, // color-gamma-table @@ -310,9 +319,9 @@ enum sane_option_id SANE_OPT_ID_DISCARDBLANK = 0x8867, SANE_OPT_ID_WAIT_SCAN_EXIT = 0x8868, SANE_OPT_ID_RESTORE = 0x8869, - SANE_OPT_ID_PAPER_W = 0x886A, // 纸张宽度,单位为mm - SANE_OPT_ID_PAPER_H = 0x886B, // 纸张高度,单位为mm - SANE_OPT_ID_LATERAL = 0x886C, // 纸张横向标志,bool + SANE_OPT_ID_PAPER_W = 0x886A, // 纸张宽度,单位为mm over-line + SANE_OPT_ID_PAPER_H = 0x886B, // 纸张高度,单位为mm over-line + SANE_OPT_ID_LATERAL = 0x886C, // 纸张横向标志,bool over-line SANE_OPT_ID_LOGIN = 0x9900, SANE_OPT_ID_LOGOUT = 0x9901,