This commit is contained in:
yangjiaxuan 2022-08-31 11:11:18 +08:00
commit 475e3763f2
1 changed files with 42 additions and 59 deletions

View File

@ -3,7 +3,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <thread> #include <thread>
#include "HGScannerLib.h" #include "HGScannerLib.h"
#include "sane_option_definitions.h"
#define DELEAY_MS(x) std::this_thread::sleep_for(std::chrono::milliseconds((x))) #define DELEAY_MS(x) std::this_thread::sleep_for(std::chrono::milliseconds((x)))
using namespace std; using namespace std;
@ -58,59 +57,59 @@ int main(unsigned char argc, unsigned char *argv[])
{ {
HGUInt grpCount = 0; HGUInt grpCount = 0;
HGLibDeviceGetParamGroup *groups = HGLib_GetDeviceParamGroupList(dev, &grpCount); HGLibDeviceParamGroup *groups = HGLib_GetDeviceParamGroupList(dev, &grpCount);
if (groups) if (groups)
{ {
//获取sdk支持的功能项及配置项内容 //获取sdk支持的功能项及配置项内容
for (size_t i = 0; i < grpCount; i++) for (size_t i = 0; i < grpCount; i++)
{ {
cout << groups[i].groupName << endl; cout << "group: " << groups[i].group << endl;
for (size_t j = 0; j < groups[i].paramCount; j++) for (size_t j = 0; j < groups[i].paramCount; j++)
{ {
cout << " title: " << groups[i].param[j].param.title cout << " option: " << groups[i].param[j].option
<< " type: " << groups[i].param[j].param.type << endl; << " type: " << groups[i].param[j].type << endl;
switch (groups[i].param[j].rangeType) switch (groups[i].param[j].rangeType)
{ {
case HGLIB_DEVPARAM_RANGETYPE_INTLIST: case HGLIB_OPTION_VALUERANGETYPE_INTLIST:
for (size_t k = 0; k < groups[i].param[j].intValueList.count; k++) for (size_t k = 0; k < groups[i].param[j].intValueList.count; k++)
{ {
cout<<"support value["<<k<<"]="<<groups[i].param[j].intValueList.value[k]<<endl; cout<<"support value["<<k<<"]="<<groups[i].param[j].intValueList.value[k]<<endl;
} }
break; break;
case HGLIB_DEVPARAM_RANGETYPE_STRINGLIST: case HGLIB_OPTION_VALUERANGETYPE_ENUMLIST:
for (size_t k = 0; k < groups[i].param[j].stringValueList.count; k++) for (size_t k = 0; k < groups[i].param[j].enumValueList.count; k++)
{ {
cout<<"support value["<<k<<"]="<<groups[i].param[j].stringValueList.value[k]<<endl; cout<<"support value["<<k<<"]="<<groups[i].param[j].enumValueList.value[k]<<endl;
} }
break; break;
case HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST: case HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST:
for (size_t k = 0; k < groups[i].param[j].doubleValueList.count; k++) for (size_t k = 0; k < groups[i].param[j].doubleValueList.count; k++)
{ {
cout<<"support value["<<k<<"]="<<groups[i].param[j].doubleValueList.value[k]<<endl; cout<<"support value["<<k<<"]="<<groups[i].param[j].doubleValueList.value[k]<<endl;
} }
break; break;
case HGLIB_DEVPARAM_RANGETYPE_INTRANGE: case HGLIB_OPTION_VALUERANGETYPE_INTRANGE:
cout<<"support value range min = "<<groups[i].param[j].intValueRange.minValue <<" max = "<<groups[i].param[j].intValueRange.maxValue<<endl; cout<<"support value range min = "<<groups[i].param[j].intValueRange.minValue <<" max = "<<groups[i].param[j].intValueRange.maxValue<<endl;
break; break;
case HGLIB_DEVPARAM_RANGETYPE_DOUBLERANGE: case HGLIB_OPTION_VALUERANGETYPE_DOUBLERANGE:
cout<<"support value range min = "<<groups[i].param[j].intValueRange.minValue <<" max = "<<groups[i].param[j].intValueRange.maxValue<<endl; cout<<"support value range min = "<<groups[i].param[j].intValueRange.minValue <<" max = "<<groups[i].param[j].intValueRange.maxValue<<endl;
break; break;
default: default:
break; break;
} }
switch (groups[i].param[j].param.type) switch (groups[i].param[j].type)
{ {
case HGLIB_DEVPARAM_TYPE_INT: case HGLIB_OPTION_VALUETYPE_INT:
cout << " intValue: " << groups[i].param[j].param.intValue << endl; cout << " intValue: " << groups[i].param[j].intValue << endl;
break; break;
case HGLIB_DEVPARAM_TYPE_STRING: case HGLIB_OPTION_VALUETYPE_ENUM:
cout << " stringValue: " << groups[i].param[j].param.stringValue << endl; cout << " enumValue: " << groups[i].param[j].enumValue << endl;
break; break;
case HGLIB_DEVPARAM_TYPE_DOUBLE: case HGLIB_OPTION_VALUETYPE_DOUBLE:
cout << " doubleValue: " << groups[i].param[j].param.doubleValue << endl; cout << " doubleValue: " << groups[i].param[j].doubleValue << endl;
break; break;
case HGLIB_DEVPARAM_TYPE_BOOL: case HGLIB_OPTION_VALUETYPE_BOOL:
cout << " boolValue: " << groups[i].param[j].param.boolValue << endl; cout << " boolValue: " << groups[i].param[j].boolValue << endl;
break; break;
default: default:
cout << "unkownun type" << endl; cout << "unkownun type" << endl;
@ -120,54 +119,38 @@ int main(unsigned char argc, unsigned char *argv[])
} }
} }
HGInt intValue;
HGUInt enumValue;
HGDouble doubleValue;
HGBool boolValue;
//设置颜色模式 //设置颜色模式
HGLibDeviceSetParam setparam; enumValue = HGLIB_OPTION_ENUMVALUE_YSMS_HB;
setparam.title = OPTION_TITLE_YSMS; HGLib_SetDeviceParam(dev,HGLIB_OPTION_NAME_YSMS,&enumValue);
setparam.type = HGLIB_DEVPARAM_TYPE_STRING;
setparam.stringValue = OPTION_VALUE_YSMS_HB;
HGLib_SetDeviceParam(dev,&setparam,1);
//设置分辨率 //设置分辨率
setparam.title = OPTION_TITLE_FBL; intValue = 300;
setparam.type = HGLIB_DEVPARAM_TYPE_INT; HGLib_SetDeviceParam(dev,HGLIB_OPTION_NAME_FBL,&intValue);
setparam.intValue = 300;
HGLib_SetDeviceParam(dev,&setparam,1);
//设置单双面或跳过空白页 //设置单双面或跳过空白页
setparam.title = OPTION_TITLE_SMYM; enumValue = HGLIB_OPTION_ENUMVALUE_SMYM_DM;
setparam.type = HGLIB_DEVPARAM_TYPE_STRING; HGLib_SetDeviceParam(dev,HGLIB_OPTION_NAME_SMYM,&enumValue);
setparam.stringValue = OPTION_VALUE_SMYM_DM;
HGLib_SetDeviceParam(dev,&setparam,1);
//设置纸张尺寸 A3 A4 或匹配原始尺寸 //设置纸张尺寸 A3 A4 或匹配原始尺寸
setparam.title = OPTION_TITLE_ZZCC; enumValue = HGLIB_OPTION_ENUMVALUE_ZZCC_PPYSCC;
setparam.type = HGLIB_DEVPARAM_TYPE_STRING; HGLib_SetDeviceParam(dev,HGLIB_OPTION_NAME_ZZCC,&enumValue);
setparam.stringValue = OPTION_VALUE_ZZCC_PPYSCC;//匹配原始尺寸
//设置旋转 90° 180° 270° //设置旋转 90° 180° 270°
setparam.title = OPTION_TITLE_WGFX; enumValue = HGLIB_OPTION_ENUMVALUE_WGFX_90;
setparam.type = HGLIB_DEVPARAM_TYPE_STRING; HGLib_SetDeviceParam(dev,HGLIB_OPTION_NAME_WGFX,&enumValue);
setparam.stringValue = OPTION_VALUE_WGFX_90;
HGLib_SetDeviceParam(dev,&setparam,1);
// 扫描指定张数
enumValue = HGLIB_OPTION_ENUMVALUE_SMZS_SMZDZS;
HGLib_SetDeviceParam(dev,HGLIB_OPTION_NAME_SMZS,&enumValue);
intValue = 1;
HGLib_SetDeviceParam(dev,HGLIB_OPTION_NAME_SMSL,&intValue);
// //设置扫描张数 -1: 连续扫描 其他:>0 指定数量扫描
// setparam.title = OPTION_TITLE_SMZS;
// setparam.type = HGLIB_DEVPARAM_TYPE_STRING;
// setparam.stringValue = OPTION_VALUE_SMZS_LXSM;//连续扫描
// HGLib_SetDeviceParam(dev,&setparam,1);
setparam.title = OPTION_TITLE_SMZS;
setparam.type = HGLIB_DEVPARAM_TYPE_STRING;
setparam.stringValue = OPTION_VALUE_SMZS_SMZDZS;//指定张数扫描
HGLib_SetDeviceParam(dev,&setparam,1);
setparam.title = OPTION_TITLE_SMSL;
setparam.type = HGLIB_DEVPARAM_TYPE_INT;
setparam.intValue = 1;//扫描张数
HGLib_SetDeviceParam(dev,&setparam,1);
if (HGLib_StartDeviceScan(dev, DeviceScanEvent, 0, DeviceScanImageFunc, 0)) //开始启动扫描并注册扫描事件以及图像回调 if (HGLib_StartDeviceScan(dev, DeviceScanEvent, 0, DeviceScanImageFunc, 0)) //开始启动扫描并注册扫描事件以及图像回调
{ {
DELEAY_MS(10000); //实际走纸延时等待处理 DELEAY_MS(10000); //实际走纸延时等待处理