20220725 莫紹康 新增睡眠時間和分紙强度

This commit is contained in:
gb 2022-07-25 18:19:40 +08:00
parent 279ddc9dd8
commit 21e0b486a2
3 changed files with 52 additions and 33 deletions

View File

@ -93,7 +93,7 @@ hg_scanner::hg_scanner(ScannerSerial serial
, notify_setting_result_(false), user_cancel_(false), cb_mem_(true), test_1_paper_(false)
, setting_count_(0),img_type_(""), online_(false),is_quality_(-1),is_color_fill(false),is_multiout(false),save_multiout(OPTION_VALUE_DLSCLX_CS_HD_HB)
, final_img_index_(0), custom_area_(false),save_sizecheck(false), bw_threshold_(128), custom_gamma_(false)
, double_paper_handle_(0), keep_watermark_(false)
, double_paper_handle_(0), keep_watermark_(false), save_feedmode_type_(false), feedmode_(1), sleeptime_(-1)
{
final_path_ = hg_log::ini_get("paths", "final_img");
if(final_path_.empty())
@ -354,6 +354,10 @@ void hg_scanner::set_setting_map(int sn, const char* title)
setting_map_[sn] = &hg_scanner::setting_black_white_threshold;
else if(val == OPTION_TITLE_ZPMS)
setting_map_[sn] = &hg_scanner::setting_keep_watermark;
else if (val == OPTION_TITLE_XMSJ)
setting_map_[sn] = &hg_scanner::setting_setsleeptime;
else if (val == OPTION_TITLE_FZQD)
setting_map_[sn] = &hg_scanner::setting_setfeedmode;
}
void hg_scanner::thread_handle_usb(void)
{
@ -1613,27 +1617,24 @@ int hg_scanner::setting_black_white_threshold(int sn, void* data)
}
int hg_scanner::setting_setfeedmode(int sn, void* data)
{
feedmode_ = *((int *)data);
int ret = on_set_feedmode(feedmode_);
int val = *((int *)data);
int ret = on_set_feedmode(val);
if (ret == SCANNER_ERR_OK)
feedmode_ = val;
return ret;
}
int hg_scanner::setting_getfeedmode(int sn, void* data)
{
int ret = on_get_feedmode(feedmode_);
return ret;
}
int hg_scanner::setting_setsleeptime(int sn, void* data)
{
sleeptime_ = *((int *)data);
int ret = set_sleep_time(sleeptime_);
return ret;
}
int val = *((int*)data), time = val;
if (val != -1)
val *= 60;
int ret = set_sleep_time(val);
if (ret == SCANNER_ERR_OK)
sleeptime_ = time;
int hg_scanner::setting_getsleeptime(int sn, void* data)
{
int ret = get_sleep_time(sleeptime_);
return ret;
}
int hg_scanner::on_color_mode_changed(int& color_mode)
@ -2183,10 +2184,10 @@ int hg_scanner::set_setting(int setting_no, void* data, int len)
int ret = SCANNER_ERR_OUT_OF_RANGE;
char sn[20];
sprintf(sn, "%d", setting_no);
if (hit)
{
ret = (this->*setting_map_[setting_no])(setting_no, data);
sprintf(sn, "%d", setting_no);
}
else
{
@ -2272,24 +2273,34 @@ int hg_scanner::get_setting(int setting_no, char* json_txt_buf, int* len)
if (!setting_jsn_.contains(sn))
VLOG_MINI_2(LOG_LEVEL_FATAL, "!!!option(%d - %s) is not found.\n", setting_no, sn);
text = setting_jsn_.at(sn).dump();
setting_jsn_.at(sn).at("name").get_to(name);
if (name == SANE_STD_OPT_NAME_CUSTOM_AREA_LEFT || name == SANE_STD_OPT_NAME_CUSTOM_AREA_RIGHT)
setting_jsn_.at(sn).at("title").get_to(name);
while (name.length() && name[0] == ' ')
name.erase(0, 1);
if (name == OPTION_TITLE_SMQYZCmm || name == OPTION_TITLE_SMQYYCmm)
{
is_area_x = true;
add = 20;
}
else if (name == SANE_STD_OPT_NAME_CUSTOM_AREA_TOP || name == SANE_STD_OPT_NAME_CUSTOM_AREA_BOTTOM)
else if (name == OPTION_TITLE_SMQYSCmm || name == OPTION_TITLE_SMQYXCmm)
{
is_area_y = true;
add = 20;
}
else if (name == SANE_STD_OPT_NAME_GET_PAPER_STRENGTH)
else if (name == OPTION_TITLE_FZQD)
{
setting_jsn_.at(sn).at("cur").get_to(feedmode_);
if (!save_feedmode_type_)
{
on_get_feedmode(feedmode_);
}
setting_jsn_.at(sn).at("cur")= feedmode_;
}
else if (name == SANE_STD_OPT_NAME_GET_SLEEP_TIME)
else if (name == OPTION_TITLE_XMSJ)
{
setting_jsn_.at(sn).at("cur").get_to(sleeptime_);
if (!save_sleeptime_type_)
{
get_sleep_time(sleeptime_);
}
setting_jsn_.at(sn).at("cur") = sleeptime_;
}
if (*len <= text.length() + add)
{
@ -2298,6 +2309,7 @@ int hg_scanner::get_setting(int setting_no, char* json_txt_buf, int* len)
return SCANNER_ERR_INSUFFICIENT_MEMORY;
}
setting_jsn_.at(sn).at("name").get_to(name);
if (is_gamma)
{
name = "";

View File

@ -151,9 +151,7 @@ protected:
int setting_keep_watermark(int sn, void* data);
int setting_black_white_threshold(int sn, void* data);
int setting_setfeedmode(int sn, void* data);
int setting_getfeedmode(int sn, void* data);
int setting_setsleeptime(int sn, void* data);
int setting_getsleeptime(int sn, void* data);
virtual int on_color_mode_changed(int& color_mode); // COLOR_MODE_xxx
virtual int on_paper_changed(int& paper); // PAPER_xxx
@ -218,6 +216,9 @@ protected:
int feedmode_; // 分纸强度
int sleeptime_; // 睡眠时间
bool save_feedmode_type_; //保存分支强度狀態
bool save_sleeptime_type_; //保存休眠時間
SCANCONF img_conf_; //此参数外部不做任何改变请在writedown_image_configuration做修改
std::string img_type_;

File diff suppressed because one or more lines are too long