diff --git a/hardware/hardware.cpp b/hardware/hardware.cpp index 1de35d8..8f1b0aa 100644 --- a/hardware/hardware.cpp +++ b/hardware/hardware.cpp @@ -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 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); } diff --git a/hardware/hardware.h b/hardware/hardware.h index 397c601..e6c45a1 100644 --- a/hardware/hardware.h +++ b/hardware/hardware.h @@ -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 bef_ui = std::function()); int hg_err_2_image_status(int hgerr); bool is_scanning(void); }; diff --git a/xmake.lua b/xmake.lua index f66dc30..413c809 100644 --- a/xmake.lua +++ b/xmake.lua @@ -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")