diff --git a/hgdriver/hgdev/char_const.h b/hgdriver/hgdev/char_const.h index a40b0e2..8f45cfc 100644 --- a/hgdriver/hgdev/char_const.h +++ b/hgdriver/hgdev/char_const.h @@ -300,6 +300,8 @@ #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 BRAND_TITLE_DEVICE_INITIAL_POWER_ON_TIME "设备初始开机时间" +#define BRAND_TITLE_DEVICE_INITIAL_POWER_ON_TIME "\350\256\276\345\244\207\345\210\235\345\247\213\345\274\200\346\234\272\346\227\266\351\227\264" #define SCANNER_NAME_HG_G100 "HUAGOSCAN G100" diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index a5a29d4..d822016 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -673,6 +673,7 @@ void hg_scanner::init_setting_func_map(void) setting_map_[SANE_STD_OPT_NAME_GET_DEVS_L0G] = &hg_scanner::setting_get_devs_log; setting_map_[SANE_STD_OPT_NAME_LANGUAGE] = &hg_scanner::setting_set_language; setting_map_[SANE_STD_OPT_NAME_MOTOR_VER] = &hg_scanner::setting_get_motor_ver; + setting_map_[SANE_STD_OPT_NAME_INITIAL_BOOT_TIME] = &hg_scanner::setting_get_initial_boot_time; } std::string hg_scanner::setting_name_from(const char* n_or_id, int* id) { @@ -2759,6 +2760,16 @@ int hg_scanner::setting_get_motor_ver(void* data, long* len) } return ret; } +int hg_scanner::setting_get_initial_boot_time(void* data, long* len) +{ + string str; + int ret = get_devs_time(str); + if (ret == SCANNER_ERR_OK) + { + strcpy((char*)data, str.c_str()); + } + return ret; +} int hg_scanner::on_color_mode_changed(int& color_mode) { return SCANNER_ERR_DEVICE_NOT_SUPPORT; @@ -4559,6 +4570,14 @@ int hg_scanner::get_motor_board_ver(string& ver) { return SCANNER_ERR_DEVICE_NOT_SUPPORT; } +int hg_scanner::set_devs_time(string times) +{ + return SCANNER_ERR_DEVICE_NOT_SUPPORT; +} +int hg_scanner::get_devs_time(string& times) +{ + return SCANNER_ERR_DEVICE_NOT_SUPPORT; +} int hg_scanner::set_device_model(string sts) { return SCANNER_ERR_DEVICE_NOT_SUPPORT; diff --git a/hgdriver/hgdev/hg_scanner.h b/hgdriver/hgdev/hg_scanner.h index d40380d..ffa6576 100644 --- a/hgdriver/hgdev/hg_scanner.h +++ b/hgdriver/hgdev/hg_scanner.h @@ -239,6 +239,7 @@ protected: int setting_get_devs_log(void* data, long* len); int setting_set_language(void* data, long* len); int setting_get_motor_ver(void* data, long* len); + int setting_get_initial_boot_time(void* data, long* len); virtual void on_device_reconnected(void); @@ -542,7 +543,10 @@ public: virtual int set_auto_flat(int data) = 0; //设置自动平场校正 // data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color) virtual int set_updata0303(void) ; - virtual int get_motor_board_ver(string &ver); //获取G239电机板的固件号 + virtual int get_motor_board_ver(string &ver); //获取G239电机板的固件号 //3399设备支持 + + virtual int set_devs_time(string times); //设置设备时间 //3399设备支持 + virtual int get_devs_time(string ×); //获取设备时间 //3399设备支持 }; diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index fdce7b8..c86fb23 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -172,8 +172,8 @@ hg_scanner_239::hg_scanner_239(const char* dev_name, int pid,usb_io* io) : hg_sc init_settings((jsontext4 + jsontext5 + jsontext6).c_str()); } hg_version_init_handle(); - - + string str; + get_devs_time(str); #ifdef OEM_HUAGAO wait_devsislock_.notify(); #endif @@ -354,6 +354,32 @@ int hg_scanner_239::get_motor_board_ver(string &ver) ver = control_fetch(setting3399::SR_GET_MBVERSION, 0, val); return ret; } +int hg_scanner_239::set_devs_time(string times) +{ + string path = "/usr/local/huago/PC_TIMES.txt"; + return write_control_device_files(path, times); +} +int hg_scanner_239::get_devs_time(string& times) +{ + string path = "/usr/local/huago/PC_TIMES.txt"; + char buf[128] = {0}; + int ret = read_control_device_files(path, times); + if (ret == SCANNER_ERR_NO_DATA) + { + hg_get_current_time(buf); + + ret = write_control_device_files(path,buf); + if (ret == SCANNER_ERR_OK) + { + ret = read_control_device_files(path, times); + } + } + if (ret != SCANNER_ERR_OK) + { + times = ""; + } + return ret; +} int hg_scanner_239::get_status(void) { std::lock_guard lock(io_lock_); @@ -436,7 +462,6 @@ int hg_scanner_239::get_front_data_size(void) } void hg_scanner_239::init_version(void) { - std::string fv(get_firmware_version()), sn(get_serial_num()); if (fv.empty() || sn.empty()) @@ -448,111 +473,50 @@ void hg_scanner_239::init_version(void) string year = fv.substr(4, 2); string devType; string year_date = fv.substr(4, 6); - //if ((dev == "G1" || dev == "G2") && ver == "393") - //{ - // if (date >= "A1220" && date <= "A1230") - // { - // if (date >= "A1224") - // { - // is_kernelsnap_devsislock = true; - // } - // } - // else if (date >= "B0326" && date <= "B0334") - // { - // if (date >= "B0333") - // { - // is_kernelsnap_devsislock = true; - // } - // } - // else if (date >= "B0429") - // { - // if (date >= "B1031" || date == "B0500") - // { - // is_kernelsnap_devsislock = true; - // } - // } - - //} - //else if (dev == "G4" && ver == "393") - //{ - // if (date >= "B1108") - // { - // is_kernelsnap_devsislock = true; - // } - //} - - - - if (dev == "G1" || dev == "G2") { - firmware_sup_wait_paper_ = year_date >= "3B0431" ? true : false; - firmware_sup_log_export_ = year_date >= "3B0429" ? true : false; - firmware_sup_pick_strength_ = year_date >= "3B0830" ? true : false; - firmware_sup_wake_device_ = year_date >= "3B0830" ? true : false; - firmware_sup_color_corr_ = year >= "3C" ? true : false; - firmware_sup_double_img = year >= "3C" ? true : false; - firmware_sup_devs_lock_ = year_date >= "3b0500" ? true : false; + firmware_sup_wait_paper_ = year_date.compare("3B0431") >= 0 ? true : false; + firmware_sup_log_export_ = year_date.compare("3B0429") >= 0 ? true : false; + firmware_sup_pick_strength_ = year_date.compare("3B0830") >= 0 ? true : false; + firmware_sup_wake_device_ = year_date.compare("3B0830") >= 0 ? true : false; + firmware_sup_color_corr_ = year.compare("3C") >= 0 ? true : false; + firmware_sup_double_img = year.compare("3C") >= 0 ? true : false; + firmware_sup_devs_lock_ = year_date.compare("3B0500") >= 0 ? true : false; firmware_sup_dpi_300 = false; - firmware_sup_dpi_600 = date >= "A1227" ? true : false; - firmware_sup_auto_speed_ = year >= "3C" ? true : false; - firmware_sup_morr_ = year_date >= "3C0518" ? true : false; - firmware_sup_color_fill_ = year >= "3C" ? true : false; + firmware_sup_dpi_600 = date.compare("A1227") >= 0 ? true : false; + firmware_sup_auto_speed_ = year.compare("3C") >= 0 ? true : false; + firmware_sup_morr_ = year_date.compare("3C0518") >= 0 ? true : false; + firmware_sup_color_fill_ = year.compare("3B03C830") >= 0 ? true : false; } else { - firmware_sup_wait_paper_ = year_date >= "3B0629" ? true : false; + firmware_sup_wait_paper_ = year_date.compare("3B0629") >= 0 ? true : false; firmware_sup_log_export_ = true; firmware_sup_pick_strength_ = false; //不支持 - firmware_sup_wake_device_ = year_date >= "3C0518" ? true : false; - firmware_sup_color_corr_ = year >= "3C" ? true : false; + firmware_sup_wake_device_ = year_date.compare("3C0518") >= 0 ? true : false; + firmware_sup_color_corr_ = year.compare("3C") >= 0 ? true : false; firmware_sup_double_img = false; //不支持 - firmware_sup_devs_lock_ = year >= "3C" ? true : false; + firmware_sup_devs_lock_ = year.compare("3C") >= 0 ? true : false; firmware_sup_dpi_300 = false; firmware_sup_dpi_600 = true; - firmware_sup_auto_speed_ = year >= "3C" ? true : false; - firmware_sup_morr_ = year_date >= "3C0518" ? true : false; - firmware_sup_color_fill_ = year >= "3C" ? true : false; + firmware_sup_auto_speed_ = year.compare("3C") >= 0 ? true : false; + firmware_sup_morr_ = year_date.compare("3C0518") >= 0 ? true : false; + firmware_sup_color_fill_ = year.compare("3C") >= 0 ? true : false; } - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_wait_paper_:%s\r\n", firmware_sup_wait_paper_ ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_log_export_:%s\r\n", firmware_sup_log_export_ ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_pick_strength_:%s\r\n", firmware_sup_pick_strength_ ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_color_corr_:%s\r\n", firmware_sup_color_corr_ ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_double_img:%s\r\n", firmware_sup_double_img ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_devs_lock_:%s\r\n", firmware_sup_devs_lock_ ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_dpi_300:%s\r\n", firmware_sup_dpi_300 ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_dpi_600:%s\r\n", firmware_sup_dpi_600 ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_auto_speed_:%s\r\n", firmware_sup_auto_speed_ ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_morr_:%s\r\n", firmware_sup_morr_ ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_color_fill_:%s\r\n", firmware_sup_color_fill_ ? "enable" : "close"); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware version: %s\n", fv.c_str()); - - //is_kernelsnap_239_220429_ = date >= "B0429" ? true : false; - //is_kernelsnap_239_220430_ = date >= "B0430" ? true : false; - - //if (dev == "G1" || dev == "G2" ) - //{ - // is_kernelsnap_239_211209_ = date >= "A1209" ? (is_kernelsnap_239_211209_ = atoi(get_fpga().c_str()) >= 35211210) : false;//基本用不到了 - // is_kernelsnap_239_220830_ = date >= "B0830" ? true: false; - // is_kernelsnap_239_221027_ = date >= "B1027" ? true : false; - // is_kernelsnap_239_3C_ = year >= "3C" ? true : false; - // - // is_kernelsnap_239_220500_ = date >= "B0500" ? true : false; - - // is_kernelsnap_211227_ = date <= "A1227" ? true : false; - - //} - //else - //{ - // //is_kernelsnap_439_3C0606 = date >= "C0606" ? true : false; - // is_kernelsnap_239_3C_ = date >= "C0606" ? true : false; - // - - //} - - + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_wait_paper_:%s\r\n", firmware_sup_wait_paper_ ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_log_export_:%s\r\n", firmware_sup_log_export_ ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_pick_strength_:%s\r\n", firmware_sup_pick_strength_ ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_color_corr_:%s\r\n", firmware_sup_color_corr_ ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_double_img:%s\r\n", firmware_sup_double_img ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_devs_lock_:%s\r\n", firmware_sup_devs_lock_ ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_dpi_300:%s\r\n", firmware_sup_dpi_300 ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_dpi_600:%s\r\n", firmware_sup_dpi_600 ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_auto_speed_:%s\r\n", firmware_sup_auto_speed_ ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_morr_:%s\r\n", firmware_sup_morr_ ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware_sup_color_fill_:%s\r\n", firmware_sup_color_fill_ ? "enable" : "close"); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware version: %s\n", fv.c_str()); } int hg_scanner_239::writedown_device_configuration(bool type, setting_hardware::HGSCANCONF_3399* dev_conf) { @@ -798,10 +762,6 @@ int hg_scanner_239::discard_all_images(void) } } std::this_thread::sleep_for(std::chrono::milliseconds(1000)); - //if (is_read_int) - //{ - // init_version(); - //} if (pre_int) VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "prev-connection has left %d interrupt packet(s) && %d image(s).\n", pre_int, pre_img); @@ -1145,6 +1105,97 @@ void hg_scanner_239::thread_correction(void) this_thread::sleep_for(chrono::milliseconds(10)); } } +int hg_scanner_239::read_control_device_files(std::string file_path, std::string& file_str) +{ + std::lock_guard lock(io_lock_); + + string path = file_path; + if (path.empty()) + { + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "read_control_device_files is fail path is %s\n", path.empty() ? "NULL" : path.c_str()); + return SCANNER_ERR_NO_DATA; + } + + int ret = SCANNER_ERR_OK, + len = path.size(), + lenstr = file_str.size(), + get_buffer_size = 0; + + io_->set_timeout(3000); + + ret = write_register(setting3399::SR_SET_JSON_PATH, len); + if (ret == SCANNER_ERR_OK) + { + ret = io_->write_bulk(&path[0], &len); + } + + if (ret == SCANNER_ERR_OK) + { + ret = read_register(setting3399::SR_GET_JSON_SIZE, &get_buffer_size); + } + + if (ret == SCANNER_ERR_OK) + { + ret = write_register(setting3399::SR_GET_JSON, get_buffer_size); + } + + if (ret == SCANNER_ERR_OK) + { + file_str.resize(get_buffer_size); + ret = io_->read_bulk(&file_str[0], &get_buffer_size); + if (file_str.empty()) + { + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "read_control_device_files get buffer is NULL %d\n", get_buffer_size); + return SCANNER_ERR_NO_DATA; + } + } + return ret; +} +int hg_scanner_239::write_control_device_files(std::string file_path, std::string file_str) +{ + std::lock_guard lock(io_lock_); + + string path = file_path; + string str = file_str; + if (path.empty() || str.empty()) + { + VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO ," write_control_device_files is fail path is %s str is %s\n", path.empty() ? "NULL" : path.c_str(), str.empty() ? "NULL":str.c_str()); + return SCANNER_ERR_INVALID_PARAMETER; + } + + int ret = SCANNER_ERR_OK; + int len = path.size(), + lenstr = str.size(); + + io_->set_timeout(2000); + ret = write_register(setting3399::SR_SET_JSON_PATH, len); + if (ret != SCANNER_ERR_OK) + { + LOG_INFO(LOG_LEVEL_DEBUG_INFO,"write_control_device_files write_register [SR_SET_JSON_PATH] is fail \n"); + return ret; + } + ret = io_->write_bulk(&path[0], &len); + if (ret != SCANNER_ERR_OK) + { + LOG_INFO(LOG_LEVEL_DEBUG_INFO, "write_control_device_files write_bulk path is fail \n"); + return ret; + } + ret = write_register(setting3399::SR_SET_JSON, lenstr); + if (ret != SCANNER_ERR_OK) + { + LOG_INFO(LOG_LEVEL_DEBUG_INFO, "write_control_device_files write_register [SR_SET_JSON] is fail \n"); + return ret; + } + ret = io_->write_bulk(&str[0], &lenstr); + if (ret != SCANNER_ERR_OK) + { + LOG_INFO(LOG_LEVEL_DEBUG_INFO, "write_control_device_files write_bulk str is fail \n"); + return ret; + } + //VLOG_MINI_3(LOG_LEVEL_DEBUG_INFO, "log path:%s ret:%s buffersize: %d\n", logpath.c_str(), hg_scanner_err_name(ret), buffersize); + //return ret; + return SCANNER_ERR_OK; +} void hg_scanner_239::thread_get_dves_image(void) { char buf[64]; @@ -1543,7 +1594,6 @@ std::string hg_scanner_239::get_ip(void) } std::string hg_scanner_239::get_device_model(void) { - std::lock_guard lock(io_lock_); string device_model = "/home/linaro/microtek_sn"; string str; @@ -1551,27 +1601,7 @@ std::string hg_scanner_239::get_device_model(void) int buffersize = 0; int len = device_model.size(); - io_->set_timeout(3000); - ret = write_register(setting3399::SR_SET_JSON_PATH, len); - if (ret != SCANNER_ERR_OK) - return ""; - - ret = io_->write_bulk(&device_model[0], &len); - if (ret != SCANNER_ERR_OK) - return ""; - - ret = read_register(setting3399::SR_GET_JSON_SIZE, &buffersize); - if (ret != SCANNER_ERR_OK || buffersize <= 0) - return ""; - - ret = write_register(setting3399::SR_GET_JSON, buffersize); - if (ret != SCANNER_ERR_OK || buffersize <= 0) - return ""; - - str.resize(buffersize); - ret = io_->read_bulk(&str[0], &buffersize); - if (ret != SCANNER_ERR_OK) - return "";; + read_control_device_files(device_model, str); return str; } @@ -1581,32 +1611,10 @@ int hg_scanner_239::set_device_model(string str) { return SCANNER_ERR_NO_DATA; } - std::lock_guard lock(io_lock_); + string device_model = "/home/linaro/microtek_sn"; - int ret = SCANNER_ERR_OK; - int buffersize = 0; - int len = device_model.size(); - int lenstr = str.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_model[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(&str[0], &lenstr); - if (ret != SCANNER_ERR_OK) - return ret; -; - return SCANNER_ERR_OK; + return write_control_device_files(device_model, str); } int hg_scanner_239::set_serial_num(string str) { @@ -1645,30 +1653,15 @@ int hg_scanner_239::set_clear_roller_num(void) } int hg_scanner_239::set_clear_history_num(void) { - 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); - } + string json_path = "/usr/local/huago/scannerinfo.json"; + string str; + int buffersize = 0; + int len = json_path.size(); + ret = read_control_device_files(json_path, str); std::string str2; json js = json::parse(str); @@ -1678,26 +1671,10 @@ int hg_scanner_239::set_clear_history_num(void) 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; + if (ret == SCANNER_ERR_OK) + { + ret = write_control_device_files(json_path, str2); + } } else { @@ -2078,8 +2055,6 @@ int hg_scanner_239::set_clean_paper_road() } int hg_scanner_239::get_dev_islock_file(int& islockfile) { - std::lock_guard lock(io_lock_); - if (!firmware_sup_devs_lock_) { VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "devs lock:%s \n", hg_scanner_err_description(SCANNER_ERR_DEVICE_NOT_SUPPORT)); @@ -2088,39 +2063,21 @@ int hg_scanner_239::get_dev_islock_file(int& islockfile) string device_log_path = "/var/log/black_list_file.txt"; string str; + int buffersize; - int ret = SCANNER_ERR_OK; - int buffersize = 0; - int len = device_log_path.size(); - - 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); - } + int ret = read_control_device_files(device_log_path, str); if (ret == SCANNER_ERR_OK && str.size() > 0) islockfile = std::stoi(str); else islockfile = -1; + buffersize = str.size(); VLOG_MINI_3(LOG_LEVEL_DEBUG_INFO, "get list file is:%s ret:%s buffersize: %d\n", device_log_path.c_str(), hg_scanner_err_description(ret), buffersize); return ret; } int hg_scanner_239::set_dev_islock_file(int islockfile) { - std::lock_guard lock(io_lock_); - if (!firmware_sup_devs_lock_) { VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "devs lock:%s \n", hg_scanner_err_description(SCANNER_ERR_DEVICE_NOT_SUPPORT)); @@ -2133,29 +2090,5 @@ int hg_scanner_239::set_dev_islock_file(int islockfile) string device_log_path = "/var/log/black_list_file.txt"; string str = std::to_string(islockfile); - int ret = SCANNER_ERR_OK; - int buffersize = 0; - int len = device_log_path.size(); - int lenstr = str.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(&str[0], &lenstr); - if (ret != SCANNER_ERR_OK) - return ret; - - //VLOG_MINI_3(LOG_LEVEL_DEBUG_INFO, "log path:%s ret:%s buffersize: %d\n", logpath.c_str(), hg_scanner_err_name(ret), buffersize); - //return ret; - return SCANNER_ERR_OK; + return write_control_device_files(device_log_path, str); } diff --git a/hgdriver/hgdev/hg_scanner_239.h b/hgdriver/hgdev/hg_scanner_239.h index c16733d..cf82650 100644 --- a/hgdriver/hgdev/hg_scanner_239.h +++ b/hgdriver/hgdev/hg_scanner_239.h @@ -48,6 +48,9 @@ class hg_scanner_239 : public hg_scanner void init_version(void); void thread_get_dves_image(void); void thread_correction(void); + + int write_control_device_files(std::string file_path,std::string file_str); + int read_control_device_files(std::string file_path, std::string &file_str); protected: virtual void on_device_reconnected(void) override; virtual int on_scanner_closing(bool force) override; @@ -136,5 +139,8 @@ public: // data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color) virtual int get_motor_board_ver(string &ver); + + virtual int set_devs_time(string times); //设置设备时间 //3399设备支持 + virtual int get_devs_time(string& times); //获取设备时间 //3399设备支持 }; diff --git a/hgdriver/hgdev/scanner_manager.cpp b/hgdriver/hgdev/scanner_manager.cpp index 874cfbb..a9e0fe2 100644 --- a/hgdriver/hgdev/scanner_manager.cpp +++ b/hgdriver/hgdev/scanner_manager.cpp @@ -536,23 +536,25 @@ scanner_err hg_scanner_mgr::get_about_info(scanner_handle h, void* data, unsigne bytes += sizeof(g_logo); - bytes += strlen(GET_LANG(BRAND_APP_NAME, &islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_TITLE_VERSION,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_TITLE_COPYRIGHT,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_COPYRIGHT,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_TITE_MANUFACTOR,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_TITLE_URL,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(url_en.c_str(), &islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_APP_NAME, &islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_TITLE_VERSION,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_TITLE_COPYRIGHT,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_COPYRIGHT,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_TITE_MANUFACTOR,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_TITLE_URL,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(url_en.c_str(), &islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(url_link_en.c_str(), &islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_TITLE_TEL,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_COMPANY_TEL,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_TITLE_ADDRESS,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_COMPANY_ADDRESS,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_TITLE_GPS,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_COMPANY_GPS,&islang)) + 8; append_cnt++; - bytes += strlen(GET_LANG(BRAND_URL_GPS,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(url_link_en.c_str(), &islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_TITLE_TEL,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_COMPANY_TEL,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_TITLE_ADDRESS,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_COMPANY_ADDRESS,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_TITLE_GPS,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_COMPANY_GPS,&islang)) + 8; append_cnt++; + bytes += strlen(GET_LANG(BRAND_URL_GPS,&islang)) + 8; append_cnt++; + + // bytes += 5 * sizeof(tmp.appendix[0]); #ifndef BRAND_DISPLAY_ALL_EXPAND @@ -566,6 +568,7 @@ scanner_err hg_scanner_mgr::get_about_info(scanner_handle h, void* data, unsigne bytes += sizeof(tmp.appendix[0]) + BRAND_INFO_MAX_LENGTH + 8 + strlen(GET_LANG(BRAND_TITLE_IP,&islang)) + 8; append_cnt++; bytes += sizeof(tmp.appendix[0]) + 28 + strlen(GET_LANG(BRAND_TITLE_ROLLER_COUNT,&islang)) + 8; append_cnt++; bytes += sizeof(tmp.appendix[0]) + 28 + strlen(GET_LANG(BRAND_TITLE_HISTORY_COUNT,&islang)) + 8; append_cnt++; + bytes += sizeof(tmp.appendix[0]) + 28 + strlen(GET_LANG(BRAND_TITLE_DEVICE_INITIAL_POWER_ON_TIME, &islang)) + 8; append_cnt++; bytes += sizeof(tmp.appendix[0]); append_cnt++; } @@ -625,6 +628,11 @@ scanner_err hg_scanner_mgr::get_about_info(scanner_handle h, void* data, unsigne info = scanner->get_device_model(); if (!info.empty()) set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITLE_DEVICE_MODEL, &islang), info.c_str(), NULL); + ret = scanner->get_devs_time(info); + if (ret == SCANNER_ERR_OK && !info.empty()) + { + set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITLE_ROLLER_COUNT, &islang), info.c_str(), NULL); + } ret = scanner->get_roller_num(rolls); if (ret == SCANNER_ERR_OK) { @@ -858,7 +866,8 @@ scanner_err hg_scanner_mgr::hg_scanner_get_parameter(scanner_handle h, const cha strcmp(SANE_STD_OPT_NAME_DEVICE_IP_ADDR, name) == 0 || strcmp(SANE_STD_OPT_NAME_ROLLER_COUNT, name) == 0 || strcmp(SANE_STD_OPT_NAME_TOTAL_COUNT, name) == 0 || - strcmp(SANE_STD_OPT_NAME_MOTOR_VER, name) == 0) + strcmp(SANE_STD_OPT_NAME_MOTOR_VER, name) == 0 || + strcmp(SANE_STD_OPT_NAME_INITIAL_BOOT_TIME, name) == 0) return (scanner_err)SCAN_PTR(h)->set_setting(name, data, len); } diff --git a/hgsane/sane_hg_mdw.cpp b/hgsane/sane_hg_mdw.cpp index 5852da9..35819c4 100644 --- a/hgsane/sane_hg_mdw.cpp +++ b/hgsane/sane_hg_mdw.cpp @@ -340,7 +340,7 @@ namespace local_utility TRY_MATCH(FOLD_TYPE); TRY_MATCH(COLOR_CORRECTION); TRY_MATCH(LANGUAGE); - + TRY_MATCH(INITIAL_BOOT_TIME); //TRY_MATCH(HISTORY_COUNT); //TRY_MATCH(DRIVER_VERSION); //TRY_MATCH(MANUFACTURER); @@ -392,6 +392,7 @@ namespace local_utility FIX_ID_TO_NAME(DRIVER_LOG, 255); FIX_ID_TO_NAME(DEVICE_LOG, 255); FIX_ID_TO_NAME(MOTOR_VER, 255); + FIX_ID_TO_NAME(INITIAL_BOOT_TIME, 255); FIX_ID_TO_NAME(DEVICE_SERIAL_NO, 255); FIX_ID_TO_NAME(FIRMWARE_VERSION, 255);