新增流程

This commit is contained in:
13038267101 2022-12-29 18:07:00 +08:00
parent dac8ae40f8
commit 323081aca9
1 changed files with 122 additions and 38 deletions

View File

@ -89,10 +89,20 @@ public:
if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_SKEW_DETECTION) == 0) if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_SKEW_DETECTION) == 0)
{ {
type = strcmp((char*)data, STATU_DESC_SCANNER_ERR_DEVICE_PAPER_SKEW) == 0 ? true : false; if (strcmp((char*)data, STATU_DESC_SCANNER_ERR_DEVICE_PAPER_SKEW) != 0)
{
type = false;
wchar_t buf[128] = L"未检测到纸张倾斜,原因--->";
wcscat(buf, wstr.c_str());
wstr = buf;
}
else
type = true;
} }
else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_CIS_ORIGINAL_IMAGE) == 0) else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_CIS_ORIGINAL_IMAGE) == 0)
{ {
io_type = false;
h->io_control(IO_CTRL_CODE_SET_CIS_IMAGE, &io_type, &io_len); h->io_control(IO_CTRL_CODE_SET_CIS_IMAGE, &io_type, &io_len);
} }
else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_DISTORTION) == 0) else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_DISTORTION) == 0)
@ -210,7 +220,7 @@ public:
helper_->test_callback(str, ui_helper::TEST_EVENT_NOT_FIND_TEST, NULL, false); helper_->test_callback(str, ui_helper::TEST_EVENT_NOT_FIND_TEST, NULL, false);
return ret; return ret;
} }
if (ret != SCANNER_ERR_OK) if (ret != SCANNER_ERR_OK && ret != -1)
{ {
helper_->test_callback(str, ui_helper::TEST_EVENT_IO_FAIL, NULL, ret); helper_->test_callback(str, ui_helper::TEST_EVENT_IO_FAIL, NULL, ret);
} }
@ -258,7 +268,7 @@ public:
{ {
return ret; return ret;
} }
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_MANUAL_CONFIRMATION, (void*)L"请确认是否清理纸道成功", true); helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_MANUAL_CONFIRMATION, (void*)L"请确认是否清理纸道成功", true);
return ret; return ret;
} }
/* 按键功能检测 */ /* 按键功能检测 */
@ -277,13 +287,13 @@ public:
{ {
return ret; return ret;
} }
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_MANUAL_CONFIRMATION, (void*)L"请确认与液晶面板是否匹配", ismode); helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_MANUAL_CONFIRMATION, (void*)L"请确认与液晶面板是否匹配", ismode);
return ret; return ret;
} }
/* 歪斜检测 */ /* 歪斜检测 */
int test_skew_detection(void *data) int test_skew_detection(void *data)
{ {
const wchar_t* NAME = (wchar_t*)data; const wchar_t* NAME = set_test_name_.c_str();
SANE_Bool type = true; SANE_Bool type = true;
unsigned int len = sizeof(SANE_Bool); unsigned int len = sizeof(SANE_Bool);
int num = 0; int num = 0;
@ -294,23 +304,25 @@ public:
get_data = ptr->get_data(); get_data = ptr->get_data();
if (!get_data) if (!get_data)
{ {
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"已退出歪斜检测流程", false); helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"已退出歪斜检测流程", false);
return -1; return -1;
} }
num = *((int*)get_data); num = *((int*)get_data);
} }
else else
{ {
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"已退出歪斜检测流程", false); helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"已退出歪斜检测流程", false);
return -1; return -1;
} }
type = num == 0 ? false:true; type = num == 0 ? false:true;
ptr->release(); ptr->release();
int ret = helper_->io_control(IO_CTRL_CODE_SET_SKEW_CHECK, &type, &len); int ret = helper_->io_control(IO_CTRL_CODE_SET_SKEW_CHECK, &type, &len);
if (ret != SCANNER_ERR_OK)return ret; if (ret != SCANNER_ERR_OK)
return ret;
ret = helper_->io_control(IO_CTRL_CODE_SET_SKEW_CHECK_VAL, &num, &len); ret = helper_->io_control(IO_CTRL_CODE_SET_SKEW_CHECK_VAL, &num, &len);
if (ret != SCANNER_ERR_OK)return ret; if (ret != SCANNER_ERR_OK)
return ret;
ret = helper_->io_control(IO_CTRL_CODE_TEST_SINGLE, NULL, NULL); ret = helper_->io_control(IO_CTRL_CODE_TEST_SINGLE, NULL, NULL);
return ret; return ret;
@ -323,7 +335,7 @@ public:
/* cis原图初检 */ /* cis原图初检 */
int test_cis__original_image(void *data) int test_cis__original_image(void *data)
{ {
const wchar_t* NAME = (wchar_t*)data; const wchar_t* NAME = set_test_name_.c_str();
SANE_Bool type = true; SANE_Bool type = true;
unsigned int len = sizeof(SANE_Bool); unsigned int len = sizeof(SANE_Bool);
int ret = SCANNER_ERR_OK; int ret = SCANNER_ERR_OK;
@ -348,7 +360,7 @@ public:
/* 超声波模块检验 */ /* 超声波模块检验 */
int test_ultrasonic_module(void *data) int test_ultrasonic_module(void *data)
{ {
const wchar_t* NAME = (wchar_t*)data; const wchar_t* NAME = set_test_name_.c_str();
SANE_Bool type = true; SANE_Bool type = true;
unsigned int len = sizeof(SANE_Bool); unsigned int len = sizeof(SANE_Bool);
void* get_data = NULL; void* get_data = NULL;
@ -360,7 +372,7 @@ public:
get_data = ptr->get_data(); get_data = ptr->get_data();
if (!get_data) if (!get_data)
{ {
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"已退出超声波模块检测流程", false); helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"已退出超声波模块检测流程", false);
return -1; return -1;
} }
else else
@ -368,7 +380,7 @@ public:
} }
else else
{ {
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"已退出超声波模块检测流程", false); helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"已退出超声波模块检测流程", false);
return -1; return -1;
} }
ptr->release(); ptr->release();
@ -410,7 +422,7 @@ public:
/* 配置速度模式 */ /* 配置速度模式 */
int test_configure_speed_mode(void *data) int test_configure_speed_mode(void *data)
{ {
const wchar_t* NAME = (wchar_t*)data; const wchar_t* NAME = set_test_name_.c_str();
unsigned int len = sizeof(int); unsigned int len = sizeof(int);
int speed_mode = 0; int speed_mode = 0;
void* get_data = NULL; void* get_data = NULL;
@ -422,7 +434,7 @@ public:
const wchar_t G239[6] = { 100,110,120,130}; const wchar_t G239[6] = { 100,110,120,130};
const wchar_t G300[6] = { 40,50,60,70 }; const wchar_t G300[6] = { 40,50,60,70 };
const wchar_t G400[6] = { 40,50,60,70,80}; const wchar_t G400[6] = { 40,50,60,70,80};
wchar_t info[128] = L"请设置速度模式,值越大速度越快."; const wchar_t *info = L"请设置速度模式,值越大速度越快.";
info_.info = info; info_.info = info;
if (fw_ == 1)info_.desc = G139; if (fw_ == 1)info_.desc = G139;
else if(fw_ == 2)info_.desc = G239; else if(fw_ == 2)info_.desc = G239;
@ -434,25 +446,21 @@ public:
get_data = ptr->get_data(); get_data = ptr->get_data();
if (!get_data) if (!get_data)
{ {
type = false; helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"速度模式设置失败...", false);
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"速度模式设置失败...", type);
return -1; return -1;
} }
speed_mode = *((int*)get_data); speed_mode = *((int*)get_data);
if (fw_ == 3 || fw_ == 4 && speed_mode >= 40 && speed_mode <= 80) //3288设置速度模式为1 2 3 4 5 if (fw_ == 3 || fw_ == 4 && speed_mode >= 40 && speed_mode <= 80)
{ {
if (speed_mode == 40)speed_mode = 1; for (size_t i = 1; i < sizeof(G400) / sizeof(G400[0]); i++)//3288设置速度模式为1 2 3 4 5
else if (speed_mode == 50)speed_mode = 2; {
else if (speed_mode == 60)speed_mode = 3; speed_mode = G400[i] == speed_mode ? i : 1;
else if (speed_mode == 70)speed_mode = 4; }
else if (speed_mode == 80)speed_mode = 5;
else speed_mode = 1;
} }
} }
else else
{ {
type = false; helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"已退出--->设置速度模式...", false);
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"已退出--->设置速度模式...", type);
return -1; return -1;
} }
ptr->release(); ptr->release();
@ -468,21 +476,21 @@ public:
if (fw_ == 3 || fw_ == 4 && num > 0 && num < 6) if (fw_ == 3 || fw_ == 4 && num > 0 && num < 6)
{ {
if (num == 1)save_num = 40; for (size_t i = 1; i < sizeof(G400) / sizeof(G400[0]); i++)//3288设置速度模式为1 2 3 4 5
else if (num == 2)save_num = 50; {
else if (num == 3)save_num = 60; if (num == i)
else if (num == 4)save_num = 70; save_num = G400[i];
else if (num == 5)save_num = 80; }
} }
else else
save_num = num; save_num = num;
wchar_t* infocat = NULL; wchar_t* infocat = NULL;
wchar_t c[6];
if (num != speed_mode) if (num != speed_mode)
{ {
wchar_t buf[30] = L"设置速度模式失败...现在速度是:"; wchar_t buf[30] = L"设置速度模式失败...现在速度是:";
type = false; type = false;
wchar_t c[4];
wsprintfW(c, L"%dppm", save_num); wsprintfW(c, L"%dppm", save_num);
wcscat(buf, c); wcscat(buf, c);
@ -492,12 +500,11 @@ public:
{ {
wchar_t buf[30] = L"设置速度模式成功...现在速度是:"; wchar_t buf[30] = L"设置速度模式成功...现在速度是:";
type = true; type = true;
wchar_t c[6];
wsprintfW(c,L"%dppm", save_num); wsprintfW(c,L"%dppm", save_num);
wcscat(buf, c); wcscat(buf, c);
infocat = buf; infocat = buf;
} }
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)infocat, type); helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)infocat, type);
return SCANNER_ERR_OK; return SCANNER_ERR_OK;
} }
/* 放置校正纸 */ /* 放置校正纸 */
@ -513,13 +520,38 @@ public:
/* 重启设备 */ /* 重启设备 */
int test_reboot_device(void *data) int test_reboot_device(void *data)
{ {
bool is_reboot = false;
void* get_data = NULL;
int i = 0;
unsigned int len = sizeof(SANE_Int);
parameter* ptr = helper_->get_user_input(ui_helper::DATA_FROM_USER, ui_helper::VAL_TYPE_BOOL, set_test_name_.c_str(),L"是否进入烧录模式,是:进入烧写模式(rebootloader) 否:设备普通重启(reboot)");
if (ptr)
{
get_data = ptr->get_data();
if (!get_data)
{
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"重启设备设置失败...", false);
return -1;
}
is_reboot = *((bool*)get_data);
}
else
{
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"已退出--->重启设备模式...", false);
return -1;
}
i = is_reboot;
int ret = helper_->io_control(IO_CTRL_CODE_SET_DEVS_REBOOT, &i, &len);
if (ret != SCANNER_ERR_OK)
return ret;
return SCANNER_ERR_OK; helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_DISTORTION, (void*)L"设备重启中,请观察设备是否重启", true);
return ret;
} }
/* 扫描图像质量确认 */ /* 扫描图像质量确认 */
int test_image_quality(void *data) int test_image_quality(void *data)
{ {
const wchar_t* NAME = (wchar_t*)data; const wchar_t* NAME = set_test_name_.c_str();
SANE_Bool type = false; SANE_Bool type = false;
unsigned int len = sizeof(SANE_Bool); unsigned int len = sizeof(SANE_Bool);
int ret = helper_->io_control(IO_CTRL_CODE_SET_SKEW_CHECK, &type, &len); int ret = helper_->io_control(IO_CTRL_CODE_SET_SKEW_CHECK, &type, &len);
@ -548,7 +580,7 @@ public:
/* 畸变修正 */ /* 畸变修正 */
int test_distortion(void *data) int test_distortion(void *data)
{ {
const wchar_t* NAME = (wchar_t*)data; const wchar_t* NAME = set_test_name_.c_str();
SANE_Bool type = true; SANE_Bool type = true;
unsigned int len = sizeof(SANE_Bool); unsigned int len = sizeof(SANE_Bool);
return helper_->io_control(IO_CTRL_CODE_GET_DPI_COLOR_CHECK_VAL, &type, &len); return helper_->io_control(IO_CTRL_CODE_GET_DPI_COLOR_CHECK_VAL, &type, &len);
@ -556,6 +588,38 @@ public:
/* 设置休眠 */ /* 设置休眠 */
int test_dormancy(void *data) int test_dormancy(void *data)
{ {
const wchar_t sleep_buf[10] = { 9999,5,10,30,60,120,240 };
ui_helper::_INFOTIPS info_;
void *get_data = NULL;
int sleep_time = 0;
SANE_Power power;
unsigned int len = sizeof(SANE_Power);
info_.desc = sleep_buf;
info_.info = L"9999:为不设置休眠,值越大休眠越久,单位是分钟";
parameter* ptr = helper_->get_user_input(ui_helper::DATA_FROM_USER, ui_helper::VAL_TYPE_TIPS_VAL, set_test_name_.c_str(), (wchar_t*)&info_);
if (ptr)
{
get_data = ptr->get_data();
if (get_data)
{
sleep_time = *((int*)get_data);
}
}
else
{
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT,(void*)L"已退出设置休眠模式",false);
return -1;
}
ptr->release();
for (size_t i = 0; i < 8; i++)
{
if (sleep_buf[i] == sleep_time)
{
power = (SANE_Power)i;
}
}
return helper_->io_control(IO_CTRL_CODE_SET_POWER_LEVEL, &power, &len);
return SCANNER_ERR_OK; return SCANNER_ERR_OK;
} }
/* 歪斜挡位检测 */ /* 歪斜挡位检测 */
@ -566,6 +630,7 @@ public:
/* 分纸强度检测 */ /* 分纸强度检测 */
int test_paper_separation_strength(void *data) int test_paper_separation_strength(void *data)
{ {
//parameter* ptr = helper_->get_user_input(ui_helper::DATA_FROM_USER, ui_helper::VAL_TYPE_TIPS_VAL, NAME, (wchar_t*)&info_);
return SCANNER_ERR_OK; return SCANNER_ERR_OK;
} }
/* 机械走纸倾斜检测 */ /* 机械走纸倾斜检测 */
@ -596,7 +661,26 @@ public:
/* 清除滚轴计数 */ /* 清除滚轴计数 */
int test_clear_roller_count(void *data) int test_clear_roller_count(void *data)
{ {
return SCANNER_ERR_OK; SANE_Int roller_num = -1;
const wchar_t* info = NULL;
bool type = false;
unsigned int len = sizeof(SANE_Int);
int ret = helper_->io_control(IO_CTRL_CODE_SET_CLEAR_ROLLER_COUNT, NULL, NULL);
ret = helper_->io_control(IO_CTRL_CODE_GET_ROLLER_NUM, &roller_num, &len);
if ((roller_num == 0 && roller_num != -1))
{
type = true;
info = L"清除滚轴计数成功";
}
else
{
type = false;
info = L"清除滚轴计数失败";
}
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)info, type);
return ret;
} }
private: private: