新增设置序列号 ,vid pid
This commit is contained in:
parent
f7e958b5b7
commit
d33b64778e
|
@ -510,12 +510,12 @@ void Form_mainInterface::setGlobalCfg(AnalysisJson analysisJson)
|
|||
AnalysisJson::json_global jsonGlobal = analysisJson.GetGlobal();
|
||||
LPWRITECFG p = new WRITECFG;
|
||||
|
||||
p->cat = WRITE_CAT_VID;
|
||||
p->val = &jsonGlobal.vid_to;
|
||||
func_test_go((const wchar_t*)WRITE_CFG_NAME, (const wchar_t*)p, m_hg);
|
||||
|
||||
p->cat = WRITE_CAT_PID;
|
||||
p->val = &jsonGlobal.pid_to;
|
||||
VIDPID vidpid;
|
||||
vidpid.VID = jsonGlobal.vid_to;
|
||||
vidpid.PID = jsonGlobal.pid_to;
|
||||
p->cat = WRITE_CAT_VID_PID;
|
||||
p->val = &vidpid.Value;
|
||||
func_test_go((const wchar_t*)WRITE_CFG_NAME, (const wchar_t*)p, m_hg);
|
||||
|
||||
p->cat = WRITE_CAT_SPEED;
|
||||
|
|
|
@ -68,6 +68,15 @@ private slots:
|
|||
void on_pbtn_rightRotate_clicked();
|
||||
|
||||
private:
|
||||
union VIDPID
|
||||
{
|
||||
struct
|
||||
{
|
||||
unsigned short VID;
|
||||
unsigned short PID;
|
||||
};
|
||||
unsigned int Value;
|
||||
};
|
||||
void initTableWidgetUi();
|
||||
HGUInt getTestItem(const QString &title);
|
||||
HGUInt getTestItemStatus(const QString &title);
|
||||
|
|
|
@ -109,6 +109,167 @@ class test
|
|||
{
|
||||
ui_helper* helper_;
|
||||
int fw_;
|
||||
|
||||
/*设置vid pid*/
|
||||
int test_set_vidpid(void* data)
|
||||
{
|
||||
unsigned int len = sizeof(int);
|
||||
int set_vidpid = *((int*)data),
|
||||
get_vidpid = 0,
|
||||
ret = SCANNER_ERR_OK;
|
||||
ret = helper_->io_control(IO_CTRL_CODE_SET_VIDPID, (void*)set_vidpid, &len);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
ret = helper_->io_control(IO_CTRL_CODE_GET_VIDPID, (void*)get_vidpid, &len);
|
||||
if (set_vidpid == get_vidpid)
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"设置vidpid成功", true);
|
||||
else
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"设置vidpid失败", false);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
/*设置序列号*/
|
||||
int test_set_serial_num(void* data)
|
||||
{
|
||||
int ret = SCANNER_ERR_OK;
|
||||
std::string set_sn = (char*)data,
|
||||
get_sn;
|
||||
unsigned int setlen = set_sn.size(),
|
||||
getlen = 0;
|
||||
|
||||
ret = helper_->io_control(IO_CTRL_CODE_SET_SERIAL, &set_sn, &setlen);
|
||||
|
||||
if (ret != SCANNER_ERR_OK)return ret;
|
||||
|
||||
ret = helper_->io_control(IO_CTRL_CODE_GET_SERIAL, &get_sn, &getlen);
|
||||
if (ret == SCANNER_ERR_INSUFFICIENT_MEMORY)
|
||||
{
|
||||
get_sn.resize(getlen);
|
||||
ret = helper_->io_control(IO_CTRL_CODE_GET_SERIAL, &get_sn, &getlen);
|
||||
}
|
||||
if (ret != SCANNER_ERR_OK)return ret;
|
||||
|
||||
if (set_sn == get_sn)
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"设置序列号成功", true);
|
||||
else
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"设置序列号失败", false);
|
||||
return ret;
|
||||
}
|
||||
/* 设置休眠 */
|
||||
int test_dormancy(void* data)
|
||||
{
|
||||
const wchar_t sleep_buf[8] = { 0,5,10,30,60,120,240 };
|
||||
int sleep_time = *((int*)data);
|
||||
SANE_Power power;
|
||||
unsigned int len = sizeof(SANE_Power);
|
||||
|
||||
for (size_t i = 0; i < 8; i++)
|
||||
{
|
||||
if (sleep_buf[i] == sleep_time)
|
||||
{
|
||||
power = (SANE_Power)i;
|
||||
}
|
||||
}
|
||||
int ret = helper_->io_control(IO_CTRL_CODE_SET_POWER_LEVEL, &power, &len);
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
int gettime = 0;
|
||||
unsigned int timelen = sizeof(int*);
|
||||
|
||||
ret = helper_->io_control(IO_CTRL_CODE_GET_POWER_LEVEL, &gettime, &timelen);
|
||||
|
||||
if (gettime == INT_MAX || gettime == -1)
|
||||
gettime = 0;
|
||||
else
|
||||
gettime /= 60;
|
||||
|
||||
if (sleep_time == gettime)
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"设置休眠时间成功", true);
|
||||
else
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"设置休眠时间失败", false);
|
||||
return ret;
|
||||
}
|
||||
/*获取固件版本号*/
|
||||
std::string get_firmware_version()
|
||||
{
|
||||
std::string fw = "";
|
||||
unsigned int len = 0;
|
||||
int ret = helper_->io_control(IO_CTRL_CODE_GET_HARDWARE_VERSION, &fw[0], &len);
|
||||
fw.resize(len);
|
||||
ret = helper_->io_control(IO_CTRL_CODE_GET_HARDWARE_VERSION, &fw[0], &len);
|
||||
|
||||
return fw;
|
||||
}
|
||||
/* 配置速度模式 */
|
||||
int test_configure_speed_mode(void* data)
|
||||
{
|
||||
unsigned int len = sizeof(int);
|
||||
int speed_mode = *((int*)data);
|
||||
bool type = false;
|
||||
const wchar_t G139[6] = { 70,80,90,110 };
|
||||
const wchar_t G239[6] = { 100,110,120,130 };
|
||||
const wchar_t G300[6] = { 40,50,60,70 };
|
||||
const wchar_t G400[6] = { 40,50,60,70,80 };
|
||||
|
||||
if (fw_ == 3 || fw_ == 4 && speed_mode >= 40 && speed_mode <= 80)
|
||||
{
|
||||
for (size_t i = 0; i < sizeof(G400) / sizeof(G400[0]); i++)//3288设置速度模式为1 2 3 4 5
|
||||
{
|
||||
if (G400[i] == speed_mode)
|
||||
{
|
||||
speed_mode = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
int ret = helper_->io_control(IO_CTRL_CODE_SET_SPEED_MODE, &speed_mode, &len);
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
SANE_Int num = 0;
|
||||
unsigned int l = sizeof(SANE_Int);
|
||||
ret = helper_->io_control(IO_CTRL_CODE_GET_SPEED_MODE, &num, &l);
|
||||
int save_num = 0;
|
||||
|
||||
if (fw_ == 3 || fw_ == 4 && num > 0 && num < 6)
|
||||
{
|
||||
for (size_t i = 0; i < sizeof(G400) / sizeof(G400[0]); i++)//3288设置速度模式为1 2 3 4 5
|
||||
{
|
||||
if ((num - 1) == i)
|
||||
{
|
||||
save_num = G400[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
save_num = num;
|
||||
|
||||
wchar_t* infocat = NULL;
|
||||
wchar_t c[6];
|
||||
if (num != speed_mode)
|
||||
{
|
||||
wchar_t buf[30] = L"设置速度模式失败...现在速度是:";
|
||||
type = false;
|
||||
wsprintfW(c, L"%dppm", save_num);
|
||||
|
||||
wcscat(buf, c);
|
||||
infocat = buf;
|
||||
}
|
||||
else
|
||||
{
|
||||
wchar_t buf[30] = L"设置速度模式成功...现在速度是:";
|
||||
type = true;
|
||||
wsprintfW(c, L"%dppm", save_num);
|
||||
wcscat(buf, c);
|
||||
infocat = buf;
|
||||
}
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)infocat, type);
|
||||
return SCANNER_ERR_OK;
|
||||
}
|
||||
public:
|
||||
|
||||
static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param)
|
||||
|
@ -216,6 +377,11 @@ public:
|
|||
}
|
||||
else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_CIS_ORIGINAL_IMAGE) == 0)
|
||||
{
|
||||
if (strcmp((char*)data, STATU_DESC_SCAN_STOPPED) != 0)
|
||||
{
|
||||
type = false;
|
||||
wcscpy(buf, L"CIS原图初检, 原因--->");
|
||||
}
|
||||
h->io_control(IO_CTRL_CODE_SET_CIS_IMAGE, &close, &closelen);
|
||||
}
|
||||
else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_PRESSUER_TEST_RGB_200DPI) == 0
|
||||
|
@ -266,6 +432,7 @@ public:
|
|||
wcscpy(buf, L"单张测试失败, 原因--->");
|
||||
}
|
||||
}
|
||||
|
||||
wcscat(buf, wstr.c_str());
|
||||
ret = h->io_control(IO_CTRL_CODE_RESTORE_SETTINGS, NULL, NULL);//结束恢复默认
|
||||
|
||||
|
@ -327,6 +494,7 @@ public:
|
|||
std::map<std::wstring, int(test::*)(void *)> test_map_;
|
||||
void init_test_map_()
|
||||
{
|
||||
test_map_[WRITE_CFG_NAME] = &test::set_init_cfg;
|
||||
test_map_[HGPDTTOOLDB_NAME_CLEAR_PAPER_PATH] = &test::tset_clear_paper_path;
|
||||
test_map_[HGPDTTOOLDB_NAME_KEY_FUNCTION] = &test::test_key_funtion;
|
||||
test_map_[HGPDTTOOLDB_NAME_COUNTING_MODE] = &test::test_count_mode;
|
||||
|
@ -346,7 +514,6 @@ public:
|
|||
test_map_[HGPDTTOOLDB_NAME_IMAGE_QUALITY] = &test::test_image_quality;
|
||||
test_map_[HGPDTTOOLDB_NAME_DISTORTION] = &test::test_distortion;
|
||||
test_map_[HGPDTTOOLDB_NAME_DORMANCY] = &test::test_dormancy;
|
||||
test_map_[HGPDTTOOLDB_NAME_SKEW_GEAR] = &test::test_skew_gear;
|
||||
test_map_[HGPDTTOOLDB_NAME_PAPER_SEPARATION_STRENGTH] = &test::test_paper_separation_strength;
|
||||
test_map_[HGPDTTOOLDB_NAME_MECH_PAPER_FEEDING_INCLINATION] = &test::test_mech_paper_feeding_inclination;
|
||||
test_map_[HGPDTTOOLDB_NAME_CLEAR_ROLLER_COUNT] = &test::test_clear_roller_count;
|
||||
|
@ -388,17 +555,33 @@ public:
|
|||
return ret;
|
||||
}
|
||||
public:
|
||||
/*获取固件版本号*/
|
||||
std::string get_firmware_version()
|
||||
{
|
||||
std::string fw = "";
|
||||
unsigned int len = 0;
|
||||
int ret = helper_->io_control(IO_CTRL_CODE_GET_HARDWARE_VERSION, &fw[0], &len);
|
||||
fw.resize(len);
|
||||
ret = helper_->io_control(IO_CTRL_CODE_GET_HARDWARE_VERSION, &fw[0], &len);
|
||||
|
||||
return fw;
|
||||
int set_init_cfg(void *data)
|
||||
{
|
||||
LPWRITECFG cfg = (LPWRITECFG)data;
|
||||
unsigned int len = 0;
|
||||
int ret = SCANNER_ERR_OK;
|
||||
switch (cfg->cat)
|
||||
{
|
||||
case WRITE_CAT_VID_PID:
|
||||
ret = test_set_vidpid(cfg->val);
|
||||
break;
|
||||
case WRITE_CAT_SPEED:
|
||||
ret = test_configure_speed_mode(cfg->val);
|
||||
break;
|
||||
case WRITE_CAT_SLEEP:
|
||||
ret = test_dormancy(cfg->val);
|
||||
break;
|
||||
case WRITE_CAT_SERIALNUM:
|
||||
ret = test_set_serial_num(cfg->val);
|
||||
break;
|
||||
default:
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"协议未找到", false);
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* 清理纸道功能确认 */
|
||||
int tset_clear_paper_path(void *data)
|
||||
|
@ -549,107 +732,12 @@ public:
|
|||
{
|
||||
return helper_->io_control(IO_CTRL_CODE_GET_IMAGE, NULL, NULL);
|
||||
}
|
||||
|
||||
/* 扫描传感器检查 */
|
||||
int test_scanning_sensor(void *data)
|
||||
{
|
||||
return helper_->io_control(IO_CTRL_CODE_GET_IMAGE, NULL, NULL);
|
||||
}
|
||||
/* 配置速度模式 */
|
||||
int test_configure_speed_mode(void *data)
|
||||
{
|
||||
const wchar_t* NAME = set_test_name_.c_str();
|
||||
unsigned int len = sizeof(int);
|
||||
int speed_mode = 0;
|
||||
void* get_data = NULL;
|
||||
bool type = false;
|
||||
|
||||
ui_helper::_INFOTIPS info_;
|
||||
const wchar_t *range=L"";
|
||||
const wchar_t G139[6] = { 70,80,90,110};
|
||||
const wchar_t G239[6] = { 100,110,120,130};
|
||||
const wchar_t G300[6] = { 40,50,60,70 };
|
||||
const wchar_t G400[6] = { 40,50,60,70,80};
|
||||
const wchar_t *info = L"请设置速度模式,值越大速度越快.";
|
||||
info_.info = info;
|
||||
if (fw_ == 1)info_.desc = G139;
|
||||
else if(fw_ == 2)info_.desc = G239;
|
||||
else if(fw_ == 3)info_.desc = G300;
|
||||
else if(fw_ == 4)info_.desc = G400;
|
||||
parameter* ptr = helper_->get_user_input(ui_helper::DATA_FROM_USER, ui_helper::VAL_TYPE_TIPS_VAL,NAME, (wchar_t *) &info_);
|
||||
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;
|
||||
}
|
||||
speed_mode = *((int*)get_data);
|
||||
if (fw_ == 3 || fw_ == 4 && speed_mode >= 40 && speed_mode <= 80)
|
||||
{
|
||||
for (size_t i = 0; i < sizeof(G400) / sizeof(G400[0]); i++)//3288设置速度模式为1 2 3 4 5
|
||||
{
|
||||
if (G400[i] == speed_mode)
|
||||
{
|
||||
speed_mode = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"已退出--->设置速度模式...", false);
|
||||
return -1;
|
||||
}
|
||||
ptr->release();
|
||||
int ret = helper_->io_control(IO_CTRL_CODE_SET_SPEED_MODE, &speed_mode, &len);
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
SANE_Int num = 0;
|
||||
unsigned int l = sizeof(SANE_Int);
|
||||
ret = helper_->io_control(IO_CTRL_CODE_GET_SPEED_MODE, &num, &l);
|
||||
int save_num = 0;
|
||||
|
||||
if (fw_ == 3 || fw_ == 4 && num > 0 && num < 6)
|
||||
{
|
||||
for (size_t i = 0; i < sizeof(G400) / sizeof(G400[0]); i++)//3288设置速度模式为1 2 3 4 5
|
||||
{
|
||||
if ((num -1)== i)
|
||||
{
|
||||
save_num = G400[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
save_num = num;
|
||||
|
||||
wchar_t* infocat = NULL;
|
||||
wchar_t c[6];
|
||||
if (num != speed_mode)
|
||||
{
|
||||
wchar_t buf[30] = L"设置速度模式失败...现在速度是:";
|
||||
type = false;
|
||||
wsprintfW(c, L"%dppm", save_num);
|
||||
|
||||
wcscat(buf, c);
|
||||
infocat = buf;
|
||||
}
|
||||
else
|
||||
{
|
||||
wchar_t buf[30] = L"设置速度模式成功...现在速度是:";
|
||||
type = true;
|
||||
wsprintfW(c,L"%dppm", save_num);
|
||||
wcscat(buf, c);
|
||||
infocat = buf;
|
||||
}
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)infocat, type);
|
||||
return SCANNER_ERR_OK;
|
||||
}
|
||||
/* 放置校正纸 */
|
||||
int test_place_correction_paper(void *data)
|
||||
{
|
||||
|
@ -704,66 +792,7 @@ public:
|
|||
unsigned int len = sizeof(SANE_Bool);
|
||||
return helper_->io_control(IO_CTRL_CODE_GET_DPI_COLOR_CHECK_VAL, &type, &len);
|
||||
}
|
||||
/* 设置休眠 */
|
||||
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;
|
||||
}
|
||||
}
|
||||
int ret = helper_->io_control(IO_CTRL_CODE_SET_POWER_LEVEL, &power, &len);
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
int gettime = 0;
|
||||
unsigned int timelen = sizeof(int*);
|
||||
|
||||
ret = helper_->io_control(IO_CTRL_CODE_GET_POWER_LEVEL, &gettime, &timelen);
|
||||
|
||||
if (gettime == 999999 || gettime == -1)
|
||||
gettime = 9999;
|
||||
else
|
||||
gettime /= 60;
|
||||
|
||||
if (sleep_time == gettime)
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"设置休眠时间成功", true);
|
||||
else
|
||||
helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"设置休眠时间失败", false);
|
||||
return ret;
|
||||
}
|
||||
/* 歪斜挡位检测 */
|
||||
int test_skew_gear(void *data)
|
||||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
/* 分纸强度检测 */
|
||||
int test_paper_separation_strength(void *data)
|
||||
{
|
||||
|
@ -799,7 +828,6 @@ public:
|
|||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 单张测试 */
|
||||
int test_single_page_test(void* data)
|
||||
{
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include <Windows.h>
|
||||
|
||||
//////////////////////////////////////TITLE//////////////////////////////////////
|
||||
#define WRITE_CFG_NAME "write-cfg"
|
||||
|
||||
/* 拨码开关校验 */
|
||||
#define HGPDTTOOLDB_TITLE_DIAL_SWITCH L"拨码开关校验"
|
||||
/* 检查船型开关功能 */
|
||||
|
@ -79,6 +79,7 @@
|
|||
/*压力测试灰色+300dpi*/
|
||||
#define HGPDTTOOLDB_TITLE_PRESSUER_TEST_GRAY_300DPI L"压力测试灰色_300dpi"
|
||||
//////////////////////////////////////NAME//////////////////////////////////////
|
||||
#define WRITE_CFG_NAME L"write-cfg"
|
||||
/* 拨码开关校验 */
|
||||
#define HGPDTTOOLDB_NAME_DIAL_SWITCH L"DIAL_SWITCH"
|
||||
/* 检查船型开关功能 */
|
||||
|
@ -179,8 +180,7 @@ DECL_API(int) func_test_get_list(wchar_t* buf // to receive the JSON text
|
|||
|
||||
enum write_cat
|
||||
{
|
||||
WRITE_CAT_VID = 0, // val = (int*)
|
||||
WRITE_CAT_PID, // val = (int*)
|
||||
WRITE_CAT_VID_PID = 0, // val = (int*)
|
||||
WRITE_CAT_SPEED, // val = (int*)
|
||||
WRITE_CAT_SLEEP, // val = (int*)
|
||||
WRITE_CAT_SERIALNUM // val = (char*)
|
||||
|
|
Loading…
Reference in New Issue