回调调整

This commit is contained in:
13038267101 2022-12-15 19:53:41 +08:00
parent dbb5398156
commit 31252537c4
4 changed files with 271 additions and 89 deletions

View File

@ -16,12 +16,19 @@ 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;
}

View File

@ -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_;
};

View File

@ -6,103 +6,227 @@
#include <iostream>
#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
{
ui_helper* helper_;
public:
test(ui_helper* helper) :helper_(helper)
{}
~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},
std::map<const wchar_t*, test> 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:
{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},
};
//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)
{
if (wcscmp(name, HGPDTTOOLDB_NAME_PAPER_SEPARATION_STRENGTH) == 0)
/*else if(wcscmp(name, Test_Map_String[i].name) == 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;
}

View File

@ -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