596 lines
16 KiB
C++
596 lines
16 KiB
C++
#include"test_base.h"
|
||
#include<string>
|
||
#include <stdio.h>
|
||
#include <windows.h>
|
||
#include <map>
|
||
#include <iostream>
|
||
#include "huagao/hgscanner_error.h"
|
||
|
||
|
||
|
||
static int str_to_wchar(std::string str, wchar_t* s, size_t* strlen)
|
||
{
|
||
if (str.empty())
|
||
return ERROR_INSUFFICIENT_BUFFER;
|
||
|
||
size_t size = str.length();
|
||
int len = 0;
|
||
len = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0);
|
||
if (*strlen < len)
|
||
{
|
||
*strlen = len;
|
||
return ERROR_INSUFFICIENT_BUFFER;
|
||
}
|
||
MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, s, len);
|
||
return 0;
|
||
}
|
||
int get_json_config_file()
|
||
{
|
||
int len = 0;
|
||
char exePath[256];
|
||
char* buf = NULL;
|
||
GetModuleFileNameA(NULL, exePath, 255);
|
||
(strrchr(exePath, '\\'))[1] = 0; //È¥µôÖ´ÐеÄÎļþÃû¡£
|
||
|
||
strcat(exePath, "DLLs\\G302.hsc");
|
||
FILE* fp = fopen(exePath, "rb");
|
||
if (fp == NULL)
|
||
{
|
||
return -1;
|
||
}
|
||
fseek(fp, 0, SEEK_END);
|
||
len = ftell(fp);
|
||
fseek(fp, 0, SEEK_SET);
|
||
buf = new char[len];
|
||
if (!buf)
|
||
{
|
||
fclose(fp);
|
||
return -1;
|
||
}
|
||
memset(buf, 0, len);
|
||
fread(buf, len, 1, fp);
|
||
fclose(fp);
|
||
std::cout << buf << std::endl;
|
||
}
|
||
|
||
static std::wstring set_test_name_ =L"";
|
||
class test
|
||
{
|
||
ui_helper* helper_;
|
||
int fw_;
|
||
public:
|
||
|
||
static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param)
|
||
{
|
||
if (!hdev && !param)
|
||
{
|
||
return -1;
|
||
}
|
||
ui_helper* h= (ui_helper*)param;
|
||
|
||
std::wstring wstr = L"";
|
||
size_t l = 0;
|
||
bool type = true;
|
||
int ret = str_to_wchar((char*)data, (wchar_t*)wstr.c_str(), &l);
|
||
if (ret == ERROR_INSUFFICIENT_BUFFER)
|
||
ret = str_to_wchar((char*)data, (wchar_t*)wstr.c_str(), &l);
|
||
if (ret == ERROR_INSUFFICIENT_BUFFER)
|
||
{
|
||
type = false;
|
||
h->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)wstr.c_str(), type);
|
||
return -1;
|
||
}
|
||
switch (code)
|
||
{
|
||
case SANE_EVENT_SCAN_FINISHED:
|
||
{
|
||
SANE_Bool io_type = false;
|
||
unsigned int io_len = sizeof(SANE_Bool);
|
||
|
||
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;
|
||
}
|
||
else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_CIS_ORIGINAL_IMAGE) == 0)
|
||
{
|
||
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)
|
||
{
|
||
int ret = h->io_control(IO_CTRL_CODE_GET_DPI_COLOR_CHECK_VAL, &io_type, &io_len);
|
||
if (strcmp((char*)data, STATU_DESC_SCAN_STOPPED) == 0)
|
||
{
|
||
h->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_DISTORTION, (void*)L"»û±äÐÞÕýÍê³É,ÊÇ·ñ½øÐе¥Ò³É¨Ãè²âÊÔ", type);
|
||
return 0;
|
||
}
|
||
}
|
||
h->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)wstr.c_str(), type);
|
||
}
|
||
break;
|
||
case SANE_EVENT_ERROR:
|
||
{
|
||
h->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_RESULT, (void*)wstr.c_str(), false);
|
||
}
|
||
break;
|
||
case SANE_EVENT_IMAGE_OK:
|
||
{
|
||
if ( wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_CIS_ORIGINAL_IMAGE) == 0
|
||
||wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_IMAGE_QUALITY) == 0
|
||
||wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_DISTORTION) == 0)
|
||
{
|
||
h->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_HAVE_IMAGE, data, true);
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
return 0;
|
||
}
|
||
test(ui_helper* helper) :helper_(helper), fw_(0)
|
||
{
|
||
helper->register_sane_callback(sane_ex_callback, NULL);
|
||
init_test_map_();
|
||
std::string fw1(get_firmware_version());
|
||
if (fw1.size() > 5)
|
||
{
|
||
if ("G1" == fw1.substr(0, 2))
|
||
fw_ = 1;
|
||
else if ("G2" == fw1.substr(0, 2))
|
||
fw_ = 2;
|
||
else if ("G3" == fw1.substr(0, 2))
|
||
fw_ = 3;
|
||
else if ("G4" == fw1.substr(0, 2))
|
||
fw_ = 4;
|
||
}
|
||
}
|
||
~test()
|
||
{}
|
||
|
||
struct ptrcmp
|
||
{
|
||
bool operator()(const wchar_t* NAME1, const wchar_t* NAME2)const
|
||
{
|
||
return wcscmp(NAME1, NAME2) < 0;
|
||
}
|
||
};
|
||
std::map<std::wstring, int(test::*)(void *)> test_map_;
|
||
void init_test_map_()
|
||
{
|
||
test_map_[HGPDTTOOLDB_NAME_DIAL_SWITCH] = &test::test_dial_switch;
|
||
test_map_[HGPDTTOOLDB_NAME_ROCKER_SWITCH] = &test::test_pocker_switch;
|
||
test_map_[HGPDTTOOLDB_NAME_BOOT_STATUS] = &test::test_boot_status;
|
||
test_map_[HGPDTTOOLDB_NAME_LCD_DISPLAY] = &test::test_lcd_display;
|
||
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;
|
||
test_map_[HGPDTTOOLDB_NAME_SKEW_DETECTION] = &test::test_skew_detection;
|
||
test_map_[HGPDTTOOLDB_NAME_SEPARATER_MOTOR] = &test::test_separater_motor;
|
||
test_map_[HGPDTTOOLDB_NAME_CIS_ORIGINAL_IMAGE] = &test::test_cis__original_image;
|
||
test_map_[HGPDTTOOLDB_NAME_HOST_FAN] = &test::test_host_fan;
|
||
test_map_[HGPDTTOOLDB_NAME_ULTRASONIC_MODULE] = &test::test_ultrasonic_module;
|
||
test_map_[HGPDTTOOLDB_NAME_LED_LIGHT] = &test::test_led_light;
|
||
test_map_[HGPDTTOOLDB_NAME_RESET] = &test::test_reset;
|
||
test_map_[HGPDTTOOLDB_NAME_PAPER_FEED] = &test::test_paper_feed;
|
||
test_map_[HGPDTTOOLDB_NAME_COVER_SENSOR] = &test::test_cover_sensor;
|
||
test_map_[HGPDTTOOLDB_NAME_SCANNING_SENSOR] = &test::test_scanning_sensor;
|
||
test_map_[HGPDTTOOLDB_NAME_CONFIGURE_SPEED_MODE] = &test::test_configure_speed_mode;
|
||
test_map_[HGPDTTOOLDB_NAME_PLACE_CORRECTION_PAPER] = &test::test_place_correction_paper;
|
||
test_map_[HGPDTTOOLDB_NAME_AUTO_FLAT_FIELD] = &test::test_auto_flat_field;
|
||
test_map_[HGPDTTOOLDB_NAME_REBOOT_DEVICE] = &test::test_reboot_device;
|
||
test_map_[HGPDTTOOLDB_NAME_IMAGE_QUALITY] = &test::test_image_quality;
|
||
test_map_[HGPDTTOOLDB_NAME_COLORCARD_IMAGEING_QUALITY] = &test::test_colorcard_imageing_quality;
|
||
test_map_[HGPDTTOOLDB_NAME_COLORCARD_BIAS_IMAGEING_QUALITY] = &test::test_colorcard_bias_imageing_quality;
|
||
test_map_[HGPDTTOOLDB_NAME_CLARITY_QUALITY] = &test::test_clarity_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_SINGLE_PAGE_TEST_1] = &test::test_single_page_test_1;
|
||
test_map_[HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_2] = &test::test_single_page_test_2;
|
||
test_map_[HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_3] = &test::test_single_page_test_3;
|
||
test_map_[HGPDTTOOLDB_NAME_PRESSUER_TEST] = &test::test_pressuer_test;
|
||
test_map_[HGPDTTOOLDB_NAME_CLEAR_ROLLER_COUNT] = &test::test_clear_roller_count;
|
||
}
|
||
int set_test(const wchar_t* str)
|
||
{
|
||
|
||
if (!str)
|
||
return SCANNER_ERR_NO_DATA;
|
||
set_test_name_ = str;
|
||
int ret = SCANNER_ERR_OK;
|
||
|
||
auto it = test_map_.find(str);
|
||
|
||
if (it != test_map_.end())
|
||
{
|
||
ret = (this->*test_map_[str])((void *)str);
|
||
}
|
||
else
|
||
{
|
||
helper_->test_callback(str, ui_helper::TEST_EVENT_NOT_FIND_TEST, NULL, false);
|
||
return ret;
|
||
}
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
helper_->test_callback(str, ui_helper::TEST_EVENT_IO_FAIL, NULL, ret);
|
||
}
|
||
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 test_dial_switch(void *data)
|
||
{
|
||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||
}
|
||
/* ¼ì²é´¬ÐÍ¿ª¹Ø¹¦ÄÜ */
|
||
int test_pocker_switch(void *data)
|
||
{
|
||
|
||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||
}
|
||
/* É豸Éϵ粢¹Û²ì¿ª»ú״̬ */
|
||
int test_boot_status(void *data)
|
||
{
|
||
|
||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||
}
|
||
/* ¼ì²éÒº¾§ÏÔʾ */
|
||
int test_lcd_display(void *data)
|
||
{
|
||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||
}
|
||
/* ÇåÀíÖ½µÀ¹¦ÄÜÈ·ÈÏ */
|
||
int tset_clear_paper_path(void *data)
|
||
{
|
||
int ret = helper_->io_control(IO_CTRL_CODE_GET_CLEAN_PAPER_ROAD, NULL, NULL);
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
return ret;
|
||
}
|
||
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_MANUAL_CONFIRMATION, (void*)L"ÇëÈ·ÈÏÊÇ·ñÇåÀíÖ½µÀ³É¹¦", true);
|
||
return ret;
|
||
}
|
||
/* °´¼ü¹¦Äܼì²â */
|
||
int test_key_funtion(void *data)
|
||
{
|
||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||
}
|
||
/* ¼ÆÊýģʽ¼ì²â */
|
||
int test_count_mode(void *data)
|
||
{
|
||
SANE_Bool ismode = false;
|
||
unsigned int len = sizeof(SANE_Bool);
|
||
|
||
int ret = helper_->io_control(IO_CTRL_CODE_GET_IS_MODE, &ismode, &len);
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
return ret;
|
||
}
|
||
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_MANUAL_CONFIRMATION, (void*)L"ÇëÈ·ÈÏÓëÒº¾§Ãæ°åÊÇ·ñÆ¥Åä", ismode);
|
||
return ret;
|
||
}
|
||
/* Íáб¼ì²â */
|
||
int test_skew_detection(void *data)
|
||
{
|
||
const wchar_t* NAME = (wchar_t*)data;
|
||
SANE_Bool type = true;
|
||
unsigned int len = sizeof(SANE_Bool);
|
||
int num = 0;
|
||
void* get_data = NULL;
|
||
parameter * ptr = helper_->get_user_input(ui_helper::DATA_FROM_USER, ui_helper::VAL_TYPE_INT, NAME,L"ÇëÍáб·ÅÖ½...ÉèÖÃãÐÖµ£º1 - 5,ֵԽСԽÈÝÒ×¼ì²â");
|
||
if (ptr)
|
||
{
|
||
get_data = ptr->get_data();
|
||
if (!get_data)
|
||
{
|
||
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"ÒÑÍ˳öÍáб¼ì²âÁ÷³Ì", false);
|
||
return -1;
|
||
}
|
||
num = *((int*)get_data);
|
||
}
|
||
if (num == 0)
|
||
num = 1;
|
||
|
||
int ret = helper_->io_control(IO_CTRL_CODE_SET_SKEW_CHECK, &type, &len);
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
return ret;
|
||
}
|
||
|
||
ret = helper_->io_control(IO_CTRL_CODE_SET_SKEW_CHECK_VAL, &num, &len);
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
return ret;
|
||
}
|
||
ret = helper_->io_control(IO_CTRL_CODE_TEST_SINGLE, NULL, NULL);
|
||
|
||
return ret;
|
||
}
|
||
/* ·ÖÖ½µç»ú¼ì²â */
|
||
int test_separater_motor(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* cisÔͼ³õ¼ì */
|
||
int test_cis__original_image(void *data)
|
||
{
|
||
const wchar_t* NAME = (wchar_t*)data;
|
||
SANE_Bool type = true;
|
||
unsigned int len = sizeof(SANE_Bool);
|
||
int ret = SCANNER_ERR_OK;
|
||
|
||
ret = helper_->io_control(IO_CTRL_CODE_SET_CIS_IMAGE, &type, &len);
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
return ret;
|
||
}
|
||
ret = helper_->io_control(IO_CTRL_CODE_TEST_SINGLE, NULL, NULL);
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
return ret;
|
||
}
|
||
return ret;
|
||
}
|
||
/* Ö÷»ú·çÉȹ¦Äܼì²â */
|
||
int test_host_fan(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ³¬Éù²¨Ä£¿é¼ìÑé */
|
||
int test_ultrasonic_module(void *data)
|
||
{
|
||
const wchar_t* NAME = (wchar_t*)data;
|
||
SANE_Bool type = true;
|
||
unsigned int len = sizeof(SANE_Bool);
|
||
void* get_data = NULL;
|
||
int ret = SCANNER_ERR_OK;
|
||
parameter* ptr = helper_->get_user_input(ui_helper::DATA_FROM_USER, ui_helper::VAL_TYPE_BOOL, NAME, L"ÇëÈ·ÈÏÊÇ·ñÒÑ·ÅË«ÕŲâÊÔÖ½...");
|
||
if (ptr)
|
||
{
|
||
get_data = ptr->get_data();
|
||
if (!get_data || (*((bool*)get_data) == false))
|
||
{
|
||
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"ÒÑÍ˳ö³¬Éù²¨Ä£¿é¼ì²âÁ÷³Ì", false);
|
||
return -1;
|
||
}
|
||
}
|
||
ret = helper_->io_control(IO_CTRL_CODE_SET_ULTRASONIC_MODULE, &type, &len);
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
return ret;
|
||
}
|
||
ret = helper_->io_control(IO_CTRL_CODE_TEST_SINGLE, NULL, NULL);
|
||
return ret;
|
||
}
|
||
/* ledµÆ״̬¼ì²é */
|
||
int test_led_light(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ¸´Î»¼ì²é */
|
||
int test_reset(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ×ßÖ½¼ì²é */
|
||
int test_paper_feed(void *data) //ʹÓõ¥ÕÅɨÃè²âÊÔ
|
||
{
|
||
return helper_->io_control(IO_CTRL_CODE_TEST_SINGLE, NULL, NULL);
|
||
}
|
||
/* ¿ª¸Ç´«¸ÐÆ÷¼ì²é */
|
||
int test_cover_sensor(void *data) //int¶Ëµã·µ»Ø ʹÓõ¥ÕÅɨÃè²âÊÔ
|
||
{
|
||
const wchar_t* NAME = (wchar_t*)data;
|
||
SANE_Bool type = true;
|
||
unsigned int len = sizeof(SANE_Bool);
|
||
void* get_data = NULL;
|
||
int ret = SCANNER_ERR_OK;
|
||
parameter* ptr = helper_->get_user_input(ui_helper::DATA_FROM_USER, ui_helper::VAL_TYPE_BOOL, NAME, L"ÇëÈ·ÈÏÊÇ·ñÒÑ´ò¿ªÉ¨ÃèÒǸÇ...");
|
||
if (ptr)
|
||
{
|
||
get_data = ptr->get_data();
|
||
if (!get_data || (*((bool*)get_data) == false))
|
||
{
|
||
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"ÒÑÍ˳ö¿ª¸Ç´«¸ÐÆ÷¼ì²âÁ÷³Ì", false);
|
||
return -1;
|
||
}
|
||
}
|
||
return helper_->io_control(IO_CTRL_CODE_TEST_SINGLE, NULL, NULL);
|
||
}
|
||
/* ɨÃè´«¸ÐÆ÷¼ì²é */
|
||
int test_scanning_sensor(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ÅäÖÃËÙ¶Èģʽ */
|
||
int test_configure_speed_mode(void *data)
|
||
{
|
||
const wchar_t* NAME = (wchar_t*)data;
|
||
SANE_Bool type = true;
|
||
unsigned int len = sizeof(SANE_Bool);
|
||
int num = 0;
|
||
void* get_data = NULL;
|
||
/*parameter* ptr = helper_->get_user_input(ui_helper::DATA_FROM_USER, ui_helper::VAL_TYPE_RANGE,
|
||
NAME, L"ÇëÉèÖÃËÙ¶Èģʽ,ÖµÔ½´óËÙ¶ÈÔ½¿ì");*/
|
||
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_TIPS, (void*)L"ÇëÉèÖÃËÙ¶Èģʽ,ÖµÔ½´óËÙ¶ÈÔ½¿ì", true);
|
||
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};
|
||
if (fw_ == 1 )
|
||
range = G139;
|
||
else if(fw_ == 2)
|
||
range = G239;
|
||
else if (fw_ == 3)
|
||
range = G300;
|
||
else if (fw_ == 4)
|
||
range = G400;
|
||
|
||
parameter* ptr = helper_->get_user_input(ui_helper::DATA_FROM_USER, ui_helper::VAL_TYPE_RANGE,
|
||
NAME, range);
|
||
|
||
if (ptr)
|
||
{
|
||
get_data = ptr->get_data();
|
||
if (!get_data)
|
||
{
|
||
helper_->test_callback((wchar_t*)data, ui_helper::TEST_EVENT_RESULT, (void*)L"ÒÑÍ˳öÍáб¼ì²âÁ÷³Ì", false);
|
||
return -1;
|
||
}
|
||
num = *((int*)get_data);
|
||
}
|
||
|
||
return helper_->io_control(IO_CTRL_CODE_TEST_SINGLE, NULL, NULL);
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ·ÅÖÃУÕýÖ½ */
|
||
int test_place_correction_paper(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ×Ô¶¯Æ½³¡Ð£Õý */
|
||
int test_auto_flat_field(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ÖØÆôÉ豸 */
|
||
int test_reboot_device(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ɨÃèͼÏñÖÊÁ¿È·ÈÏ */
|
||
int test_image_quality(void *data)
|
||
{
|
||
const wchar_t* NAME = (wchar_t*)data;
|
||
SANE_Bool type = false;
|
||
unsigned int len = sizeof(SANE_Bool);
|
||
int ret = helper_->io_control(IO_CTRL_CODE_SET_SKEW_CHECK, &type, &len);
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
return ret;
|
||
}
|
||
ret = helper_->io_control(IO_CTRL_CODE_GET_IMAGE, NULL, NULL);
|
||
return ret;
|
||
}
|
||
/* É«¿¨Ö½³ÉÏñÖÊÁ¿ÆÀ¹À */
|
||
int test_colorcard_imageing_quality(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* É«¿¨Ö½Æ«É«³ÉÏñÖÊÁ¿ÆÀ¹À */
|
||
int test_colorcard_bias_imageing_quality(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ÇåÎú¶ÈÖÊÁ¿ÆÀ¹À */
|
||
int test_clarity_quality(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* »û±äÐÞÕý */
|
||
int test_distortion(void *data)
|
||
{
|
||
const wchar_t* NAME = (wchar_t*)data;
|
||
SANE_Bool type = true;
|
||
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)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* Íáбµ²Î»¼ì²â */
|
||
int test_skew_gear(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ·Öֽǿ¶È¼ì²â */
|
||
int test_paper_separation_strength(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* »úе×ßÖ½Çãб¼ì²â */
|
||
int test_mech_paper_feeding_inclination(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* µ¥ÕŲâÊÔ1 */
|
||
int test_single_page_test_1(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* µ¥ÕŲâÊÔ2 */
|
||
int test_single_page_test_2(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* µ¥ÕŲâÊÔ3 */
|
||
int test_single_page_test_3(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* ѹÁ¦²âÊÔ2ÂÖ */
|
||
int test_pressuer_test(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
/* Çå³ý¹öÖá¼ÆÊý */
|
||
int test_clear_roller_count(void *data)
|
||
{
|
||
return SCANNER_ERR_OK;
|
||
}
|
||
private:
|
||
|
||
};
|
||
|
||
|
||
//test
|
||
static std::string jsontext1("{\"1\":{\"NAME\":\"test-8\",\"ver\":1}}");
|
||
bool have_img_ = false;
|
||
|
||
DECL_API(int) func_test_init(void* init)
|
||
{
|
||
return 0;
|
||
}
|
||
DECL_API(int) func_test_get_list(wchar_t* buf, size_t* len)
|
||
{
|
||
return str_to_wchar(jsontext1, buf, len);
|
||
}
|
||
DECL_API(int) func_test_go(const wchar_t* NAME, const wchar_t* oper, ui_helper* helper)
|
||
{
|
||
if (!NAME || !oper || !helper)
|
||
{
|
||
return -1;
|
||
}
|
||
//helper->add_ref(void *data);
|
||
|
||
|
||
int ret = 0;
|
||
SANE_Bool type = false;
|
||
unsigned int len = sizeof(SANE_Bool);
|
||
test ts(helper);
|
||
ret = ts.set_test(NAME);
|
||
if (ret != SCANNER_ERR_OK)
|
||
{
|
||
return ret;
|
||
}
|
||
ret = helper->io_control(IO_CTRL_CODE_RESTORE_SETTINGS, NULL, NULL);//½áÊø»Ö¸´Ä¬ÈÏ
|
||
return ret;
|
||
}
|
||
DECL_API(int) func_test_uninit(void* uninit)
|
||
{
|
||
return 0;
|
||
} |