diff --git a/hgdriver/hgdev/char_const.h b/hgdriver/hgdev/char_const.h index bd30d9d..781df7f 100644 --- a/hgdriver/hgdev/char_const.h +++ b/hgdriver/hgdev/char_const.h @@ -200,6 +200,10 @@ // #define BRAND_DEVICE_NOT_SUPPORT "设备不支持" #define BRAND_DEVICE_NOT_SUPPORT "\350\256\276\345\244\207\344\270\215\346\224\257\346\214\201" +//#define BRAND_SOFTWARE_VERSION "软件版本" +#define BRAND_SOFTWARE_VERSION "\350\275\257\344\273\266\347\211\210\346\234\254" +//#define BRAND_SOFTWARE_VERSION_TEST "测试版" +#define BRAND_SOFTWARE_VERSION_TEST "\346\265\213\350\257\225\347\211\210" #define SCANNER_NAME_HG_G100 "HUAGOSCAN G100" diff --git a/hgdriver/hgdev/hg_scanner_300.cpp b/hgdriver/hgdev/hg_scanner_300.cpp index b8b6e74..a3d7c40 100644 --- a/hgdriver/hgdev/hg_scanner_300.cpp +++ b/hgdriver/hgdev/hg_scanner_300.cpp @@ -995,6 +995,8 @@ int hg_scanner_300::set_scan_lock_check_val(string str) } int hg_scanner_300::set_firmware_upgrade(std::string str) { + std::lock_guard lock(io_lock_); + std::ifstream filename; int ret = SCANNER_ERR_OK; int block = 1024 * 1024; @@ -1037,7 +1039,7 @@ int hg_scanner_300::set_firmware_upgrade(std::string str) io_->write_bulk(sendbuf,&block); - io_->read_bulk(&update, &len); + ret = io_->read_bulk(&update, &len); if (ret != SCANNER_ERR_OK) { return ret; @@ -1051,8 +1053,33 @@ int hg_scanner_300::set_firmware_upgrade(std::string str) } USBCB updatefinished = { setting3288dsp::UPDATE_FINISHED,0,0 }; len = sizeof(updatefinished); + ret = io_->write_bulk(&updatefinished, &len); - return io_->write_bulk(&updatefinished,&len); + StopWatch sw; + + USBCB result = { setting3288dsp::GET_UPDATE_RESULT,0,0 }; + len = sizeof(result); + while (sw.elapsed_s() < 60) + { + this_thread::sleep_for(std::chrono::milliseconds(1000)); + io_->set_timeout(3000); + ret = io_->write_bulk(&result, &len); + + ret = io_->read_bulk(&result, &len); + //this_thread::sleep_for(std::chrono::milliseconds(1000)); + + if (ret != SCANNER_ERR_OK) + { + VLOG_MINI_1(LOG_LEVEL_WARNING, "updata result read_bulk:%s\n", hg_scanner_err_name(ret)); + //return ret; + } + if (result.u32_Data == 2 || result.u32_Data == 3) + { + VLOG_MINI_1(LOG_LEVEL_WARNING, "updata result:%d\n", result.u32_Data); + break; + } + } + return ret; } int hg_scanner_300::set_clean_paper_road() { diff --git a/hgdriver/hgdev/scanner_manager.cpp b/hgdriver/hgdev/scanner_manager.cpp index 04aaf04..17334ea 100644 --- a/hgdriver/hgdev/scanner_manager.cpp +++ b/hgdriver/hgdev/scanner_manager.cpp @@ -517,6 +517,7 @@ scanner_err hg_scanner_mgr::get_about_info(scanner_handle h, void* data, unsigne if (scanner) #endif { + bytes += sizeof(tmp.appendix[0]) + BRAND_INFO_MAX_LENGTH + 8 + strlen(GET_LANG(BRAND_SOFTWARE_VERSION, &islang)) + 8; bytes += sizeof(tmp.appendix[0]) + BRAND_INFO_MAX_LENGTH + 8 + strlen(GET_LANG(BRAND_TITLE_DEVICE_MODEL, &islang)) + 8; append_cnt++; bytes += sizeof(tmp.appendix[0]) + BRAND_INFO_MAX_LENGTH + 8 + strlen(GET_LANG(BRAND_TITLE_FIRM_VERSION,&islang)) + 8; append_cnt++; bytes += sizeof(tmp.appendix[0]) + BRAND_INFO_MAX_LENGTH + 8 + strlen(GET_LANG(BRAND_TITLE_SERIAL_NUM,&islang)) + 8; append_cnt++; @@ -557,6 +558,9 @@ scanner_err hg_scanner_mgr::get_about_info(scanner_handle h, void* data, unsigne ptr += about->logo_bytes + 1; int count = 0, rolls = 0, ret = SCANNER_ERR_OK; +#ifdef TEST + set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_SOFTWARE_VERSION, &islang), BRAND_SOFTWARE_VERSION_TEST, NULL); +#endif std::string g_vendor = GET_LANG(COMPANY_NAME, &islang); set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITE_MANUFACTOR,&islang), g_vendor.c_str(), NULL); set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITLE_URL,&islang), GET_LANG(BRAND_COMPANY_URL,&islang), GET_LANG(BRAND_URL_COMPANY_URL,&islang)); @@ -565,7 +569,7 @@ scanner_err hg_scanner_mgr::get_about_info(scanner_handle h, void* data, unsigne set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITLE_GPS,&islang), GET_LANG(BRAND_COMPANY_GPS,&islang), GET_LANG(BRAND_URL_GPS,&islang)); if (scanner) - { + { set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITLE_FIRM_VERSION,&islang), scanner->get_firmware_version().c_str(), NULL); set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITLE_SERIAL_NUM,&islang), scanner->get_serial_num().c_str(), NULL); info = scanner->get_ip();