统一设备端与PC端公用代码文件

This commit is contained in:
gb 2024-03-08 17:32:16 +08:00
parent 91951609a8
commit 9c25fa52f3
14 changed files with 982 additions and 54 deletions

View File

@ -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 <Windows.h>

View File

@ -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();
@ -1532,19 +1536,26 @@ namespace utils
int set_cpu_affinity(int *cpuind, int cnt, pthread_t thread)
{
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;
}

View File

@ -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*/);

203
sdk/huagao/brand.h Normal file
View File

@ -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

101
sdk/huagao/brand_ct.h Normal file
View File

@ -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

125
sdk/huagao/brand_hw.h Normal file
View File

@ -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

102
sdk/huagao/brand_lsc.h Normal file
View File

@ -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

101
sdk/huagao/brand_neu.h Normal file
View File

@ -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

89
sdk/huagao/brand_zg.h Normal file
View File

@ -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

89
sdk/huagao/brand_zj.h Normal file
View File

@ -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

View File

@ -0,0 +1,91 @@
#include <string>
#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);
// 2USB错误;
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;
}

View File

@ -14,6 +14,10 @@
#define DEV_ERR(err) \
SCANNER_ERR_DEVICE_##err
#include <string>
extern std::string scanner_error_name(int scanerr);
enum scanner_err
{
SCANNER_ERR_OK = 0, // 成功,正常状态

View File

@ -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

View File

@ -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, // 是否有纸<EFBFBD>? 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,