diff --git a/app/HGProductionTool/ui_helper.h b/app/HGProductionTool/ui_helper.h index ef3b404..e2005d9 100644 --- a/app/HGProductionTool/ui_helper.h +++ b/app/HGProductionTool/ui_helper.h @@ -99,6 +99,7 @@ public: TEST_EVEB_GET_DEVICE_CONFIG_SLEEPTIME, //get sleeptime;data is (int*) ;flag is (bool)result,true - get pass TEST_EVEB_GET_DEVICE_CONFIG_SN, //get sn ;data is (wchar*) ;flag is (bool)result,true - get pass TEST_EVEB_GET_DEVICE_CONFIG_FW, //get fw ;data is (wchar*) ;flag is (bool)result,true - get pass + TEST_EVEB_GET_DEVICE_CONFIG_DEVS_MODEL, //get devs_model ;data is (wchar*) ;flag is (bool)result,true - get pass }; virtual void test_callback(const wchar_t* name/*test name*/, test_event ev, void* data, size_t flag)=0 ; diff --git a/code/base/test_base.cpp b/code/base/test_base.cpp index 40cfa91..feef4b9 100644 --- a/code/base/test_base.cpp +++ b/code/base/test_base.cpp @@ -643,6 +643,9 @@ public: case WRITE_CAT_SERIALNUM: ret = test_set_serial_num(cfg->val); break; + case WRITE_CAT_DEVS_MODEL: + ret = test_set_devs_model (cfg->val); + break; default: helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)L"协议未找到", false); break; @@ -1397,9 +1400,55 @@ public: } helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVEB_GET_DEVICE_CONFIG_FW, (void*)wstr.c_str(), true); + + std::string devs_model; + unsigned int devs_len = 0; + l = 0; + wstr.clear(); + + ret = helper_->io_control(IO_CTRL_CODE_GET_DEVS_MODEL, &devs_model[0], &devs_len); + if (ret == SANE_STATUS_NO_MEM) + { + devs_model.resize(devs_len); + ret = helper_->io_control(IO_CTRL_CODE_GET_DEVS_MODEL, &devs_model[0], &devs_len); + } + + ret = str_to_wchar(devs_model.c_str(), (wchar_t*)wstr.c_str(), &l); + if (ret == ERROR_INSUFFICIENT_BUFFER) + { + wstr.resize(l); + ret = str_to_wchar(devs_model.c_str(), (wchar_t*)wstr.c_str(), &l); + } + + helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVEB_GET_DEVICE_CONFIG_DEVS_MODEL, wstr.empty() ? (void*)L"获取设备类型失败" : (void*)wstr.c_str(), wstr.empty() ? false : true); + helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)(L"配置获取完成"), true); return ret; } + /*设置设备型号*/ + int test_set_devs_model(void* data) + { + if (!data) + { + return SCANNER_ERR_NO_DATA; + } + wchar_t* sc = (wchar_t*)data; + std::string str; + size_t len = 0; + int ret =wchar_to_char(str, sc, len); + if (ret == ERROR_INSUFFICIENT_BUFFER) + { + str.resize(len); + ret = wchar_to_char(str, sc, len); + } + if (str.empty()) + { + helper_->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVEB_GET_DEVICE_CONFIG_DEVS_MODEL, wstr.empty() ? (void*)L"设置设备类型失败" : (void*)wstr.c_str(), wstr.empty() ? false : true); + + return -1; + } + return helper_->io_control(IO_CTRL_CODE_SET_DEVS_MODEL, &str[0], str.size()); + } private: }; diff --git a/code/base/test_base.h b/code/base/test_base.h index fe3acc0..0190a8b 100644 --- a/code/base/test_base.h +++ b/code/base/test_base.h @@ -199,7 +199,8 @@ enum write_cat WRITE_CAT_VID_PID = 0, // val = (int*) WRITE_CAT_SPEED, // val = (int*) WRITE_CAT_SLEEP, // val = (int*) - WRITE_CAT_SERIALNUM // val = (char*) + WRITE_CAT_SERIALNUM, // val = (wchar_t*) + WRITE_CAT_DEVS_MODEL // val = (wchar_t*) }; typedef struct _write_cfg