新增获取设备电机固件版本

This commit is contained in:
13038267101 2023-06-16 18:01:28 +08:00
parent 8124b95748
commit c44a7bad03
4 changed files with 38 additions and 8 deletions

View File

@ -669,6 +669,7 @@ void hg_scanner::init_setting_func_map(void)
setting_map_[SANE_STD_OPT_NAME_TOTAL_COUNT] = &hg_scanner::setting_get_history_count;
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;
}
std::string hg_scanner::setting_name_from(const char* n_or_id, int* id)
{
@ -2296,7 +2297,7 @@ int hg_scanner::setting_auto_pick_paper_threshold(void* data, long* len)
int hg_scanner::setting_auto_paper_scan(void* data, long* len)
{
is_auto_paper_scan = *((bool *)data);
if (!is_kernelsnap_439_220430_ && is_auto_paper_scan)
if (!is_kernelsnap_239_220430_ && is_auto_paper_scan)
{
is_auto_paper_scan = *(bool*)data = false;
//notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NOT_SUPPORTED), SANE_EVENT_ERROR, SCANNER_ERR_DEVICE_NOT_SUPPORT);
@ -2530,6 +2531,16 @@ int hg_scanner::setting_set_language(void* data, long* len)
return err;
}
int hg_scanner::setting_get_motor_ver(void* data, long* len)
{
string str;
int ret = get_motor_board_ver(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;
@ -4190,6 +4201,10 @@ int hg_scanner::set_updata0303(void)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner::get_motor_board_ver(string& ver)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner::set_device_model(string sts)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;

View File

@ -234,6 +234,8 @@ protected:
int setting_get_history_count(void* data, long* len);
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);
virtual void on_device_reconnected(void);
virtual int on_scanner_closing(bool force);
@ -349,12 +351,14 @@ protected:
bool is_kernelsnap3288_221106_; //G300 3288 在221106版本支持真实300dpi
bool is_kernelsnap3288_230210_; //G300 3288 在230210版本支持真实600dpi
bool is_kernelsnap3288_230303_; //G300 3288 支持清除历史扫描张数
bool is_kernelsnap_439_220430_; //待纸扫描
bool is_kernelsnap_devsislock; //支持设备锁的版本
bool is_kernelsnap_239_3C_; //支持偏色校正的版本,自适应配置
bool is_kernelsnap_439_3C0606; //支持偏色校正的版本
bool is_kernelsnap_239_220500_; //支持双张保留的版本
bool is_kernelsnap_239_220429_; //第一个安陆版本,支持设备日志导出
bool is_kernelsnap_239_220430_; //待纸扫描
bool is_kernelsnap_211227_; //此版本以下不支持真实dpi 只设置1下去
@ -517,6 +521,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) ;
virtual int get_motor_board_ver(string &ver); //获取G239电机板的固件号
};

View File

@ -335,6 +335,15 @@ int hg_scanner_239::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_239::get_motor_board_ver(string &ver)
{
std::lock_guard<std::mutex> lock(io_lock_);
int val = 0,
ret = read_register(setting3399::SR_GET_MBVERSION_LENGHT, &val);
ver = control_fetch(setting3399::SR_GET_MBVERSION, 0, val);
return ret;
}
int hg_scanner_239::get_status(void)
{
std::lock_guard<std::mutex> lock(io_lock_);
@ -470,7 +479,7 @@ void hg_scanner_239::init_version(void)
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware version: %s\n", fv.c_str());
is_kernelsnap_239_220429_ = date >= "B0429" ? true : false;
is_kernelsnap_439_220430_ = date >= "B0430" ? true : false;
is_kernelsnap_239_220430_ = date >= "B0430" ? true : false;
if (dev == "G1" || dev == "G2" )
{
@ -487,13 +496,13 @@ void hg_scanner_239::init_version(void)
,is_kernelsnap_239_211209_:%d \
,is_kernelsnap_239_220830_:%d \
,is_kernelsnap_239_221027_:%d \
,is_kernelsnap_439_220430_:%d \
,is_kernelsnap_239_220430_:%d \
,is_kernelsnap_239_3C_:%d\n"
, fv.c_str()
, is_kernelsnap_239_211209_
, is_kernelsnap_239_220830_
, is_kernelsnap_239_221027_
, is_kernelsnap_439_220430_
, is_kernelsnap_239_220430_
, is_kernelsnap_239_3C_);
}
else
@ -503,9 +512,9 @@ void hg_scanner_239::init_version(void)
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO \
, "is_kernelsnap_239_3C_:%d \
, is_kernelsnap_439_220430_:%d\r\n" \
, is_kernelsnap_239_220430_:%d\r\n" \
, is_kernelsnap_239_3C_ \
, is_kernelsnap_439_220430_);
, is_kernelsnap_239_220430_);
}
@ -1012,7 +1021,7 @@ int hg_scanner_239::on_is_auto_paper(bool isautopaper)
{
int val = 0,
ret = SCANNER_ERR_OK;
if (is_kernelsnap_439_220430_ || !isautopaper)
if (is_kernelsnap_239_220430_ || !isautopaper)
{
dev_conf_.params_3399.is_autopaper = isautopaper;

View File

@ -135,5 +135,6 @@ public:
virtual int set_auto_flat(int data); //设置自动平场校正
// 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);
};