This commit is contained in:
yangjiaxuan 2023-06-15 17:54:50 +08:00
commit f04ede8931
5 changed files with 93 additions and 190 deletions

View File

@ -29,6 +29,7 @@
#define BRAND_COMPANY_URL "www.hw99.com"
#define BRAND_COMPANY_URL_EN "www.hw99.com"
#define BRAND_URL_COMPANY_URL "https://www.hw99.com"
#define BRAND_URL_COMPANY_URL_EN "https://www.hw99.com"
// #define BRAND_TITLE_TEL "联系电话"
#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235"
#define BRAND_COMPANY_TEL "(010)82786854"
@ -62,6 +63,7 @@
#define BRAND_COMPANY_URL "www.lanxum.com"
#define BRAND_COMPANY_URL_EN "www.lanxum.com"
#define BRAND_URL_COMPANY_URL "http://www.lanxum.com"
#define BRAND_URL_COMPANY_URL_EN "http://www.lanxum.com"
// #define BRAND_TITLE_TEL "联系电话"
#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235"
#define BRAND_COMPANY_TEL "+86 010 82736600"
@ -94,6 +96,7 @@
#define BRAND_COMPANY_URL "www.cumtenn.com"
#define BRAND_COMPANY_URL_EN "www.cumtenn.com"
#define BRAND_URL_COMPANY_URL "http://www.cumtenn.com"
#define BRAND_URL_COMPANY_URL_EN "http://www.cumtenn.com"
//#define BRAND_TITLE_TEL "联系电话"
#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235"
#define BRAND_COMPANY_TEL "400-008-1300"
@ -126,6 +129,7 @@
#define BRAND_COMPANY_URL "www.microtek.com.cn"
#define BRAND_COMPANY_URL_EN "www.microtek.com"
#define BRAND_URL_COMPANY_URL "http://www.microtek.com.cn"
#define BRAND_URL_COMPANY_URL_EN "http://www.microtek.com"
//#define BRAND_TITLE_TEL "联系电话"
#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235"
#define BRAND_COMPANY_TEL "886-3-5772155"
@ -157,6 +161,7 @@
#define BRAND_TITLE_URL "\345\205\254\345\217\270\347\275\221\345\235\200"
#define BRAND_COMPANY_URL "www.uniscan.com"
#define BRAND_URL_COMPANY_URL "http://www.unisscan.com"
#define BRAND_URL_COMPANY_URL_EN "http://www.unisscan.com"
//#define BRAND_TITLE_TEL "联系电话"
#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235"
#define BRAND_COMPANY_TEL "400-700-8188"
@ -189,6 +194,7 @@
#define BRAND_COMPANY_URL "www.huagaochina.com"
#define BRAND_COMPANY_URL_EN "www.huagaochina.com"
#define BRAND_URL_COMPANY_URL "http://www.huagaochina.com"
#define BRAND_URL_COMPANY_URL_EN "http://www.huagaochina.com"
// #define BRAND_TITLE_TEL "联系电话"
#define BRAND_TITLE_TEL "\350\201\224\347\263\273\347\224\265\350\257\235"
#define BRAND_COMPANY_TEL "+86 0574 27974866"

View File

@ -668,7 +668,6 @@ void hg_scanner::init_setting_func_map(void)
setting_map_[SANE_STD_OPT_NAME_ROLLER_COUNT] = &hg_scanner::setting_get_roller_count;
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;
}
std::string hg_scanner::setting_name_from(const char* n_or_id, int* id)
{
@ -2118,11 +2117,7 @@ int hg_scanner::setting_skew_check_level(void* data, long* len)
int hg_scanner::setting_is_custom_gamma(void* data, long* len)
{
custom_gamma_ = *((bool*)data);
if ((pid_ == 0x439|| pid_ == 0x139 || pid_ == 0x239) && custom_gamma_)
{
*((bool*)data) = custom_gamma_ = false;
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
return SCANNER_ERR_OK;
}
int hg_scanner::setting_custom_gamma_data(void* data, long* len)
@ -2496,44 +2491,6 @@ int hg_scanner::setting_get_devs_log(void* data, long* len)
strcpy((char*)data, str.c_str());
return ret;
}
int hg_scanner::setting_set_language(void* data, long* len)
{
int err = SCANNER_ERR_OK;
LANATTR **pla = lang_get_supported_languages();
if (!pla)
err = SCANNER_ERR_DEVICE_NOT_SUPPORT;
else
{
std::string n(to_default_language((char*)data, nullptr)), now("");
int id = -1, cur = lang_get_cur_code_page();
for (int i = 0; pla[i]; ++i)
{
if (pla[i]->cp == cur)
now = pla[i]->name;
if (n == pla[i]->name)
{
id = pla[i]->cp;
break;
}
}
if (id == -1)
{
err = SCANNER_ERR_INVALID_PARAMETER;
strcpy((char*)data, now.c_str());
}
else if(cur != id)
{
int lid = lang_get_string_id((char*)data, false);
err = SCANNER_ERR_CONFIGURATION_CHANGED;
setting_jsn_.at(SANE_STD_OPT_NAME_LANGUAGE).at("cur") = lid;
lang_set_code_page(id);
on_language_changed();
}
}
return err;
}
int hg_scanner::on_color_mode_changed(int& color_mode)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
@ -2686,8 +2643,13 @@ SANE_Image_Statu hg_scanner::last_usb_image_statu(int err)
return statu;
}
void hg_scanner::change_setting_language(bool init)
void hg_scanner::init_settings(const char* json_setting_text)
{
jsn_children_.clear();
setting_jsn_ = jsonconfig::load_json_from_text(json_setting_text, &jsn_children_);
VLOG_MINI_1(LOG_LEVEL_ALL, "Initialize %d settings ...\n", jsn_children_.size() - 1);
notify_setting_result_ = false;
for (size_t i = 1; i < jsn_children_.size(); ++i)
{
std::string v(jsn_children_[i]);
@ -2701,43 +2663,24 @@ void hg_scanner::change_setting_language(bool init)
change_string_2_lang_id(v.c_str(), "desc");
setting_jsn_.at(v.c_str()).at("type").get_to(val);
if (v.compare(from_default_language(SANE_STD_OPT_NAME_TIME_TO_SLEEP)) == 0)
{
int val = 0;
get_sleep_time(val);
const char* p_time = NULL;
if (val == -1 || val > 20000)
p_time = /*from_default_language*/(OPTION_VALUE_XMSJ_BXM); // changed in 'if (val == "string")' branch.
else if (val > 0 && val <= 300)
p_time = /*from_default_language*/(OPTION_VALUE_XMSJ_WFZ);
else if (val > 300 && val <= 600)
p_time = /*from_default_language*/(OPTION_VALUE_XMSJ_SFZ);
else if (val > 600 && val <= 1800)
p_time = /*from_default_language*/(OPTION_VALUE_XMSJ_BXS);
else if (val > 1800 && val <= 3600)
p_time = /*from_default_language*/(OPTION_VALUE_XMSJ_YXS);
else if (val > 3600 && val <= 7200)
p_time = /*from_default_language*/(OPTION_VALUE_XMSJ_LXS);
else if (val > 7200 && val <= 14400)
p_time = /*from_default_language*/(OPTION_VALUE_XMSJ_SXS);
if (p_time)
setting_jsn_.at(from_default_language(SANE_STD_OPT_NAME_TIME_TO_SLEEP)).at("default") = p_time;
}
if (v.compare(from_default_language(SANE_STD_OPT_NAME_FEED_STRENGTH)) == 0)
{
int val = 0;
on_get_feedmode(val);
const char* p_feed = NULL;
if (val == 0)
p_feed = /*from_default_language*/(OPTION_VALUE_FZQD_R);
else if (val == 1)
p_feed = /*from_default_language*/(OPTION_VALUE_FZQD_YB);
else if (val == 2)
p_feed = /*from_default_language*/(OPTION_VALUE_FZQD_Q);
if (p_feed)
setting_jsn_.at(from_default_language(SANE_STD_OPT_NAME_TIME_TO_SLEEP)).at("default") = p_feed;
int ret = on_get_feedmode(val);
if (ret == SCANNER_ERR_OK)
{
const char* p_feed = NULL;
if (val == 0)
p_feed = from_default_language(OPTION_VALUE_FZQD_R);
else if (val == 1)
p_feed = from_default_language(OPTION_VALUE_FZQD_YB);
else if (val == 2)
p_feed = from_default_language(OPTION_VALUE_FZQD_Q);
if (p_feed)
setting_jsn_.at(from_default_language(SANE_STD_OPT_NAME_TIME_TO_SLEEP)).at("default") = p_feed;
}
}
if (val == "string")
{
@ -2759,78 +2702,41 @@ void hg_scanner::change_setting_language(bool init)
setting_jsn_.at(v.c_str()).at("range")[i] = id;
}
}
if (v.compare(from_default_language(SANE_STD_OPT_NAME_LANGUAGE)) == 0)
continue;
if (init)
{
val = get_setting_item_string(v.c_str(), "default");
val = get_setting_item_string(v.c_str(), "default");
char* buf = NULL;
long size = 0;
char* buf = NULL;
long size = 0;
setting_jsn_.at(v.c_str()).at("size").get_to(size);
buf = (char*)malloc(size + 4);
bzero(buf, size + 4);
strcpy(buf, val.c_str());
set_setting(v.c_str(), buf, &size);
free(buf);
}
setting_jsn_.at(v.c_str()).at("size").get_to(size);
buf = (char*)malloc(size + 4);
bzero(buf, size + 4);
strcpy(buf, val.c_str());
set_setting(v.c_str(), buf, &size);
free(buf);
}
else if (init)
else if (val == "int")
{
if (val == "int")
{
int n = 0;
long size = sizeof(n);
setting_jsn_.at(v.c_str()).at("default").get_to(n);
set_setting(v.c_str(), (char*)&n, &size);
}
else if (val == "float")
{
double d = .0f;
long size = sizeof(d);
setting_jsn_.at(v.c_str()).at("default").get_to(d);
set_setting(v.c_str(), (char*)&d, &size);
}
else if (val == "bool")
{
bool b = false;
long size = sizeof(b);
setting_jsn_.at(v.c_str()).at("default").get_to(b);
set_setting(v.c_str(), (char*)&b, &size);
}
int n = 0;
long size = sizeof(n);
setting_jsn_.at(v.c_str()).at("default").get_to(n);
set_setting(v.c_str(), (char*)&n, &size);
}
}
}
void hg_scanner::init_settings(const char* json_setting_text)
{
const char* lang = language_option_descriptor();
bool empty = true;
if (lang && *lang)
{
std::string txt(json_setting_text);
size_t pos = txt.rfind('}');
if (pos != std::string::npos)
else if (val == "float")
{
txt[pos] = ',';
double d = .0f;
long size = sizeof(d);
setting_jsn_.at(v.c_str()).at("default").get_to(d);
set_setting(v.c_str(), (char*)&d, &size);
}
else if (val == "bool")
{
bool b = false;
long size = sizeof(b);
setting_jsn_.at(v.c_str()).at("default").get_to(b);
set_setting(v.c_str(), (char*)&b, &size);
}
if (strstr(lang, "{"))
txt += strstr(lang, "{") + 1;
jsn_children_.clear();
setting_jsn_ = jsonconfig::load_json_from_text(txt.c_str(), &jsn_children_);
empty = setting_jsn_.empty();
}
if(empty)
{
jsn_children_.clear();
setting_jsn_ = jsonconfig::load_json_from_text(json_setting_text, &jsn_children_);
}
VLOG_MINI_1(LOG_LEVEL_ALL, "Initialize %d settings ...\n", jsn_children_.size() - 1);
notify_setting_result_ = false;
change_setting_language(true);
VLOG_MINI_1(LOG_LEVEL_ALL, "Initialize %d settings ... OK\n", jsn_children_.size() - 1);
if (lang_get_cur_code_page() != DEFAULT_CODE_PAGE)
on_language_changed();
@ -3333,14 +3239,11 @@ int hg_scanner::set_setting(const char* name, void* data, long* len)
// setting_jsn_.at(real_n).at("title").get_to(name);
if (type == "string")
{
if (real_n != SANE_STD_OPT_NAME_LANGUAGE)
{
int id = lang_get_string_id((char*)data, false);
if (id == -1)
setting_jsn_.at(real_n).at("cur") = (char*)data;
else
setting_jsn_.at(real_n).at("cur") = id;
}
int id = lang_get_string_id((char*)data, false);
if (id == -1)
setting_jsn_.at(real_n).at("cur") = (char*)data;
else
setting_jsn_.at(real_n).at("cur") = id;
type = (char*)data;
}
else if (type == "int")
@ -4419,7 +4322,7 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer, uint32_t id
}
{
adjust_color(ImagePrc_pHandle_); //色调曲线 普通dsp版本需要矫正颜色
adjust_color(ImagePrc_pHandle_); //色调曲线 普通dsp版本需要矫正颜色 色调曲线目前是PC支持
(this->*dump_img_)(ImagePrc_pHandle_, "adjust_color");
}
@ -4431,18 +4334,7 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer, uint32_t id
if ((img_conf_.refuseInflow) && (pid_ != 0x239 && pid_ != 0x439))
{
int lv = 5;
if (image_prc_param_.bits.is_permeate_lv_ == 0)
lv = 5;
else if (image_prc_param_.bits.is_permeate_lv_ == 1)
lv = 15;
else if (image_prc_param_.bits.is_permeate_lv_ == 2)
lv = 25;
else if (image_prc_param_.bits.is_permeate_lv_ == 3)
lv = 35;
else if (image_prc_param_.bits.is_permeate_lv_ == 4)
lv = 45;
int lv = 5 + image_prc_param_.bits.is_permeate_lv_ * 10; //image_prc_param_.bits.is_permeate_lv_ = 0 1 2 3 4
hg_imgproc::antiInflow(ImagePrc_pHandle_, lv);
(this->*dump_img_)(ImagePrc_pHandle_, "antiInflow");

File diff suppressed because one or more lines are too long

View File

@ -143,6 +143,14 @@ hg_scanner_mgr::hg_scanner_mgr() : same_ind_(1), user_(""), pwd_(""), cf_name(""
{
cf_name = hg_log::ini_get("devs_name", "name");
usb_manager::instance()->register_hotplug(&hg_scanner_mgr::usb_event_handle, this);
int code_page = lang_get_cur_code_page();
url_en = BRAND_COMPANY_URL;
url_link_en = BRAND_URL_COMPANY_URL;
if (code_page == 20127)
{
url_en = BRAND_COMPANY_URL_EN;
url_link_en = BRAND_URL_COMPANY_URL_EN;
}
}
hg_scanner_mgr::~hg_scanner_mgr()
{
@ -519,12 +527,7 @@ scanner_err hg_scanner_mgr::get_about_info(scanner_handle h, void* data, unsigne
unsigned bytes = sizeof(SANE_About) + 40;
SANE_About tmp;
size_t append_cnt = 1;
int code_page = lang_get_cur_code_page();
string url_en = BRAND_COMPANY_URL;
if (code_page == 20127)
{
url_en = BRAND_COMPANY_URL_EN;
}
bytes += sizeof(g_logo);
bytes += strlen(GET_LANG(BRAND_APP_NAME, &islang)) + 8; append_cnt++;
@ -536,7 +539,7 @@ scanner_err hg_scanner_mgr::get_about_info(scanner_handle h, void* data, unsigne
bytes += strlen(GET_LANG(url_en.c_str(), &islang)) + 8; append_cnt++;
bytes += strlen(GET_LANG(BRAND_URL_COMPANY_URL, &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++;
@ -596,7 +599,7 @@ scanner_err hg_scanner_mgr::get_about_info(scanner_handle h, void* data, unsigne
#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(url_en.c_str(), &islang), GET_LANG(BRAND_URL_COMPANY_URL, &islang));
set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITLE_URL,&islang), GET_LANG(url_en.c_str(), &islang), GET_LANG(url_link_en.c_str(), &islang));
set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITLE_TEL,&islang), GET_LANG(BRAND_COMPANY_TEL,&islang), NULL);
set_appendix_info_for_about(about, ptr, count, GET_LANG(BRAND_TITLE_ADDRESS,&islang), GET_LANG(BRAND_COMPANY_ADDRESS,&islang), NULL);
if (strlen(BRAND_TITLE_GPS) > 1)
@ -833,7 +836,7 @@ scanner_err hg_scanner_mgr::hg_scanner_get_parameter(scanner_handle h, const cha
TRY_STR_OPT(MANUFACTURER, COMPANY_NAME);
TRY_STR_OPT(COPYRIGHT, BRAND_COPYRIGHT);
TRY_STR_OPT(CO_URL, BRAND_URL_COMPANY_URL);
TRY_STR_OPT(CO_URL, url_link_en.c_str());
TRY_STR_OPT(CO_TEL, BRAND_COMPANY_TEL);
TRY_STR_OPT(CO_ADDR, BRAND_COMPANY_ADDRESS);
TRY_STR_OPT(CO_GPS, BRAND_URL_GPS);

View File

@ -92,6 +92,8 @@ class hg_scanner_mgr
scanner_err get_about_info(scanner_handle h, void* data, unsigned* len);
string cf_name;
string url_en;
string url_link_en;
protected:
hg_scanner_mgr();
~hg_scanner_mgr();