修复双张时计数BUG

This commit is contained in:
gb 2024-02-22 08:58:58 +08:00
parent 38c60264c5
commit af6c187bac
3 changed files with 13 additions and 7 deletions

View File

@ -420,9 +420,12 @@ void scanner_hw::thread_image_capture(bool paper_ready)
mbev.second = 0; mbev.second = 0;
if(mb_events_.take(mbev, true, 10) && mbev.first == MOTOR_BORD_EVENT_ERROR) if(mb_events_.take(mbev, true, 10) && mbev.first == MOTOR_BORD_EVENT_ERROR)
{ {
if(err == SCANNER_ERR_DEVICE_DOUBLE_FEEDING) auto notify_paper = [&](int error) -> void
devui::send_message(devui::UI_STATUS_PAPER_CNT, (uint8_t*)&pass, sizeof(pass)); {
err = trans_motorboard_err_2_hg_error(mbev.second, true); if(error == SCANNER_ERR_DEVICE_DOUBLE_FEEDING)
devui::send_message(devui::UI_STATUS_PAPER_CNT, (uint8_t*)&pass, sizeof(pass));
};
err = trans_motorboard_err_2_hg_error(mbev.second, true, notify_paper);
if(err != SCANNER_ERR_DEVICE_DOUBLE_FEEDING) if(err != SCANNER_ERR_DEVICE_DOUBLE_FEEDING)
break; break;
} }
@ -984,7 +987,7 @@ int scanner_hw::close(bool from_worker)
return 0; return 0;
} }
int scanner_hw::trans_motorboard_err_2_hg_error(int mberr, bool to_ui) int scanner_hw::trans_motorboard_err_2_hg_error(int mberr, bool to_ui, std::function<void(int)> bef_ui)
{ {
unsigned int val = mberr; unsigned int val = mberr;
SMBSTATUS *s = (SMBSTATUS*)&val; SMBSTATUS *s = (SMBSTATUS*)&val;
@ -1019,6 +1022,9 @@ int scanner_hw::trans_motorboard_err_2_hg_error(int mberr, bool to_ui)
if(to_ui && msg) if(to_ui && msg)
{ {
printf("status message: %s\n", words_from_id(msg)); printf("status message: %s\n", words_from_id(msg));
if(bef_ui)
bef_ui(mberr);
devui::send_status_message(msg); devui::send_status_message(msg);
} }

View File

@ -124,7 +124,7 @@ public:
int start_scan(void); int start_scan(void);
int stop_scan(bool from_ui = false); int stop_scan(bool from_ui = false);
int close(bool from_worker = false); int close(bool from_worker = false);
int trans_motorboard_err_2_hg_error(int mberr, bool to_ui = false); int trans_motorboard_err_2_hg_error(int mberr, bool to_ui = false, std::function<void(int)> bef_ui = std::function<void(int)>());
int hg_err_2_image_status(int hgerr); int hg_err_2_image_status(int hgerr);
bool is_scanning(void); bool is_scanning(void);
}; };

View File

@ -60,8 +60,8 @@ add_packagedirs("sdk")
add_defines("BUILD_AS_DEVICE") add_defines("BUILD_AS_DEVICE")
add_defines("VER_MAIN=2") add_defines("VER_MAIN=2")
add_defines("VER_FAMILY=200") add_defines("VER_FAMILY=200")
add_defines("VER_DATE=20240221") add_defines("VER_DATE=20240222")
add_defines("VER_BUILD=24") add_defines("VER_BUILD=1")
target("conf") target("conf")
set_kind("phony") set_kind("phony")