修复扫描计数BUG
This commit is contained in:
parent
6d96c88225
commit
bb2988848f
|
@ -406,14 +406,14 @@ void scanner_hw::thread_image_capture(bool paper_ready)
|
||||||
|
|
||||||
mbev.first = -1;
|
mbev.first = -1;
|
||||||
mbev.second = 0;
|
mbev.second = 0;
|
||||||
turn_cnt++;
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
printf("%02d: error: 0x%08x\n", turn_cnt, mbev.second);
|
if(err == SCANNER_ERR_DEVICE_DOUBLE_FEEDING)
|
||||||
devui::send_message(devui::UI_STATUS_PAPER_CNT, (uint8_t*)&pass, sizeof(pass));
|
devui::send_message(devui::UI_STATUS_PAPER_CNT, (uint8_t*)&pass, sizeof(pass));
|
||||||
err = trans_motorboard_err_2_hg_error(mbev.second, true);
|
err = trans_motorboard_err_2_hg_error(mbev.second, true);
|
||||||
if(err != SCANNER_ERR_DEVICE_DOUBLE_FEEDING)
|
if(err != SCANNER_ERR_DEVICE_DOUBLE_FEEDING)
|
||||||
break;
|
break;
|
||||||
|
turn_cnt++;
|
||||||
}
|
}
|
||||||
else if(mbev.first == MOTOR_BORD_EVENT_SCAN_DONE)
|
else if(mbev.first == MOTOR_BORD_EVENT_SCAN_DONE)
|
||||||
{
|
{
|
||||||
|
@ -422,9 +422,9 @@ void scanner_hw::thread_image_capture(bool paper_ready)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("%02d: normal\n", turn_cnt);
|
|
||||||
devui::send_message(devui::UI_STATUS_PAPER_CNT, (uint8_t*)&pass, sizeof(pass));
|
devui::send_message(devui::UI_STATUS_PAPER_CNT, (uint8_t*)&pass, sizeof(pass));
|
||||||
err = SCANNER_ERR_OK;
|
err = SCANNER_ERR_OK;
|
||||||
|
turn_cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
img.pos.paper_ind++;
|
img.pos.paper_ind++;
|
||||||
|
@ -804,7 +804,6 @@ int scanner_hw::open(std::function<IMAGE_HANDLER_PROTO> image_handler, std::stri
|
||||||
auto cb = [this](int ev, unsigned int data) -> void
|
auto cb = [this](int ev, unsigned int data) -> void
|
||||||
{
|
{
|
||||||
mb_events_.save(std::make_pair(ev, data), true);
|
mb_events_.save(std::make_pair(ev, data), true);
|
||||||
printf("push event(%d - 0x%08x)\n", ev, data);
|
|
||||||
};
|
};
|
||||||
mb_events_.clear();
|
mb_events_.clear();
|
||||||
motor_.reset(new MotorBoard(cb));
|
motor_.reset(new MotorBoard(cb));
|
||||||
|
@ -924,7 +923,7 @@ int scanner_hw::start_scan(void)
|
||||||
|
|
||||||
return SCANNER_ERR_OK;
|
return SCANNER_ERR_OK;
|
||||||
}
|
}
|
||||||
int scanner_hw::stop_scan(void)
|
int scanner_hw::stop_scan(bool from_ui)
|
||||||
{
|
{
|
||||||
bool working = scanning_;
|
bool working = scanning_;
|
||||||
|
|
||||||
|
@ -940,7 +939,7 @@ int scanner_hw::stop_scan(void)
|
||||||
// camera_->stop();
|
// camera_->stop();
|
||||||
// mb_events_.clear();
|
// mb_events_.clear();
|
||||||
|
|
||||||
if(!working)
|
if(!working && from_ui)
|
||||||
{
|
{
|
||||||
devui::SCANSTREAM stream;
|
devui::SCANSTREAM stream;
|
||||||
stream.err = 0;
|
stream.err = 0;
|
||||||
|
|
|
@ -121,7 +121,7 @@ public:
|
||||||
public:
|
public:
|
||||||
int open(std::function<IMAGE_HANDLER_PROTO> image_handler, std::string* cfgjson = nullptr, bool count_mode = false);
|
int open(std::function<IMAGE_HANDLER_PROTO> image_handler, std::string* cfgjson = nullptr, bool count_mode = false);
|
||||||
int start_scan(void);
|
int start_scan(void);
|
||||||
int stop_scan(void);
|
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);
|
||||||
int hg_err_2_image_status(int hgerr);
|
int hg_err_2_image_status(int hgerr);
|
||||||
|
|
|
@ -298,7 +298,7 @@ void async_scanner::init(void)
|
||||||
}
|
}
|
||||||
else if(devui::UI_CMD_STOP_SCAN == pack->msg)
|
else if(devui::UI_CMD_STOP_SCAN == pack->msg)
|
||||||
{
|
{
|
||||||
cis_->stop_scan();
|
cis_->stop_scan(true);
|
||||||
|
|
||||||
bool auto_scan = false;
|
bool auto_scan = false;
|
||||||
cis_->set_value(SANE_OPT_NAME(WAIT_TO_SCAN), &auto_scan);
|
cis_->set_value(SANE_OPT_NAME(WAIT_TO_SCAN), &auto_scan);
|
||||||
|
|
|
@ -235,6 +235,7 @@ namespace devui
|
||||||
std::string rcv("");
|
std::string rcv("");
|
||||||
char buf[300] = {0};
|
char buf[300] = {0};
|
||||||
LPMSGSTREAM pack = nullptr;
|
LPMSGSTREAM pack = nullptr;
|
||||||
|
bool offline = false;
|
||||||
|
|
||||||
printf("ui-receiver running ...\n");
|
printf("ui-receiver running ...\n");
|
||||||
while(run_)
|
while(run_)
|
||||||
|
@ -247,13 +248,20 @@ namespace devui
|
||||||
this->close();
|
this->close();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if(r == 0)
|
else if(r == 0 /*&& errno == ENOENT*/) // errno maybe ZERO, here ommit the error code
|
||||||
{
|
{
|
||||||
// peer closed, wait 10ms ...
|
// peer closed, wait 10ms ...
|
||||||
|
if(!offline)
|
||||||
|
{
|
||||||
|
printf("PIPE: peer closed(read ZERO byte and error = %d).\n", errno);
|
||||||
|
utils::to_log(LOG_LEVEL_DEBUG, "PIPE: peer closed(read ZERO byte and error = %d).\n", errno);
|
||||||
|
}
|
||||||
|
offline = true;
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
offline = false;
|
||||||
rcv += std::string(buf, r);
|
rcv += std::string(buf, r);
|
||||||
if(rcv.length())
|
if(rcv.length())
|
||||||
{
|
{
|
||||||
|
|
|
@ -75,7 +75,6 @@ void PinMonitor::monitor()
|
||||||
call_back(pin.getPort());
|
call_back(pin.getPort());
|
||||||
// utils::to_log(LOG_LEVEL_DEBUG, utils::format_string("= %.2f \n",sw.elapse_ms()).c_str());
|
// utils::to_log(LOG_LEVEL_DEBUG, utils::format_string("= %.2f \n",sw.elapse_ms()).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sw.reset();
|
sw.reset();
|
||||||
while(sw.elapse_ms() < 10)
|
while(sw.elapse_ms() < 10)
|
||||||
|
@ -86,7 +85,7 @@ void PinMonitor::monitor()
|
||||||
num = read(pfd.fd, buf, 8);
|
num = read(pfd.fd, buf, 8);
|
||||||
buf[num - 1] = '\0';
|
buf[num - 1] = '\0';
|
||||||
ret = atoi(buf);
|
ret = atoi(buf);
|
||||||
//printf("pMonitor nread = %d ret val = %d \n",num,ret);
|
// printf("## pMonitor nread = %d ret val = %d \n",num,ret);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,7 @@ 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=20240221")
|
||||||
add_defines("VER_BUILD=4")
|
add_defines("VER_BUILD=9")
|
||||||
|
|
||||||
target("conf")
|
target("conf")
|
||||||
set_kind("phony")
|
set_kind("phony")
|
||||||
|
|
Loading…
Reference in New Issue