diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index 0afd20d..e6f71d4 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -1644,9 +1644,66 @@ int hg_scanner_239::set_clear_roller_num(void) } int hg_scanner_239::set_clear_history_num(void) { - std::lock_guard lock(io_lock_); - int val = 0, + string device_log_path = "/usr/local/huago/scannerinfo.json"; + string str; + + int ret = SCANNER_ERR_OK; + int buffersize = 0; + int len = device_log_path.size(); + + if (pid_ == 0x439) + { + ret = write_register(setting3399::SR_SET_JSON_PATH, len); + if (ret == SCANNER_ERR_OK) + ret = io_->write_bulk(&device_log_path[0], &len); + + if (ret == SCANNER_ERR_OK) + ret = read_register(setting3399::SR_GET_JSON_SIZE, &buffersize); + + if (ret == SCANNER_ERR_OK && buffersize > 0) + ret = write_register(setting3399::SR_GET_JSON, buffersize); + + if (ret == SCANNER_ERR_OK && buffersize > 0) + { + str.resize(buffersize); + ret = io_->read_bulk(&str[0], &buffersize); + } + + std::string str2; + json js = json::parse(str); + if (js.contains("TotalScanned")) + { + js["TotalScanned"] = 0; + str2 = js.dump(); + } + + int buffersize = 0; + int len = device_log_path.size(); + int lenstr = str2.size(); + io_->set_timeout(3000); + ret = write_register(setting3399::SR_SET_JSON_PATH, len); + if (ret != SCANNER_ERR_OK) + return ret; + + ret = io_->write_bulk(&device_log_path[0], &len); + if (ret != SCANNER_ERR_OK) + return ret; + + + ret = write_register(setting3399::SR_SET_JSON, lenstr); + if (ret != SCANNER_ERR_OK) + return ret; + + ret = io_->write_bulk(&str2[0], &lenstr); + if (ret != SCANNER_ERR_OK) + return ret; + } + else + { + std::lock_guard lock(io_lock_); + int val = 0; ret = read_register(setting3399::SR_CLR_SCANN_NUM, &val); + } return ret; }