From 31252537c42586df4ed83bf0bab38757992c8287 Mon Sep 17 00:00:00 2001 From: 13038267101 Date: Thu, 15 Dec 2022 19:53:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E8=B0=83=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/HGProductionTool/hgscanner.cpp | 11 +- app/HGProductionTool/hgscanner.h | 5 +- code/base/test_base.cpp | 288 ++++++++++++++++++++--------- code/base/test_base.h | 56 ++++++ 4 files changed, 271 insertions(+), 89 deletions(-) diff --git a/app/HGProductionTool/hgscanner.cpp b/app/HGProductionTool/hgscanner.cpp index c38032d..a570def 100644 --- a/app/HGProductionTool/hgscanner.cpp +++ b/app/HGProductionTool/hgscanner.cpp @@ -16,18 +16,25 @@ parameter* hgscanner::get_user_input(data_from from, value_type type, const wcha void hgscanner::test_callback(const wchar_t* name, test_event ev, void* data, size_t flag) { + if (ev == ui_helper::TEST_EVENT_TIPS) + { + } + else if(ev == ui_helper::TEST_EVENT_RESULT) + { + + } } int hgscanner::register_sane_callback(sane_callback cb, void* param) { - + cb_ = cb; return 0; } int hgscanner::unregister_sane_callback(sane_callback cb) { - + return 0; } diff --git a/app/HGProductionTool/hgscanner.h b/app/HGProductionTool/hgscanner.h index 8eb2f3d..f206cb7 100644 --- a/app/HGProductionTool/hgscanner.h +++ b/app/HGProductionTool/hgscanner.h @@ -12,9 +12,10 @@ public: virtual int register_sane_callback(sane_callback cb, void* param); virtual int unregister_sane_callback(sane_callback cb); virtual int io_control(unsigned long code, void* data, unsigned* len); - - + static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param); + sane_callback cb_; private: SANE_Handle devHandle_; + }; diff --git a/code/base/test_base.cpp b/code/base/test_base.cpp index 58abbca..0994af6 100644 --- a/code/base/test_base.cpp +++ b/code/base/test_base.cpp @@ -6,103 +6,227 @@ #include #include "huagao/hgscanner_error.h" -static struct Test_Map -{ - const wchar_t* name; //test-1 - const wchar_t* title; //"歪斜检测" - const int ver; - io_code num; -}Test_Map_NO[] = -{ - {HGPDTTOOLDB_NAME_DIAL_SWITCH ,HGPDTTOOLDB_TITLE_DIAL_SWITCH ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_ROCKER_SWITCH ,HGPDTTOOLDB_TITLE_ROCKER_SWITCH ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_BOOT_STATUS ,HGPDTTOOLDB_TITLE_BOOT_STATUS ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_LCD_DISPLAY ,HGPDTTOOLDB_TITLE_LCD_DISPLAY ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_KEY_FUNCTION ,HGPDTTOOLDB_TITLE_KEY_FUNCTION ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_COUNTING_MODE ,HGPDTTOOLDB_TITLE_COUNTING_MODE ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_CIS_ORIGINAL_IMAGE,HGPDTTOOLDB_TITLE_CIS_ORIGINAL_IMAGE ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_HOST_FAN ,HGPDTTOOLDB_TITLE_HOST_FAN ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_LED_LIGHT ,HGPDTTOOLDB_TITLE_LED_LIGHT ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_RESET ,HGPDTTOOLDB_TITLE_RESET ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_PAPER_FEED ,HGPDTTOOLDB_TITLE_PAPER_FEED ,0,IO_CTRL_CODE_BASE}, //不清楚 - {HGPDTTOOLDB_NAME_SCANNING_SENSOR ,HGPDTTOOLDB_TITLE_SCANNING_SENSOR ,0,IO_CTRL_CODE_BASE},//不清楚 - {HGPDTTOOLDB_NAME_PLACE_CORRECTION_PAPER,HGPDTTOOLDB_TITLE_PLACE_CORRECTION_PAPER ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_AUTO_FLAT_FIELD ,HGPDTTOOLDB_TITLE_AUTO_FLAT_FIELD ,0,IO_CTRL_CODE_BASE},//不清楚 - {HGPDTTOOLDB_NAME_IMAGE_QUALITY ,HGPDTTOOLDB_TITLE_IMAGE_QUALITY ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_COLORCARD_IMAGEING_QUALITY ,HGPDTTOOLDB_TITLE_COLORCARD_IMAGEING_QUALITY ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_COLORCARD_BIAS_IMAGEING_QUALITY ,HGPDTTOOLDB_TITLE_COLORCARD_BIAS_IMAGEING_QUALITY ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_CLARITY_QUALITY ,HGPDTTOOLDB_TITLE_CLARITY_QUALITY ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_DISTORTION ,HGPDTTOOLDB_TITLE_DISTORTION ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_SEPARATER_MOTOR ,HGPDTTOOLDB_TITLE_SEPARATER_MOTOR ,0,IO_CTRL_CODE_BASE}, -}, -Test_Map_Bool[] -{ - {HGPDTTOOLDB_NAME_CLEAR_PAPER_PATH ,HGPDTTOOLDB_TITLE_CLEAR_PAPER_PATH ,0,IO_CTRL_CODE_GET_CLEAN_PAPER_ROAD}, - {HGPDTTOOLDB_NAME_SKEW_DETECTION ,HGPDTTOOLDB_TITLE_SKEW_DETECTION ,0,IO_CTRL_CODE_SET_SKEW_CHECK}, - {HGPDTTOOLDB_NAME_ULTRASONIC_MODULE ,HGPDTTOOLDB_TITLE_ULTRASONIC_MODULE ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_COVER_SENSOR ,HGPDTTOOLDB_TITLE_COVER_SENSOR ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_REBOOT_DEVICE ,HGPDTTOOLDB_TITLE_REBOOT_DEVICE ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_MECH_PAPER_FEEDING_INCLINATION,HGPDTTOOLDB_TITLE_MECH_PAPER_FEEDING_INCLINATION ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_CLEAR_ROLLER_COUNT ,HGPDTTOOLDB_TITLE_CLEAR_ROLLER_COUNT,0,IO_CTRL_CODE_SET_CLEAR_ROLLER_COUNT}, - {HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_1 ,HGPDTTOOLDB_TITLE_SINGLE_PAGE_TEST_1,0,IO_CTRL_CODE_TEST_SINGLE}, -}, -Test_Map_String[] +class test { - - {L"123" ,HGPDTTOOLDB_TITLE_CLEAR_ROLLER_COUNT,0,IO_CTRL_CODE_SET_CLEAR_ROLLER_COUNT}, -}, -Test_Map_Int[] -{ - {HGPDTTOOLDB_NAME_PAPER_SEPARATION_STRENGTH ,HGPDTTOOLDB_TITLE_PAPER_SEPARATION_STRENGTH,0,IO_CTRL_CODE_SET_FEEDMODE}, - {HGPDTTOOLDB_NAME_CONFIGURE_SPEED_MODE ,HGPDTTOOLDB_TITLE_CONFIGURE_SPEED_MODE ,0,IO_CTRL_CODE_BASE}, - {HGPDTTOOLDB_NAME_DORMANCY ,HGPDTTOOLDB_TITLE_DORMANCY ,0,IO_CTRL_CODE_SET_POWER_LEVEL}, - {HGPDTTOOLDB_NAME_SKEW_GEAR ,HGPDTTOOLDB_TITLE_SKEW_GEAR,0,IO_CTRL_CODE_SET_SKEW_CHECK_VAL}, - - {HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_2 ,HGPDTTOOLDB_TITLE_SINGLE_PAGE_TEST_2,0,IO_CTRL_CODE_TEST_SINGLE}, - {HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_3 ,HGPDTTOOLDB_TITLE_SINGLE_PAGE_TEST_3,0,IO_CTRL_CODE_TEST_SINGLE}, - {HGPDTTOOLDB_NAME_PRESSUER_TEST ,HGPDTTOOLDB_TITLE_PRESSUER_TEST ,0,IO_CTRL_CODE_BASE}, + ui_helper* helper_; +public: + test(ui_helper* helper) :helper_(helper) + {} + ~test() + {} + + std::map test_map_; + void init_test_map_() + { + // test_map_[HGPDTTOOLDB_NAME_DIAL_SWITCH] = &test::test_dial_switch; + } +public: + + /* 拨码开关校验 */ + int test_dial_switch() + { + + ui_helper::test_event ev = ui_helper::TEST_EVENT_TIPS; + int ret = helper_->io_control(IO_CTRL_CODE_BASE, NULL, NULL); + helper_->test_callback(HGPDTTOOLDB_NAME_DIAL_SWITCH, ev, NULL, ret); + return SCANNER_ERR_OK; + } + /* 检查船型开关功能 */ + int test_pocker_switch() + { + + return SCANNER_ERR_OK; + } + /* 设备上电并观察开机状态 */ + int test_boot_status() + { + + return SCANNER_ERR_OK; + } + /* 检查液晶显示 */ + int test_lcd_display() + { + return SCANNER_ERR_OK; + } + /* 清理纸道功能确认 */ + int tset_clear_paper_path() + { + return SCANNER_ERR_OK; + } + /* 按键功能检测 */ + int test_key_funtion() + { + return SCANNER_ERR_OK; + } + /* 计数模式检测 */ + int test_count_mode() + { + return SCANNER_ERR_OK; + } + /* 歪斜检测 */ + int test_skew_detection() + { + return SCANNER_ERR_OK; + } + /* 分纸电机检测 */ + int test_separater_motor() + { + return SCANNER_ERR_OK; + } + /* cis原图初检 */ + int test_cis__original_image() + { + return SCANNER_ERR_OK; + } + /* 主机风扇功能检测 */ + int test_host_fan() + { + return SCANNER_ERR_OK; + } + /* 超声波模块检验 */ + int test_ultrasonic_module() + { + return SCANNER_ERR_OK; + } + /* led灯状态检查 */ + int test_led_light() + { + return SCANNER_ERR_OK; + } + /* 复位检查 */ + int test_reset() + { + return SCANNER_ERR_OK; + } + /* 走纸检查 */ + int test_paper_feed() + { + return SCANNER_ERR_OK; + } + /* 开盖传感器检查 */ + int test_cover_sensor() + { + return SCANNER_ERR_OK; + } + /* 扫描传感器检查 */ + int test_scanning_sensor() + { + return SCANNER_ERR_OK; + } + /* 配置速度模式 */ + int test_configure_speed_mode() + { + return SCANNER_ERR_OK; + } + /* 放置校正纸 */ + int test_place_correction_paper() + { + return SCANNER_ERR_OK; + } + /* 自动平场校正 */ + int test_auto_flat_field() + { + return SCANNER_ERR_OK; + } + /* 重启设备 */ + int test_reboot_device() + { + } + /* 扫描图像质量确认 */ + int test_image_quality() + { + } + /* 色卡纸成像质量评估 */ + int test_colorcard_imageing_quality() + { + } + /* 色卡纸偏色成像质量评估 */ + int test_colorcard_bias_imageing_quality() + { + } + /* 清晰度质量评估 */ + int test_clarity_quality() + { + } + /* 畸变修正 */ + int test_distortion() + { + } + /* 设置休眠 */ + int test_dormancy() + { + } + /* 歪斜挡位检测 */ + int test_skew_gear() + { + } + /* 分纸强度检测 */ + int test_paper_separation_strength() + { + } + /* 机械走纸倾斜检测 */ + int test_mech_paper_feeding_inclination() + { + } + /* 单张测试1 */ + int test_single_page_test_1() + { + } + /* 单张测试2 */ + int test_single_page_test_2() + { + } + /* 单张测试3 */ + int test_single_page_test_3() + { + } + /* 压力测试2轮 */ + int test_pressuer_test() + { + } + /* 清除滚轴计数 */ + int test_clear_roller_count() + { + } +private: + }; + + + //test static std::string jsontext1("{\"1\":{\"name\":\"test-8\",\"ver\":1}}"); - +std::string str_ret_call_= ""; +bool have_img_ = false; int sane_ex_callback1(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param) { switch (code) { - case SANE_EVENT_DEVICE_ARRIVED: - { - SANE_Device* sane_dev = (SANE_Device*)data; - } - break; - case SANE_EVENT_DEVICE_LEFT: - { - SANE_Device* sane_dev = (SANE_Device*)data; - } - break; case SANE_EVENT_WORKING: { - std::string str = (char*)data; + str_ret_call_ = (char*)data; } break; case SANE_EVENT_SCAN_FINISHED: { - std::string str = (char*)data; + str_ret_call_ = (char*)data; } break; case SANE_EVENT_STATUS: { - std::string str = (char*)data; + str_ret_call_ = (char*)data; } break; case SANE_EVENT_ERROR: { - std::string str = (char*)data; + str_ret_call_ = (char*)data; } break; case SANE_EVENT_IMAGE_OK: { SANE_Image* sane_img = (SANE_Image*)data; + have_img_ = true; } break; } @@ -179,7 +303,7 @@ DECL_API(int) func_test_go(const wchar_t* name, const wchar_t* oper, ui_helper* size_t map_int_len = sizeof(Test_Map_Int) / sizeof(Test_Map_Int[0]); ui_helper::test_event ev = ui_helper::TEST_EVENT_TIPS; //项目测试设置TEST_EVENT_TIPS,测试结果设置TEST_EVENT_RESULT - for (size_t i = 0; i < map_bool_len + map_str_len + map_int_len; i++) + for (size_t i = 0; i < map_bool_len; i++) { des = (wchar_t*)Test_Map_Bool[i].title; if (wcscmp(name, Test_Map_Bool[i].name) == 0) //理论上手动处理的事项是不会传下来 @@ -187,31 +311,29 @@ DECL_API(int) func_test_go(const wchar_t* name, const wchar_t* oper, ui_helper* SANE_Bool map_bool = true; unsigned int len = sizeof(SANE_Bool); ret = helper->io_control(Test_Map_Bool[i].num,(void *)&map_bool, &len); - if (ret == SCANNER_ERR_OK) - { ev = ui_helper::TEST_EVENT_RESULT; - helper->test_callback(Test_Map_Bool[i].name, ev, des, true); - map_bool = false; - ret = helper->io_control(Test_Map_Bool[i].num, &map_bool, &len); - } + helper->test_callback(Test_Map_Bool[i].name, ev, NULL, ret); + return SCANNER_ERR_OK; } - else if(wcscmp(name, Test_Map_String[i].name) == 0) + /*else if(wcscmp(name, Test_Map_String[i].name) == 0) { - if (wcscmp(name, HGPDTTOOLDB_NAME_PAPER_SEPARATION_STRENGTH) == 0) - { - } return SCANNER_ERR_OK; } else if (wcscmp(name, Test_Map_Int[i].name) == 0) { return SCANNER_ERR_OK; - } + }*/ } ret = helper->io_control(IO_CTRL_CODE_RESTORE_SETTINGS, NULL, NULL); //helper->release(); //helper->unregister_sane_callback(sane_ex_callback); + if (!helper) + { + return SCANNER_ERR_NO_DATA; + } + //test ts(helper); return SCANNER_ERR_OK; } DECL_API(int) func_test_uninit(void* uninit) @@ -219,7 +341,3 @@ DECL_API(int) func_test_uninit(void* uninit) return 0; } - - - - diff --git a/code/base/test_base.h b/code/base/test_base.h index 1dfd297..81f3510 100644 --- a/code/base/test_base.h +++ b/code/base/test_base.h @@ -146,7 +146,63 @@ #define HGPDTTOOLDB_NAME_PRESSUER_TEST L"test-34" /* 娓呴櫎婊氳酱璁℃暟 */ #define HGPDTTOOLDB_NAME_CLEAR_ROLLER_COUNT L"test-35" +static struct Test_Map +{ + const wchar_t* name; //test-1 + const wchar_t* title; //"姝枩妫娴" + const int ver; + io_code num; +}Test_Map_NO[] = +{ + {HGPDTTOOLDB_NAME_DIAL_SWITCH ,HGPDTTOOLDB_TITLE_DIAL_SWITCH ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_ROCKER_SWITCH ,HGPDTTOOLDB_TITLE_ROCKER_SWITCH ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_BOOT_STATUS ,HGPDTTOOLDB_TITLE_BOOT_STATUS ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_LCD_DISPLAY ,HGPDTTOOLDB_TITLE_LCD_DISPLAY ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_KEY_FUNCTION ,HGPDTTOOLDB_TITLE_KEY_FUNCTION ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_COUNTING_MODE ,HGPDTTOOLDB_TITLE_COUNTING_MODE ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_CIS_ORIGINAL_IMAGE,HGPDTTOOLDB_TITLE_CIS_ORIGINAL_IMAGE ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_HOST_FAN ,HGPDTTOOLDB_TITLE_HOST_FAN ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_LED_LIGHT ,HGPDTTOOLDB_TITLE_LED_LIGHT ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_RESET ,HGPDTTOOLDB_TITLE_RESET ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_PAPER_FEED ,HGPDTTOOLDB_TITLE_PAPER_FEED ,0,IO_CTRL_CODE_BASE}, //涓嶆竻妤 + {HGPDTTOOLDB_NAME_SCANNING_SENSOR ,HGPDTTOOLDB_TITLE_SCANNING_SENSOR ,0,IO_CTRL_CODE_BASE},//涓嶆竻妤 + {HGPDTTOOLDB_NAME_PLACE_CORRECTION_PAPER,HGPDTTOOLDB_TITLE_PLACE_CORRECTION_PAPER ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_AUTO_FLAT_FIELD ,HGPDTTOOLDB_TITLE_AUTO_FLAT_FIELD ,0,IO_CTRL_CODE_BASE},//涓嶆竻妤 + {HGPDTTOOLDB_NAME_IMAGE_QUALITY ,HGPDTTOOLDB_TITLE_IMAGE_QUALITY ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_COLORCARD_IMAGEING_QUALITY ,HGPDTTOOLDB_TITLE_COLORCARD_IMAGEING_QUALITY ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_COLORCARD_BIAS_IMAGEING_QUALITY ,HGPDTTOOLDB_TITLE_COLORCARD_BIAS_IMAGEING_QUALITY ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_CLARITY_QUALITY ,HGPDTTOOLDB_TITLE_CLARITY_QUALITY ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_DISTORTION ,HGPDTTOOLDB_TITLE_DISTORTION ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_SEPARATER_MOTOR ,HGPDTTOOLDB_TITLE_SEPARATER_MOTOR ,0,IO_CTRL_CODE_BASE}, +}, +Test_Map_Bool[] +{ + {HGPDTTOOLDB_NAME_CLEAR_PAPER_PATH ,HGPDTTOOLDB_TITLE_CLEAR_PAPER_PATH ,0,IO_CTRL_CODE_GET_CLEAN_PAPER_ROAD}, + {HGPDTTOOLDB_NAME_SKEW_DETECTION ,HGPDTTOOLDB_TITLE_SKEW_DETECTION ,0,IO_CTRL_CODE_SET_SKEW_CHECK}, + {HGPDTTOOLDB_NAME_ULTRASONIC_MODULE ,HGPDTTOOLDB_TITLE_ULTRASONIC_MODULE ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_COVER_SENSOR ,HGPDTTOOLDB_TITLE_COVER_SENSOR ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_REBOOT_DEVICE ,HGPDTTOOLDB_TITLE_REBOOT_DEVICE ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_MECH_PAPER_FEEDING_INCLINATION,HGPDTTOOLDB_TITLE_MECH_PAPER_FEEDING_INCLINATION ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_CLEAR_ROLLER_COUNT ,HGPDTTOOLDB_TITLE_CLEAR_ROLLER_COUNT,0,IO_CTRL_CODE_SET_CLEAR_ROLLER_COUNT}, + {HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_1 ,HGPDTTOOLDB_TITLE_SINGLE_PAGE_TEST_1,0,IO_CTRL_CODE_TEST_SINGLE}, +}, +Test_Map_String[] +{ + + {L"123" ,HGPDTTOOLDB_TITLE_CLEAR_ROLLER_COUNT,0,IO_CTRL_CODE_SET_CLEAR_ROLLER_COUNT}, +}, +Test_Map_Int[] +{ + {HGPDTTOOLDB_NAME_PAPER_SEPARATION_STRENGTH ,HGPDTTOOLDB_TITLE_PAPER_SEPARATION_STRENGTH,0,IO_CTRL_CODE_SET_FEEDMODE}, + {HGPDTTOOLDB_NAME_CONFIGURE_SPEED_MODE ,HGPDTTOOLDB_TITLE_CONFIGURE_SPEED_MODE ,0,IO_CTRL_CODE_BASE}, + {HGPDTTOOLDB_NAME_DORMANCY ,HGPDTTOOLDB_TITLE_DORMANCY ,0,IO_CTRL_CODE_SET_POWER_LEVEL}, + {HGPDTTOOLDB_NAME_SKEW_GEAR ,HGPDTTOOLDB_TITLE_SKEW_GEAR,0,IO_CTRL_CODE_SET_SKEW_CHECK_VAL}, + + {HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_2 ,HGPDTTOOLDB_TITLE_SINGLE_PAGE_TEST_2,0,IO_CTRL_CODE_TEST_SINGLE}, + {HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_3 ,HGPDTTOOLDB_TITLE_SINGLE_PAGE_TEST_3,0,IO_CTRL_CODE_TEST_SINGLE}, + {HGPDTTOOLDB_NAME_PRESSUER_TEST ,HGPDTTOOLDB_TITLE_PRESSUER_TEST ,0,IO_CTRL_CODE_BASE}, +}; #define TEST_DLL #ifdef TEST_DLL #define DECL_API(ret) __declspec(dllexport) ret __stdcall