修复双张时计数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;
if(mb_events_.take(mbev, true, 10) && mbev.first == MOTOR_BORD_EVENT_ERROR)
{
if(err == 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);
auto notify_paper = [&](int error) -> void
{
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)
break;
}
@ -984,7 +987,7 @@ int scanner_hw::close(bool from_worker)
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;
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)
{
printf("status message: %s\n", words_from_id(msg));
if(bef_ui)
bef_ui(mberr);
devui::send_status_message(msg);
}

View File

@ -124,7 +124,7 @@ public:
int start_scan(void);
int stop_scan(bool from_ui = 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);
bool is_scanning(void);
};

View File

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