在线程里面进行升级,初始化新增500ms睡眠
This commit is contained in:
parent
d807da6eb8
commit
d1c1f9f512
|
@ -158,7 +158,7 @@ hg_scanner::hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io, i
|
|||
, is_dpi_color_check(false), save_dpi_color_check_val(0.0f), is_auto_falt(false), HGVersion_mgr_(NULL), HGVersion_Init_(NULL)
|
||||
, HGVersion_Islock_(NULL), HGVersion_Postlog_(NULL), HGVersion_Free_(NULL), Dynamicopen_HGVersion_pHandle_(NULL), pid_(pid), fetching_id_(-1)
|
||||
, is_kernelsnap3288_230210_(false), color_correction_(false), is_kernelsnap_3C_cccc(false), is_kernelsnap_220500_(false), is_kernelsnap3288_230303_(false)
|
||||
, is_kernelsnap_211227_(false),is_auto_paper_scan_exit_time(60), is_read_int(false)
|
||||
, is_kernelsnap_211227_(false),is_auto_paper_scan_exit_time(60), is_read_int(true)
|
||||
{
|
||||
#if !defined(_WIN32) && !defined(_WIN64) &&defined(x86_64)
|
||||
isx86_Advan_ = false;
|
||||
|
@ -223,8 +223,8 @@ hg_scanner::hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io, i
|
|||
wait_img_.set_debug_info("Image");
|
||||
wait_usb_result_.set_debug_info("start");
|
||||
wait_devsislock_.set_debug_info("Devsislock");
|
||||
//wait_read_int.set_debug_info("read_int");
|
||||
//thread_read_int_.reset(new std::thread(&hg_scanner::thread_read_int, this));
|
||||
wait_read_int.set_debug_info("read_int");
|
||||
thread_read_int_.reset(new std::thread(&hg_scanner::thread_read_int, this));
|
||||
thread_usb_read_.reset(new std::thread(&hg_scanner::thread_handle_usb, this));
|
||||
thread_img_handle_.reset(new std::thread(&hg_scanner::thread_image_handle, this));
|
||||
|
||||
|
@ -347,15 +347,16 @@ void hg_scanner::thread_devslock_handle(void)
|
|||
}
|
||||
void hg_scanner::thread_read_int(void)
|
||||
{
|
||||
if (run_)
|
||||
if (is_read_int && pid_ == 0x0300)
|
||||
{
|
||||
wait_read_int.wait();
|
||||
is_read_int = true;
|
||||
notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_DEVS_BOOTING, SANE_EVENT_STATUS, status_);
|
||||
discard_all_images();
|
||||
is_read_int = false;
|
||||
//discard_all_images();
|
||||
set_updata0303();
|
||||
notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_DEVS_START_SUCCES, SANE_EVENT_STATUS, status_);
|
||||
}
|
||||
is_read_int = false;
|
||||
}
|
||||
void hg_scanner::thread_handle_usb(void)
|
||||
{
|
||||
|
@ -3109,7 +3110,7 @@ int hg_scanner::close(bool force)
|
|||
wait_usb_.notify();
|
||||
wait_img_.notify();
|
||||
wait_devsislock_.notify();
|
||||
//wait_read_int.notify();
|
||||
wait_read_int.notify();
|
||||
if(!scan_life_)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(io_lock_);
|
||||
|
@ -4015,6 +4016,10 @@ int hg_scanner::set_auto_flat(int data)
|
|||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
int hg_scanner::set_updata0303(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int hg_scanner::set_device_model(string sts)
|
||||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
|
|
|
@ -554,7 +554,7 @@ 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) ;
|
||||
};
|
||||
|
||||
#ifdef UOS
|
||||
|
|
|
@ -91,8 +91,8 @@ hg_scanner_300::hg_scanner_300(const char* dev_name,int pid, usb_io* io) : hg_sc
|
|||
else
|
||||
init_settings((jsontext3 + jsontext4 + jsontext5).c_str());
|
||||
}
|
||||
//wait_read_int.notify();
|
||||
initdevice();
|
||||
wait_read_int.notify();
|
||||
}
|
||||
hg_scanner_300::~hg_scanner_300()
|
||||
{}
|
||||
|
@ -295,11 +295,6 @@ int hg_scanner_300::discard_all_images(void)
|
|||
}
|
||||
int hg_scanner_300::start(void)
|
||||
{
|
||||
//if (is_read_int)
|
||||
//{
|
||||
// VLOG_MINI_1(LOG_LEVEL_WARNING, "device status is(%s)\n", STATU_DESC_SCANNER_ERR_DEVICE_DEVS_BOOTING);
|
||||
// return SCANNER_ERR_DEVICE_DEVS_BOOTING;
|
||||
//}
|
||||
//StopWatch sw;
|
||||
// while (is_read_int)
|
||||
//{
|
||||
|
@ -324,6 +319,12 @@ int hg_scanner_300::start(void)
|
|||
return ret;
|
||||
|
||||
final_imgs_.clear();
|
||||
|
||||
if (is_read_int)
|
||||
{
|
||||
VLOG_MINI_1(LOG_LEVEL_WARNING, "device status is(%s)\n", STATU_DESC_SCANNER_ERR_DEVICE_DEVS_BOOTING);
|
||||
return SCANNER_ERR_DEVICE_DEVS_BOOTING;
|
||||
}
|
||||
ret = get_scan_is_sleep(val);
|
||||
if (!val && ret == SCANNER_ERR_OK)
|
||||
{
|
||||
|
@ -725,7 +726,7 @@ int hg_scanner_300::initdevice()
|
|||
}
|
||||
if (status_ != SCANNER_ERR_DEVICE_SLEEPING)
|
||||
{
|
||||
string fw = get_firmware_version();
|
||||
/*string fw = get_firmware_version();
|
||||
if (!fw.empty())
|
||||
{
|
||||
if (fw.substr(4, 6) == "230303")
|
||||
|
@ -753,7 +754,7 @@ int hg_scanner_300::initdevice()
|
|||
scanner_path += "update.zip";
|
||||
set_firmware_upgrade(scanner_path);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
if (status_ != SCANNER_ERR_DEVICE_SLEEPING)
|
||||
{
|
||||
|
@ -1214,6 +1215,39 @@ int hg_scanner_300::set_auto_flat(int data)
|
|||
VLOG_MINI_1(LOG_LEVEL_WARNING, "set_auto_flat ret: %s\n", hg_scanner_err_name(ret));
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_300::set_updata0303(void)
|
||||
{
|
||||
string fw = get_firmware_version();
|
||||
if (!fw.empty())
|
||||
{
|
||||
if (fw.substr(4, 6) == "230303")
|
||||
{
|
||||
#ifndef WIN32
|
||||
#ifdef OEM_HANWANG
|
||||
string libname = "libhwdriver.so";
|
||||
#elif defined(OEM_LISICHENG)
|
||||
string libname = "liblscdriver.so";
|
||||
#elif defined(OEM_CANGTIAN)
|
||||
string libname = "libctsdriver.so";
|
||||
#elif defined(OEM_ZHONGJING)
|
||||
string libname = "libzjdriver.so";
|
||||
#elif defined(OEM_ZIGUANG)
|
||||
string libname = "libzgdriver.so";
|
||||
#else
|
||||
string libname = "libhgdriver.so";
|
||||
#endif
|
||||
#else
|
||||
string libname = "scanner.dll";
|
||||
#endif
|
||||
|
||||
string scanner_path = hg_log::get_module_full_path(libname.c_str());
|
||||
scanner_path = scanner_path.substr(0, scanner_path.size() - libname.size());
|
||||
scanner_path += "update.zip";
|
||||
set_firmware_upgrade(scanner_path);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int hg_scanner_300::set_serial_num(string str)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(io_lock_);
|
||||
|
|
|
@ -110,5 +110,5 @@ public:
|
|||
virtual int get_devs_distortion_check_val(float& data)override;//获取设备畸变值 float to int;
|
||||
virtual int set_auto_flat(int data)override; //设置自动平场校正
|
||||
// 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)override;
|
||||
};
|
||||
|
|
|
@ -2446,7 +2446,7 @@ extern "C" { // avoid compiler exporting name in C++ style !!!
|
|||
return (SANE_Status)SCANNER_ERR_LANG_PAK_LOST;
|
||||
|
||||
local_utility::get_version(version_code);
|
||||
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
SANE_Status inner_sane_io_control(SANE_Handle h, unsigned long code, void* data, unsigned* len)
|
||||
|
|
Loading…
Reference in New Issue