备份还原和校验时间功能需要判断固件版本

This commit is contained in:
yangjiaxuan 2023-10-26 10:49:32 +08:00
parent a3334457bf
commit 0db35e4b3b
4 changed files with 30 additions and 9 deletions

View File

@ -393,6 +393,8 @@ protected:
bool firmware_sup_history_cnt; //固件支持 清除历史张数 3288 G300 220303 bool firmware_sup_history_cnt; //固件支持 清除历史张数 3288 G300 220303
bool firmware_sup_double_check; //固件支持 双张校验 139 239-231017 300-231021 bool firmware_sup_double_check; //固件支持 双张校验 139 239-231017 300-231021
bool firmware_sup_dirty_check; //固件支持 脏污检测 231021 bool firmware_sup_dirty_check; //固件支持 脏污检测 231021
bool firmware_sup_backup_restore; //固件支持 备份还原 231021
bool firmware_sup_boardTime; //固件支持 板级时间校验 231022
bool firmware_sup_device_7010; //G300 设备但是7010 2023/9/21 bool firmware_sup_device_7010; //G300 设备但是7010 2023/9/21
int mat_width; int mat_width;
int mat_height; int mat_height;

View File

@ -430,6 +430,9 @@ int hg_scanner_239::get_devs_disk(string& disk)
} }
int hg_scanner_239::set_restore() int hg_scanner_239::set_restore()
{ {
if (!firmware_sup_backup_restore)
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
std::lock_guard<std::mutex> lock(io_lock_); std::lock_guard<std::mutex> lock(io_lock_);
int ret = write_register(setting3399::SR_BACKUP_RESTORES_HUAGODIR, 2); int ret = write_register(setting3399::SR_BACKUP_RESTORES_HUAGODIR, 2);
@ -437,6 +440,9 @@ int hg_scanner_239::set_restore()
} }
int hg_scanner_239::set_backup() int hg_scanner_239::set_backup()
{ {
if (!firmware_sup_backup_restore)
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
std::lock_guard<std::mutex> lock(io_lock_); std::lock_guard<std::mutex> lock(io_lock_);
int ret = write_register(setting3399::SR_BACKUP_RESTORES_HUAGODIR, 1); int ret = write_register(setting3399::SR_BACKUP_RESTORES_HUAGODIR, 1);
@ -538,6 +544,8 @@ void hg_scanner_239::init_version(void)
firmware_sup_double_check = year_date.compare("231017") >= 0 ? true : false; firmware_sup_double_check = year_date.compare("231017") >= 0 ? true : false;
firmware_sup_dirty_check = year_date.compare("231021") >= 0 ? true : false; firmware_sup_dirty_check = year_date.compare("231021") >= 0 ? true : false;
firmware_sup_backup_restore = year_date.compare("231021") >= 0 ? true : false;
firmware_sup_boardTime = year_date.compare("231022") >= 0 ? true : false;
if (dev == "G1" || dev == "G2") if (dev == "G1" || dev == "G2")
{ {

View File

@ -108,6 +108,8 @@ hg_scanner_300::hg_scanner_300(const char* dev_name,int pid, usb_io* io) :
firmware_sup_morr_ = year_date.compare("230724") >= 0 ? true : false; firmware_sup_morr_ = year_date.compare("230724") >= 0 ? true : false;
firmware_sup_double_check = year_date.compare("231017") >= 0 ? true : false; firmware_sup_double_check = year_date.compare("231017") >= 0 ? true : false;
firmware_sup_dirty_check = year_date.compare("231021") >= 0 ? true : false; firmware_sup_dirty_check = year_date.compare("231021") >= 0 ? true : false;
firmware_sup_backup_restore = year_date.compare("231021") >= 0 ? true : false;
firmware_sup_boardTime = year_date.compare("231022") >= 0 ? true : false;
#ifndef MAPPING_FUNCTION_IN_BASE #ifndef MAPPING_FUNCTION_IN_BASE
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化 init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化
@ -867,8 +869,11 @@ int hg_scanner_300::get_devs_distortion_check_val(float& data, int dpi, int dir)
data = *(float*)&val; data = *(float*)&val;
} }
void hg_scanner_300::update_boarddatetime() int hg_scanner_300::update_boarddatetime()
{ {
if (!firmware_sup_boardTime)
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
USBCB usbcb = { setting3288dsp::GET_DATETIME,0,0 }; USBCB usbcb = { setting3288dsp::GET_DATETIME,0,0 };
int len = sizeof(usbcb); int len = sizeof(usbcb);
int ret = io_->write_bulk(&usbcb, &len); int ret = io_->write_bulk(&usbcb, &len);
@ -879,7 +884,7 @@ void hg_scanner_300::update_boarddatetime()
if (usbcb.u32_Count == 512 || usbcb.u32_Count == 0) if (usbcb.u32_Count == 512 || usbcb.u32_Count == 0)
{ {
VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME error data lenght\n", 0); VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME error data lenght\n", 0);
return; return SCANNER_ERR_ACCESS_DENIED;
} }
std::string datenow; std::string datenow;
datenow.resize(usbcb.u32_Count); datenow.resize(usbcb.u32_Count);
@ -889,10 +894,9 @@ void hg_scanner_300::update_boarddatetime()
else else
{ {
VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME usb communication failed\n", 0); VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME usb communication failed\n", 0);
return; return SCANNER_ERR_ACCESS_DENIED;
} }
auto now = std::chrono::system_clock::now(); auto now = std::chrono::system_clock::now();
auto timet = std::chrono::system_clock::to_time_t(now); auto timet = std::chrono::system_clock::to_time_t(now);
auto localTime = *std::gmtime(&timet); auto localTime = *std::gmtime(&timet);
@ -911,10 +915,9 @@ void hg_scanner_300::update_boarddatetime()
else else
{ {
VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME failed \n", 0); VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME failed \n", 0);
return; return SCANNER_ERR_ACCESS_DENIED;
} }
USBCB usbcb2 = { setting3288dsp::GET_DATETIME,0,0 }; USBCB usbcb2 = { setting3288dsp::GET_DATETIME,0,0 };
len = sizeof(usbcb); len = sizeof(usbcb);
ret = io_->write_bulk(&usbcb2, &len); ret = io_->write_bulk(&usbcb2, &len);
@ -924,7 +927,7 @@ void hg_scanner_300::update_boarddatetime()
if (usbcb2.u32_Count == 512 || usbcb2.u32_Count == 0) if (usbcb2.u32_Count == 512 || usbcb2.u32_Count == 0)
{ {
VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME error data lenght\n", 0); VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME error data lenght\n", 0);
return; return SCANNER_ERR_ACCESS_DENIED;
} }
std::string datenow; std::string datenow;
datenow.resize(usbcb2.u32_Count); datenow.resize(usbcb2.u32_Count);
@ -934,8 +937,10 @@ void hg_scanner_300::update_boarddatetime()
else else
{ {
VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME usb communication failed\n", 0); VLOG_MINI_1(LOG_LEVEL_FATAL, "GET_DATETIME usb communication failed\n", 0);
return; return SCANNER_ERR_ACCESS_DENIED;
} }
return SCANNER_ERR_OK;
} }
int hg_scanner_300::get_correction_image(int inx , int dpi, int mode) int hg_scanner_300::get_correction_image(int inx , int dpi, int mode)
@ -1643,6 +1648,9 @@ int hg_scanner_300::get_devs_disk(string& disk)
} }
int hg_scanner_300::set_restore() int hg_scanner_300::set_restore()
{ {
if (!firmware_sup_backup_restore)
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
USBCB usbcb = { 0,0,0 }; USBCB usbcb = { 0,0,0 };
//usbcb.u32_CMD = setting3288dsp::SET_BACKUP_CONFIG; //usbcb.u32_CMD = setting3288dsp::SET_BACKUP_CONFIG;
int len = sizeof(usbcb); int len = sizeof(usbcb);
@ -1667,6 +1675,9 @@ int hg_scanner_300::set_restore()
int hg_scanner_300::set_backup() int hg_scanner_300::set_backup()
{ {
if (!firmware_sup_backup_restore)
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
USBCB usbcb = { 0,0,0 }; USBCB usbcb = { 0,0,0 };
int len = sizeof(usbcb); int len = sizeof(usbcb);
usbcb.u32_CMD = setting3288dsp::SET_BACKUP_CONFIG; usbcb.u32_CMD = setting3288dsp::SET_BACKUP_CONFIG;

View File

@ -66,7 +66,7 @@ private:
void writedown_image_configuration(void); void writedown_image_configuration(void);
void printf_devconfig(setting_hardware::HGSCANCONF_3288 *d = NULL); void printf_devconfig(setting_hardware::HGSCANCONF_3288 *d = NULL);
int get_devs_distortion_check_val(float& data, int dpi, int dir);//获取设备畸变值 DPI=1、2、3 dir = 0,1; int get_devs_distortion_check_val(float& data, int dpi, int dir);//获取设备畸变值 DPI=1、2、3 dir = 0,1;
void update_boarddatetime(); int update_boarddatetime();
///////////////////////7010专有协议获取校正数据////////////////////// ///////////////////////7010专有协议获取校正数据//////////////////////
//inx:序号// //inx:序号//