调整得力PID

This commit is contained in:
yangjiaxuan 2023-08-10 14:34:44 +08:00
parent 8cde3ad57b
commit e3a9ead2e4
1 changed files with 23 additions and 31 deletions

View File

@ -85,13 +85,13 @@ namespace callback
}SCNINST; }SCNINST;
std::vector<SCNINST> g_scanner_instances; std::vector<SCNINST> g_scanner_instances;
int sane_event_callback( // 憡剹<EFBFBD><EFBFBD>賡摚<EFBFBD><EFBFBD><EFBFBD>典𤧚<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蓥蔆蝜𡁶<EFBFBD>雿踐<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡃓燵蝏曇楊<EFBFBD><EFBFBD><EFBFBD><EFBFBD>誯𨫢? int sane_event_callback( // 濞夈劌鍞介崶鐐剁殶閻ㄥ嫬顕挒鈽呯礉闂団偓鐟曚椒绻氱拠浣筋嚉閸ョ偠鐨熼弰顖氼樋缁捐法鈻肩€瑰鍙忛惃?
SANE_Handle hdev // 瘚䲷<EFBFBD><EFBFBD>瘚𨅯洸甈𨫢<EFBFBD><EFBFBD>瞉嗅𧗾敶鮋<EFBFBD>? SANE_Handle hdev // 娴溠呮晸娴滃娆㈤惃鍕啎婢跺洤褰為弻?
, int code // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>戭拇洽瘚𩤃<EFBFBD><EFBFBD>? , int code // 閸ョ偠鐨熸禍瀣╂娴狅絿鐖?
, void* data // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>戭拇洽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撅曄<EFBFBD><EFBFBD><EFBFBD>蝪冽<EFBFBD><EFBFBD>萄𥈡<EFBFBD>桐蝴皝<EFBFBD>𦄡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𥕦掃撘祇<EFBFBD><EFBFBD><EFBFBD>踵童<EFBFBD>脩馬瘚㰘滓<EFBFBD><EFBFBD>? , void* data // 閸ョ偠鐨熸禍瀣╂閺佺増宓侀敍灞剧壌閹诡喕绨ㄦ禒鏈靛敩閻焦婀侀幍鈧稉宥呮倱閿涘苯寮悡褍鍙挎担鎾茬皑娴犺泛鐣炬稊?
, unsigned int* len // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>桀拿<EFBFBD>𥕦<EFBFBD><EFBFBD>折鼈<EFBFBD><EFBFBD><EFBFBD>𥕦掛<EFBFBD>券麯<EFBFBD>沟ent_data<EFBFBD>典𤅷蝝阡<EFBFBD><EFBFBD>鍦偺<EFBFBD><EFBFBD><EFBFBD>桀拿<EFBFBD>𥕦<EFBFBD><EFBFBD>𤤿<EFBFBD><EFBFBD>𡃓龖<EFBFBD>芸洵瘚㗇鐦<EFBFBD><EFBFBD><EFBFBD>瘚𨅯洸甈<EFBFBD><EFBFBD><EFBFBD> , unsigned int* len // 閺佺増宓侀梹鍨閿涘牆鐡ч懞鍌︾礆閿涘本鍨ㄩ懓鍗恦ent_data閻ㄥ嫮绱﹂崘鎻掑隘闂€鍨閿涘矁顕涚紒鍡氼嚞閻娴夋惔鏃傛畱娴滃娆㈡禒锝囩垳
, void* param // <EFBFBD><EFBFBD><EFBFBD>偦㞾<EFBFBD><EFBFBD>𡡅瘨𥪜<EFBFBD><EFBFBD>罸䌫<EFBFBD><EFBFBD><EFBFBD>瘨枏漱<EFBFBD>罸錬<EFBFBD>畝ne_init_ex瘚潛𤗈<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撖娍<EFBFBD><EFBFBD>祇㞾? , void* param // 閻劍鍩涢懛顏勭暰娑斿鏆熼幑顕嗙礉娑撳氦鐨熼悽鈺痑ne_init_ex娴肩姴鍙嗛弮鍓佹畱娣囨繃瀵旀稉鈧懛?
) // <EFBFBD>拇𪃭瘣㚚<EFBFBD><EFBFBD>渡毽瘨枏<EFBFBD><EFBFBD>㯄𨫢<EFBFBD>芰馬瘚䭾𨑳<EFBFBD>祇𨯿雿賤<EFBFBD>撅賜𡡅<EFBFBD>𥕦<EFBFBD><EFBFBD>祆鬲<EFBFBD><EFBFBD>銵﹦<EFBFBD>?<3F>? ) // 鏉╂柨娲栭崐闂寸贩娑撳秴鎮撻惃鍕皑娴犳湹鍞惍浣解偓灞界暰閿涘矂鈧艾鐖舵稉琛♀偓?閳?
{ {
std::lock_guard<std::mutex> lock(cb_lock_); std::lock_guard<std::mutex> lock(cb_lock_);
std::vector<SCNINST>::iterator it = std::find(g_scanner_instances.begin(), g_scanner_instances.end(), hdev); std::vector<SCNINST>::iterator it = std::find(g_scanner_instances.begin(), g_scanner_instances.end(), hdev);
@ -207,10 +207,10 @@ namespace callback
, {SANE_STD_OPT_NAME_FOLD_TYPE , OPTION_TITLE_DZMS} , {SANE_STD_OPT_NAME_FOLD_TYPE , OPTION_TITLE_DZMS}
, {SANE_STD_OPT_NAME_COLOR_CORRECTION , OPTION_TITLE_SPJZ} , {SANE_STD_OPT_NAME_COLOR_CORRECTION , OPTION_TITLE_SPJZ}
}, },
g_discard[] = { {SANE_STD_OPT_NAME_REVERSE_01 , "\351\273\221\347\231\275\345\233\276\345\203\217\345\217\215\350\211\262\350\276\223\345\207\272\357\274\210\346\255\243\345\270\270\351\242\234\350\211\262\344\270\272\357\274\2320-\351\273\221\350\211\262\357\274\2331-\347\231\275\350\211\262\357\274\211"} // 璁𥟇<EFBFBD>瑹折摚<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憯𦠜<EFBFBD><EFBFBD>喳黆<EFBFBD>𥕦<EFBFBD><EFBFBD>𦦵𣈲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>寡僮韐罸<EFBFBD>?-璁𥟇ê̄憯𢠃<E686AF>?-<2D><EFBFBD><EFBFBD><E7AC94>? g_discard[] = { {SANE_STD_OPT_NAME_REVERSE_01 , "\351\273\221\347\231\275\345\233\276\345\203\217\345\217\215\350\211\262\350\276\223\345\207\272\357\274\210\346\255\243\345\270\270\351\242\234\350\211\262\344\270\272\357\274\2320-\351\273\221\350\211\262\357\274\2331-\347\231\275\350\211\262\357\274\211"} // 姒涙垹娅ч崶鎯у剼閸欏秷澹婃潏鎾冲毉閿涘牊顒滅敮鎼侇杹閼硅弓璐熼敍?-姒涙垼澹婇敍?-閻у€熷閿?
, {SANE_STD_OPT_NAME_FILTER , "\347\201\260\345\272\246\346\210\226\351\273\221\347\231\275\345\233\276\345\203\217 - \351\231\244\350\211\262"} // <EFBFBD>𤩺踎摰喲縝<EFBFBD>剔畢<EFBFBD><EFBFBD>瘚㗛<EFBFBD>?- <20><><EFBFBD>? , {SANE_STD_OPT_NAME_FILTER , "\347\201\260\345\272\246\346\210\226\351\273\221\347\231\275\345\233\276\345\203\217 - \351\231\244\350\211\262"} // 閻忔澘瀹抽幋鏍拨閻ц棄娴橀崓?- 闂勩倛澹?
, {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // <EFBFBD><EFBFBD>憪拚罀<EFBFBD><EFBFBD>撖桀<EFBFBD>? , {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // 閼奉亜濮╅幖鎾剁剨瀵搫瀹?
, {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , "\346\220\223\347\272\270\351\230\210\345\200\274"} // " <EFBFBD>潭𣺿<EFBFBD>𢠃<EFBFBD><EFBFBD><EFBFBD>? , {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , "\346\220\223\347\272\270\351\230\210\345\200\274"} // " 閹兼挾鐒婇梼鍫濃偓?
}; };
const char* option_title_2_name(const char* title) const char* option_title_2_name(const char* title)
{ {
@ -347,12 +347,12 @@ namespace callback
// SANE_EVENT_IMAGE_OK - void* unused, be NULL, flag - unused, be 0 // SANE_EVENT_IMAGE_OK - void* unused, be NULL, flag - unused, be 0
static HMODULE hui = NULL; static HMODULE hui = NULL;
int (*choose_scanner)(const std::vector<DEVQUEUI>& devs) = NULL; // blocked. return selected DEVQUE::id or -1 if user cancelled int (*choose_scanner)(const std::vector<DEVQUEUI>& devs) = NULL; // blocked. return selected DEVQUE::id or -1 if user cancelled
char* (*apply_current_config)(const char* dev_name, SANE_Handle device, LPSANEAPI api) = NULL; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>抆𩅛<EFBFBD>典𤧚蝬钅<EFBFBD>撊匧絝<EFBFBD>? char* (*apply_current_config)(const char* dev_name, SANE_Handle device, LPSANEAPI api) = NULL; // 鎼存梻鏁ょ拋鎯ь槵閻ㄥ嫬缍嬮崜宥夊帳閿?
int (*show_setting_ui)(SANE_Handle device, HWND parent, LPSANEAPI api, const char* devname, bool with_scan, std::function<void(ui_result)> callback) = NULL; int (*show_setting_ui)(SANE_Handle device, HWND parent, LPSANEAPI api, const char* devname, bool with_scan, std::function<void(ui_result)> callback) = NULL;
int (*show_progress_ui)(HWND parent, std::function<void(ui_result)> callback, std::function<void(int/*event*/, void*/*msg*/, int/*flag*/)>* notify) = NULL; int (*show_progress_ui)(HWND parent, std::function<void(ui_result)> callback, std::function<void(int/*event*/, void*/*msg*/, int/*flag*/)>* notify) = NULL;
int (*show_messagebox_ui)(HWND parent, int event, void* msg, int flag) = NULL; int (*show_messagebox_ui)(HWND parent, int event, void* msg, int flag) = NULL;
int (*close_ui)(int) = NULL; int (*close_ui)(int) = NULL;
int (*apply_given_config)(const char* content, SANE_Handle device, LPSANEAPI api) = NULL; // <EFBFBD><EFBFBD><EFBFBD>日纒<EFBFBD>抒𡡅<EFBFBD>典墙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>content瘨𤘪揪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? int (*apply_given_config)(const char* content, SANE_Handle device, LPSANEAPI api) = NULL; // 鎼存梻鏁ら幐鍥х暰閻ㄥ嫰鍘ょ純顕嗙礉content娑撴椽鍘ょ純顔芥殶閹诡喗绁?
char* (*get_config_content)(const char* dev_name, const char* name) = NULL; char* (*get_config_content)(const char* dev_name, const char* name) = NULL;
void (*twain_ui_free)(void* buf) = NULL; void (*twain_ui_free)(void* buf) = NULL;
@ -614,22 +614,14 @@ bool scanner::is_belong_serial(int vid, int pid, SCANNERID serial)
} }
else if (vid == PRODUCT_VENDOR_DL) else if (vid == PRODUCT_VENDOR_DL)
{ {
if (GET_SCANNER_VID(serial) == PRODUCT_VENDOR_DL) if (GET_SCANNER_PID(serial) == 0x401C)
{ {
if (GET_SCANNER_PID(serial) == 0x401C) return pid == 0x401C || pid == 0x4020;
{ }
return pid == 0x401C || pid == 0x401D || pid == 0x401E || pid == 0x401F || pid == 0x4020 || pid == 0x4021 || pid == 0x4022; else
} {
else if (GET_SCANNER_PID(serial) == 0x4015) return GET_SCANNER_VID(serial) == vid && GET_SCANNER_PID(serial) == pid;
{
return pid == 0x4015 || pid == 0x4016 || pid == 0x4017 || pid == 0x4018;
}
else if (GET_SCANNER_PID(serial) == 0x4019)
{
return pid == 0x4019 || pid == 0x401A || pid == 0x401B;
}
} }
return false;
} }
return true; return true;
@ -985,7 +977,7 @@ int scanner::open(void)
{ {
if (callback::show_messagebox_ui) if (callback::show_messagebox_ui)
{ {
// 蝏暹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>笔捂<EFBFBD>嗥妥<EFBFBD>拙䪸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撖㚚摚颲曄<EFBFBD><EFBFBD><EFBFBD>撘踵仪<EFBFBD>抽䲰瘨樳<EFBFBD><EFBFBD>∠遝蝔踴<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砌蝴<EFBFBD><EFBFBD><EFBFBD>皞踱<EFBFBD>雿寞<EFBFBD>瞉嗆鬲蝝嗥<EFBFBD>憭羓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>喳蔡<EFBFBD><EFBFBD>蝝圈<EFBFBD><EFBFBD>瞉抒<EFBFBD><EFBFBD><EFBFBD><EFBFBD>龖憡剹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>憡枏䴴蝤仿<EFBFBD>雿貉<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>抆𩅛皜𡁏<EFBFBD>蝪脤<EFBFBD><EFBFBD>𡁜<EFBFBD>瘨𠉛<EFBFBD>瘚偦䌫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>? // 缁炬瓕鐤嗛幖鎾剁剨濞嗏剝鏆熷鑼剁Т鏉╁洩顔曠拋鈥插▏閻劏瀵栭崶杈剧礉閹殿偅寮挎潻鍥┾柤娑擃厽鎮$痪绋裤亼鐠愩儯鈧焦顒i弬婧库偓浣规偂婢舵艾绱剁粵澶婄磽鐢悂顣跺▎鈥冲讲閼虫垝绱伴弰搴㈡▔婢х偛顦块敍宀冾嚞濞夈劍鍓伴崣濠冩濞撳懏纾ラ妴浣歌嫙閼辨梻閮寸拋鎯ь槵娓氭稑绨查崯鍡氬枠娑旂増娴涢幑銏㈢剨鏉烆噯绱?
std::wstring roller_msgw(local_trans::lang_trans_between_hz936(L"\u7EB8\u8F6E\u6413\u7EB8\u6B21\u6570\u5DF2\u8D85\u8FC7\u8BBE\u8BA1\u4F7F\u7528\u8303\u56F4\uFF0C\u626B\u63CF\u8FC7\u7A0B\u4E2D\u6413\u7EB8\u5931\u8D25\u3001\u6B6A\u659C\u3001\u6413\u591A\u5F20\u7B49\u5F02\u5E38\u9891\u6B21\u53EF\u80FD\u4F1A\u660E\u663E\u589E\u591A\uFF0C\u8BF7\u6CE8\u610F\u53CA\u65F6\u6E05\u6D01\u3001\u5E76\u8054\u7CFB\u8BBE\u5907\u4F9B\u5E94\u5546\u8D2D\u4E70\u66FF\u6362\u7EB8\u8F6E\uFF01")); std::wstring roller_msgw(local_trans::lang_trans_between_hz936(L"\u7EB8\u8F6E\u6413\u7EB8\u6B21\u6570\u5DF2\u8D85\u8FC7\u8BBE\u8BA1\u4F7F\u7528\u8303\u56F4\uFF0C\u626B\u63CF\u8FC7\u7A0B\u4E2D\u6413\u7EB8\u5931\u8D25\u3001\u6B6A\u659C\u3001\u6413\u591A\u5F20\u7B49\u5F02\u5E38\u9891\u6B21\u53EF\u80FD\u4F1A\u660E\u663E\u589E\u591A\uFF0C\u8BF7\u6CE8\u610F\u53CA\u65F6\u6E05\u6D01\u3001\u5E76\u8054\u7CFB\u8BBE\u5907\u4F9B\u5E94\u5546\u8D2D\u4E70\u66FF\u6362\u7EB8\u8F6E\uFF01"));
std::string roller_msg(local_trans::u2a(roller_msgw.c_str(), CP_UTF8)); std::string roller_msg(local_trans::u2a(roller_msgw.c_str(), CP_UTF8));
app_wnd_ = callback::find_main_wnd(); app_wnd_ = callback::find_main_wnd();
@ -1199,7 +1191,7 @@ int scanner::init_options_id(void)
if (is_erase_hole_id_ == -1) if (is_erase_hole_id_ == -1)
{ {
// <EFBFBD><EFBFBD><EFBFBD>鞾麯雿箸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // 閸忕厧顔愰懓浣烘畱闂勩倕鐡熺粻妤佺《
EXAPI ea; EXAPI ea;
ea.ind = is_erase_hole_id_ = ex_id_++; ea.ind = is_erase_hole_id_ = ex_id_++;
@ -3551,13 +3543,13 @@ int scanner::handle_device_event(int ev_code, void* data, unsigned int* len)
log_info(msg, 1); log_info(msg, 1);
} }
} }
//else if (ev_code == SANE_EVENT_ERROR) // <EFBFBD>𧼮<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𥕦掃皝芷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撘輸<EFBFBD>頝箇<EFBFBD><EFBFBD>頧唬<EFBFBD><EFBFBD>?- 2023-05-30 //else if (ev_code == SANE_EVENT_ERROR) // 鐏炲繗鏂€閿涘苯婀崑婊勵剾閹殿偅寮块弮璺虹潔缁€杞颁繆閹?- 2023-05-30
//{ //{
// if (callback::show_messagebox_ui && *len) // if (callback::show_messagebox_ui && *len)
// { // {
// callback::show_messagebox_ui(app_wnd_, ev_code, (void*)data, 0); // callback::show_messagebox_ui(app_wnd_, ev_code, (void*)data, 0);
// } // }
// else if (*len) //<EFBFBD><EFBFBD><EFBFBD>文祚<EFBFBD>啣黆 // else if (*len) //闁挎瑨顕ゅ鐟板毉
// { // {
// std::wstring msg(local_trans::a2u((char*)data, CP_UTF8)); // std::wstring msg(local_trans::a2u((char*)data, CP_UTF8));
// if (!IsWindow(app_wnd_)) // if (!IsWindow(app_wnd_))