123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473 |
- #include "hspscanner.nantian.1.1.h"
- #include "Gvar.h"
- Gvar *g_var = NULL;
- //获取高拍仪的pid和vid来确认设备是否在线
- colorType g_color = cFULL;
- sizeType g_size = sErr;
- positionType g_position = pNOANGLE;
- int g_X=-1, g_Y=-1, g_Width=-1, g_Height=-1;
- BOOL g_isshow = FALSE;
- BOOL g_ishide = TRUE;
- BOOL m_isOnline = FALSE;
- DevErrorInfo m_Error; //标记错误码
- char Idx[100] = "";
- char Idy[100] = "";
- char IdWidth[100] = "";
- char IdHeight[100] = "";
- char g_IniPath[1024] = "";
- int g_SetPara = -1;
- #include <sys/stat.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <dirent.h>
- #include <limits.h>
- #include <limits.h>
- #include "log4vendor.h"
- #include <fstream>
- using namespace std;
- int FileSize(const char* fname)
- {
- struct stat statbuf;
- if(stat(fname,&statbuf)==0)
- return statbuf.st_size;
- return -1;
- }
- int FileSizeEx(const char* fname)
- {
- // 1. 打开图片文件
- ifstream is(fname, ifstream::in | ios::binary);
- // 2. 计算图片长度
- is.seekg(0, is.end); //将文件流指针定位到流的末尾
- int length = is.tellg();
- is.seekg(0, is.beg); //将文件流指针重新定位到流的开始
- return length;
- }
- int GetFileSizeEx(const char* fname)
- {
- unsigned long lsize = -1;
- FILE *fp = NULL;
- fp = fopen(fname,"r");
- if (fp == NULL)
- return lsize;
- fseek(fp,0L,SEEK_END);
- lsize = ftell(fp);
- fclose(fp);
- return lsize;
- }
- bool is_dir(const char *path)
- {
- struct stat statbuf;
- if(lstat(path, &statbuf) ==0)//lstat返回文件的信息,文件信息存放在stat结构中
- {
- return S_ISDIR(statbuf.st_mode) != 0;//S_ISDIR宏,判断文件类型是否为目录
- }
- return false;
- }
- //判断是否为常规文件
- bool is_file(const char *path)
- {
- struct stat statbuf;
- if(lstat(path, &statbuf) ==0)
- return S_ISREG(statbuf.st_mode) != 0;//判断文件是否为常规文件
- return false;
- }
- //判断是否是特殊目录
- bool is_special_dir(const char *path)
- {
- return strcmp(path, ".") == 0 || strcmp(path, "..") == 0;
- }
- //生成完整的文件路径
- void get_file_path(const char *path, const char *file_name, char *file_path)
- {
- strcpy(file_path, path);
- if(file_path[strlen(path) - 1] != '/')
- strcat(file_path, "/");
- strcat(file_path, file_name);
- }
- void CreateDir(const char *path)
- {
- int i = 0;
- char FilePath[100] = "";
- FilePath[0] = path[0];
- for(i= 1; i<=strlen(path); i++)
- {
- FilePath[i] = path[i];
- if(path[i] == '/')
- {
- if(access(FilePath, F_OK) != 0)
- mkdir(FilePath,ACCESSPERMS);
- else
- chmod(FilePath,ACCESSPERMS);
- }
- }
- }
- void delete_file(const char *path)
- {
- DIR *dir;
- dirent *dir_info;
- char file_path[PATH_MAX];
- if(is_file(path))
- {
- remove(path);
- return;
- }
- if(is_dir(path))
- {
- if((dir = opendir(path)) == NULL)
- return;
- while((dir_info = readdir(dir)) != NULL)
- {
- get_file_path(path, dir_info->d_name, file_path);
- if(is_special_dir(dir_info->d_name))
- continue;
- delete_file(file_path);
- rmdir(file_path);
- }
- }
- }
- void HSP_SetPara()
- {
- g_var->m_trace->WriteTrace("HSP_SetPara","设置操作:g_color=%d,g_position=%d,g_size=%d",g_color,g_position,g_size);
- // if (!g_isshow)
- // {
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置操作:g_color="<<g_color);
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置操作:g_position="<<g_position);
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置操作:g_size="<<g_size);
- int iretval = 0;
- if (g_color == cFULL)
- {
- if (g_isshow)
- {
- iretval = g_var->HIGH_SetColorType(0);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置彩色HIGH_SetColorType return iretval=%d",iretval);
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置彩色HIGH_SetColorType return iretval="<<iretval);
- }
- g_color = cErr;
- }
- if (g_color == cGRAY)
- {
- if (g_isshow)
- {
- iretval = g_var->HIGH_SetColorType(1);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置灰度HIGH_SetColorType return iretval=%d",iretval);
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置灰度HIGH_SetColorType return iretval="<<iretval);
- }
- g_color = cErr;
- }
- if (g_size == sFULL)
- {
- if (g_isshow)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置全画幅尺寸:Entry HIGH_SetAutoCrop ");
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置全画幅尺寸:Entry HIGH_SetAutoCrop ");
- iretval = g_var->HIGH_SetAutoCrop(false);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置全画幅尺寸:Exit HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置全画幅尺寸:Exit HIGH_SetAutoCrop return"<<iretval);
- }
- g_size = sErr;
- }
- if ((g_size == sA4) || (g_size == sIDCARD))
- {
- // HELOAMRECT rect = NULL;
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置尺寸:Entry EloamVideo_GetWidth ");
- // int width = EloamVideo_GetWidth(m_hVideo);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置尺寸:Exit EloamVideo_GetWidth return %d",width);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置尺寸:Entry EloamVideo_GetHeight");
- // int heigth = EloamVideo_GetHeight(m_hVideo);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置尺寸:exit EloamVideo_GetHeight return %d",heigth);
- // if (g_size == sA4)// A4尺寸扫描
- // {
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置A4尺寸:Entry EloamGlobal_CreateRect ");
- // rect = EloamGlobal_CreateRect(0, (heigth*196)/10000, width,(heigth*957)/1000);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置A4尺寸:Exit EloamGlobal_CreateRect ");
- // }
- // else if (g_size == sIDCARD)// 身份证尺寸扫描
- // {
- // memset(Idx,0,sizeof(Idx));
- // memset(Idy,0,sizeof(Idy));
- // memset(IdWidth,0,sizeof(IdWidth));
- // memset(IdHeight,0,sizeof(IdHeight));
- // ::GetPrivateProfileString("HSPScanner","Idx","310",Idx,sizeof(Idx),g_IniPath);
- // ::GetPrivateProfileString("HSPScanner","Idy","360",Idy,sizeof(Idy),g_IniPath);
- // ::GetPrivateProfileString("HSPScanner","IdWidth","350",IdWidth,sizeof(IdWidth),g_IniPath);
- // ::GetPrivateProfileString("HSPScanner","IdHeight","310",IdHeight,sizeof(IdHeight),g_IniPath);
- //
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置身份证尺寸:Entry EloamGlobal_CreateRect ");
- // rect = EloamGlobal_CreateRect((width*atoi(Idx))/1000, (heigth*atoi(Idy))/1000, (width*atoi(IdWidth))/1000,(heigth*atoi(IdHeight))/1000);
- // // rect = EloamGlobal_CreateRect((width*345)/1000, (heigth*360)/1000, (width*350)/1000,(heigth*310)/1000);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置身份证尺寸:exit EloamGlobal_CreateRect ");
- // }
- // if (m_hView)
- // {
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置A4 or 身份证尺寸Entry EloamView_SetState ");
- // bret = EloamView_SetState(m_hView,2);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置A4 or 身份证尺寸exit EloamView_SetState return %d",bret);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置A4 or 身份证尺寸Entry EloamView_SetSelectedRect ");
- // bret = EloamView_SetSelectedRect(m_hView,rect);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置A4 or 身份证尺寸exit EloamView_SetSelectedRect return %d",bret);
- // }
- // if (rect)
- // EloamRect_Release(rect);
- if (g_isshow)
- {
- iretval = g_var->HIGH_SetAutoCrop(true);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置A4、身份证尺寸:Exit HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置A4、身份证尺寸:Exit HIGH_SetAutoCrop return"<<iretval);
- }
- g_size = sErr;
- }
- if (g_position == pNOANGLE)// 物理环境的上方为预览窗口的上方 Positive direction.
- {
- }
- if (g_position == pLEFT)// 物理环境的左侧为预览窗口的上方
- {
- if (g_isshow)
- {
- iretval = g_var->HIGH_SetRotateSize(1);//旋转90
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置pLEFT,iretval=%d",iretval);
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置pLEFT,iretval"<<iretval);
- }
- }
- if (g_position == pMIRROR)// 物理环境的下方为预览窗口的上方 Opposite/Nagative direction.
- {
- if (g_isshow)
- {
- iretval = g_var->HIGH_SetRotateSize(2);//旋转180
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置pMIRROR,iretval=%d",iretval);
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置pMIRROR,iretval="<<iretval);
- }
- }
- if (g_position == pRIGHT)// 物理环境的右侧为预览窗口的上方
- {
- if (g_isshow)
- {
- iretval = g_var->HIGH_SetRotateSize(3);//旋转270
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"HSP_SetPara","设置pRIGHT,iretval=%d",iretval);
- LOG4VTM(WARN, "<HSP_SetPara> - "<<"设置pRIGHT,iretval="<<iretval);
- }
- }
- g_SetPara = 0;
- }
- HSPSCANNER_API ErrorCodeEnum CreateDevComponent(DeviceBaseClass *&baseObj)
- {
- baseObj = new CHSPScanner();
- if (baseObj == NULL)
- return Error_Resource;
- g_var->m_trace->WriteTrace("CreateDevComponent","执行CreateDevComponent成功");
- return Error_Succeed;
- }
- HSPSCANNER_API ErrorCodeEnum ReleaseDevComponent(DeviceBaseClass *&pBaseObj)
- {
- if (pBaseObj == NULL)
- return Error_Param;
- CHSPScanner* pTmp = (CHSPScanner*)(pBaseObj);
- delete pTmp;
- pTmp = NULL;
- g_var->m_trace->WriteTrace("ReleaseDevComponent","执行ReleaseDevComponent成功");
- return Error_Succeed;
- }
- //
- // Device initialization.
- // Connect to High speed portable scanner.
- // 更新20161117:只做设备连接操作,不显示窗口
- //
- CHSPScanner::CHSPScanner(void)
- {
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"操作成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- g_var = new Gvar();
- char INIPath[100] = "";
- CILIX_AUX_X::CILIX_GetModuleCurPath(INIPath);
- strcat(INIPath, "hspscanner.nantian.ini");
- char log_dir[100] = "";
- CILIX_AUX_X::CILIX_X_INIKeyString(INIPath, "LOGConfig", "log_dir", log_dir, "/etc/nantian");
- char log_level[100] = "";
- CILIX_AUX_X::CILIX_X_INIKeyString(INIPath, "LOGConfig", "log_level", log_level, "3");
- cmb::log_init_config config;
- config.dev_name = "HSPScannerso";
- config.log_dir = log_dir;
- config.log_level = atoi(log_level);
- std::string str;
- cmb::log4vendor::init(config, str);
- }
- CHSPScanner::~CHSPScanner()
- {
- if (g_var)
- {
- delete g_var;
- g_var = NULL;
- }
- }
- ErrorCodeEnum CHSPScanner::DevOpen()
- {
- ErrorCodeEnum iret = Error_Succeed;
- int iretval = 0;
- LOG4VTM(WARN, "<DevOpen> - "<<"Enter-");
- CILIXAutoTrace _at(g_var->m_trace,"DevOpen",&iretval);
- if (!g_var->m_isLoad)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"DevOpen","高拍仪so或函数加载失败");
- LOG4VTM(WARN, "<DevOpen> - "<<"高拍仪so或函数加载失败");
- LOG4VTM(WARN, "<DevOpen> - "<<"Exit-");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"高拍仪so或函数加载失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_DevLoadFileFailed;
- return iret;
- }
- //打开高拍仪
- iretval = g_var->HIGH_StartCamera();
- if (iretval != 0)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"DevOpen","打开高拍仪失败,HIGH_StartCamera return %d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"打开高拍仪失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_DevConnFailed;
- LOG4VTM(WARN, "<DevOpen> - "<<"打开高拍仪失败,HIGH_StartCamera return "<<iretval);
- LOG4VTM(WARN, "<DevOpen> - "<<"Exit-");
- return iret;
- }
- //设置高拍仪分辨率
- int iWIDTH =3264; //3264;/*280;//1600;800;*///1920
- //int HEIGHT = 1080;/*720;//1200;600;*///1080
- int iHEIGHT =2448; //2448;/*720;//1200;600;*/
- iretval = g_var->HIGH_SetCameraPixel(iWIDTH,iHEIGHT);
- if (iretval != 0)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"DevOpen","设置高拍仪分辨率操作失败,HIGH_SetCameraPixel return %d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设置高拍仪分辨率操作失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_DevConnFailed;
- LOG4VTM(WARN, "<DevOpen> - "<<"设置高拍仪分辨率操作失败,HIGH_SetCameraPixel return "<<iretval);
- LOG4VTM(WARN, "<DevOpen> - "<<"Exit-");
- return iret;
- }
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"DevOpen","打开高拍仪成功");
- g_var->m_connect = TRUE;
- m_isOnline = TRUE;
- LOG4VTM(WARN, "<DevOpen> - "<<"打开高拍仪成功");
- LOG4VTM(WARN, "<DevOpen> - "<<"Exit-");
- return Error_Succeed;
- }
- //
- // Set param, more detail please to see ParamType and its according ParamTypeValue.
- //
- ErrorCodeEnum CHSPScanner::SetParam(ParamType type, ParamTypeValue value)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","Entry:输入参数type:%d,输入参数value:%d",type,value);
- LOG4VTM(WARN, "<SetParam> - "<<"Entry-");
- LOG4VTM(WARN, "<SetParam> - "<<"输入参数type:"<<type);
- LOG4VTM(WARN, "<SetParam> - "<<"输入参数value:"<<value);
- ErrorCodeEnum iret = Error_Succeed;
- int iretval = 0;
- /*if (!g_var->m_connect)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetParam","未做DevOpen操作");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"未做DevOpen操作");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_NotInit;
- throw iret;
- }*/
- if (type == HSPS_MODEL_COLOR)/**设置色彩*/
- {
- if (value == HSPS_COLOR_FULL)// 彩色模式 default mod.
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- iretval = g_var->HIGH_SetColorType(0);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置彩色模式HIGH_SetColorType return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置彩色模式HIGH_SetColorType return "<<iretval);
- }
- else
- g_color = cFULL;
- }
- else if (value == HSPS_COLOR_GREY)// 灰度模式 gray mode.
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- iretval = g_var->HIGH_SetColorType(1);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置灰度模式HIGH_SetColorType return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置灰度模式HIGH_SetColorType return "<<iretval);
- }
- else
- g_color = cGRAY;
- }
- else
- {
- g_color = cErr;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetParam","设置色彩:传入value 参数错误_参数超出定义范围");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设置色彩:传入value 参数错误_参数超出定义范围");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_Param;
- LOG4VTM(WARN, "<SetParam> - "<<"设置色彩:传入value 参数错误_参数超出定义范围");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","色彩设置成功,g_color=%d",g_color);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"色彩设置成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<SetParam> - "<<"色彩设置成功,g_color="<<g_color);
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- else if (type == HSPS_MODEL_ROTATE)/**设置拍摄角度,不带持续旋转的意义*/
- {
- if (value == HSPS_ROTATE_NOANGLE)// 物理环境的上方为预览窗口的上方 Positive direction.
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- if (g_position == pMIRROR)
- {
- iretval = g_var->HIGH_SetRotateSize(2);//旋转180
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置旋转180度,HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置旋转180度,HIGH_SetAutoCrop return "<<iretval);
- }
- if (g_position == pLEFT)
- {
- iretval = g_var->HIGH_SetRotateSize(3);//旋转270
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置左旋,HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置左旋,HIGH_SetAutoCrop return "<<iretval);
- }
- if (g_position == pRIGHT)
- {
- g_var->HIGH_SetRotateSize(1);//旋转90
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置右旋,HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置右旋,HIGH_SetAutoCrop return "<<iretval);
- }
- }
- g_position = pNOANGLE;
- }
- else if (value == HSPS_ROTATE_LEFT)// 物理环境的左侧为预览窗口的上方
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- if ((g_position != pLEFT) && (g_position == pNOANGLE))
- {
- iretval = g_var->HIGH_SetRotateSize(1);//旋转90
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HSPS_ROTATE_LEFT,右旋HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"HSPS_ROTATE_LEFT,右旋HIGH_SetAutoCrop return "<<iretval);
- }
- if ((g_position != pLEFT) && (g_position == pRIGHT))
- {
- iretval = g_var->HIGH_SetRotateSize(2);//旋转180
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HSPS_ROTATE_LEFT,旋转180HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"HSPS_ROTATE_LEFT,旋转180HIGH_SetAutoCrop return "<<iretval);
- }
- if ((g_position != pLEFT) && (g_position == pMIRROR))
- {
- iretval = g_var->HIGH_SetRotateSize(3);//旋转270
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HSPS_ROTATE_LEFT,左旋HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"HSPS_ROTATE_LEFT,左旋HIGH_SetAutoCrop return "<<iretval);
- }
- }
- g_position = pLEFT;
- }
- else if (value == HSPS_ROTATE_MIRROR)// 物理环境的下方为预览窗口的上方 Opposite/Nagative direction.
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- if ((g_position != pMIRROR)&&(g_position == pNOANGLE))
- {
- iretval = g_var->HIGH_SetRotateSize(2);//旋转180
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HSPS_ROTATE_MIRROR,旋180HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"HSPS_ROTATE_MIRROR,旋180HIGH_SetAutoCrop return "<<iretval);
- }
- if ((g_position != pMIRROR)&&(g_position == pLEFT))
- {
- iretval = g_var->HIGH_SetRotateSize(1);//旋转90
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HSPS_ROTATE_MIRROR,右旋HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"HSPS_ROTATE_MIRROR,右旋HIGH_SetAutoCrop return "<<iretval);
- }
- if ((g_position != pMIRROR)&&(g_position == pRIGHT))
- {
- iretval = g_var->HIGH_SetRotateSize(3);//旋转270
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HSPS_ROTATE_MIRROR,左旋HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"HSPS_ROTATE_MIRROR,左旋HIGH_SetAutoCrop return "<<iretval);
- }
- }
- // else
- g_position = pMIRROR;
- }
- else if (value == HSPS_ROTATE_RIGHT)// 物理环境的右侧为预览窗口的上方
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- if ((g_position != pRIGHT)&&(g_position == pNOANGLE))
- {
- iretval = g_var->HIGH_SetRotateSize(3);//旋转270
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HSPS_ROTATE_RIGHT,左旋HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"HSPS_ROTATE_RIGHT,左旋HIGH_SetAutoCrop return "<<iretval);
- }
- if ((g_position != pRIGHT) && (g_position == pLEFT))
- {
- iretval = g_var->HIGH_SetRotateSize(2);//旋转180
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HSPS_ROTATE_RIGHT,旋180HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"HSPS_ROTATE_RIGHT,旋180HIGH_SetAutoCrop return "<<iretval);
- }
- if ((g_position != pRIGHT) && (g_position == pMIRROR))
- {
- iretval = g_var->HIGH_SetRotateSize(1);//旋转90
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HSPS_ROTATE_RIGHT,右旋HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"HSPS_ROTATE_RIGHT,右旋HIGH_SetAutoCrop return "<<iretval);
- }
- }
- g_position = pRIGHT;
- }
- else
- {
- g_position = pErr;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetParam","设置角度:传入value 参数错误_参数超出定义范围");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设置角度:传入value 参数错误_参数超出定义范围");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_Param;
- LOG4VTM(WARN, "<SetParam> - "<<"设置角度:传入value 参数错误_参数超出定义范围");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"旋转参数设置成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","旋转角度设置成功g_position=%d",g_position);
- LOG4VTM(WARN, "<SetParam> - "<<"旋转角度设置成功g_position="<<g_position);
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- else if (type == HSPS_MODEL_SCANSIZE)/**设置扫描图片尺寸*/
- {
- if (value == HSPS_SCAN_FULL)//全画幅扫描
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置全画幅尺寸:Entry HIGH_SetAutoCrop ");
- LOG4VTM(WARN, "<SetParam> - "<<"设置全画幅尺寸:Entry HIGH_SetAutoCrop ");
- iretval = g_var->HIGH_SetAutoCrop(false);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置全画幅尺寸:Exit HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置全画幅尺寸:Exit HIGH_SetAutoCrop return "<<iretval);
- }
- else
- g_size = sFULL;
- }
- else if ((value == HSPS_SCAN_A4) || (value == HSPS_SCAN_IDCARD))
- {
- ParamTypeValue oldposition = HSPS_ROTATE_NOANGLE;
- int width = 0;
- int heigth = 0;
- if (value == HSPS_SCAN_A4)// A4尺寸扫描
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置尺寸:Entry EloamVideo_GetWidth ");
- // width = EloamVideo_GetWidth(m_hVideo);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置尺寸:Exit EloamVideo_GetWidth return %d",width);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置尺寸:Entry EloamVideo_GetHeight");
- // heigth = EloamVideo_GetHeight(m_hVideo);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置尺寸:exit EloamVideo_GetHeight return %d",heigth);
- iretval = g_var->HIGH_SetAutoCrop(true);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置纠偏 HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置纠偏 HIGH_SetAutoCrop return "<<iretval);
- }
- else
- g_size = sA4;
- }
- else// 身份证尺寸扫描
- {
- if (g_isshow&&(((g_position != pNOANGLE) && (g_position != pErr))))
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置身份证,如果预览之前已经做过旋转,需要旋转正向后再做尺寸规范g_position=%d",g_position);
- LOG4VTM(WARN, "<SetParam> - "<<"设置身份证,如果预览之前已经做过旋转,需要旋转正向后再做尺寸规范g_position="<<g_position);
- switch (g_position)
- {
- case pLEFT:
- oldposition = HSPS_ROTATE_LEFT;
- break;
- case pRIGHT:
- oldposition = HSPS_ROTATE_RIGHT;
- break;
- case pMIRROR:
- oldposition = HSPS_ROTATE_MIRROR;
- break;
- }
- if ((g_position == pMIRROR))
- {
- iretval = g_var->HIGH_SetRotateSize(2);//旋转180
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","身份证尺寸扫描,旋180HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"身份证尺寸扫描,旋180HIGH_SetAutoCrop return="<<iretval);
- }
- if ((g_position == pLEFT))
- {
- iretval = g_var->HIGH_SetRotateSize(3);//旋转270
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","身份证尺寸扫描,左旋HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"身份证尺寸扫描,左旋HIGH_SetAutoCrop return="<<iretval);
- }
- if ((g_position == pRIGHT))
- {
- iretval = g_var->HIGH_SetRotateSize(1);//旋转90
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","身份证尺寸扫描,右旋HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"身份证尺寸扫描,右旋HIGH_SetAutoCrop return="<<iretval);
- }
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置身份证,如果预览之前已经做过旋转,oldposition=%d",oldposition);
- LOG4VTM(WARN, "<SetParam> - "<<"设置身份证,如果预览之前已经做过旋转,oldposition="<<oldposition);
- }
- else
- g_size = sIDCARD;
- iretval = g_var->HIGH_SetAutoCrop(true);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","sIDCARD设置纠偏 HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"sIDCARD设置纠偏 HIGH_SetAutoCrop return="<<iretval);
- // if (m_hVideo)
- // {
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置尺寸:Entry EloamVideo_GetWidth ");
- // width = EloamVideo_GetWidth(m_hVideo);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置尺寸:Exit EloamVideo_GetWidth return %d",width);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置尺寸:Entry EloamVideo_GetHeight");
- // heigth = EloamVideo_GetHeight(m_hVideo);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置尺寸:exit EloamVideo_GetHeight return %d",heigth);
- // }
- // if (m_hVideo)
- // {
- // memset(Idx,0,sizeof(Idx));
- // memset(Idy,0,sizeof(Idy));
- // memset(IdWidth,0,sizeof(IdWidth));
- // memset(IdHeight,0,sizeof(IdHeight));
- // ::GetPrivateProfileString("HSPScanner","Idx","310",Idx,sizeof(Idx),g_IniPath);
- // ::GetPrivateProfileString("HSPScanner","Idy","360",Idy,sizeof(Idy),g_IniPath);
- // ::GetPrivateProfileString("HSPScanner","IdWidth","350",IdWidth,sizeof(IdWidth),g_IniPath);
- // ::GetPrivateProfileString("HSPScanner","IdHeight","310",IdHeight,sizeof(IdHeight),g_IniPath);
- //
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置身份证尺寸:Entry EloamGlobal_CreateRect ");
- // rect = EloamGlobal_CreateRect((width*atoi(Idx))/1000, (heigth*atoi(Idy))/1000, (width*atoi(IdWidth))/1000,(heigth*atoi(IdHeight))/1000);
- // // rect = EloamGlobal_CreateRect((width*345)/1000, (heigth*360)/1000, (width*350)/1000,(heigth*310)/1000);
- // g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置身份证尺寸:exit EloamGlobal_CreateRect ");
- // }
- }
- if (value == HSPS_SCAN_IDCARD)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置身份证真实需要的旋转 ");
- CILIX_AUX_X::Sleep(5);
- if (oldposition == HSPS_ROTATE_LEFT)// 物理环境的左侧为预览窗口的上方
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- iretval = g_var->HIGH_SetRotateSize(1);//旋转90
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置身份证真实需要左旋,右旋HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置身份证真实需要左旋,右旋HIGH_SetAutoCrop return="<<iretval);
- g_position = pLEFT;
- }
- }
- if (oldposition == HSPS_ROTATE_MIRROR)// 物理环境的下方为预览窗口的上方 Opposite/Nagative direction.
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- iretval = g_var->HIGH_SetRotateSize(2);//旋转180
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置身份证真实需要下旋,旋180HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置身份证真实需要下旋,旋180HIGH_SetAutoCrop return="<<iretval);
- g_position = pMIRROR;
- }
- }
- if (oldposition == HSPS_ROTATE_RIGHT)// 物理环境的右侧为预览窗口的上方
- {
- if ((g_var->m_connect)&&(g_isshow))
- {
- iretval = g_var->HIGH_SetRotateSize(3);//旋转180
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","设置身份证真实需要右旋,旋180HIGH_SetAutoCrop return %d",iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"设置身份证真实需要右旋,旋180HIGH_SetAutoCrop return="<<iretval);
- g_position = pRIGHT;
- }
- }
- }
- }
- else
- {
- g_size = sErr;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetParam","设置尺寸:传入value 参数错误_参数超出定义范围");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设置尺寸:传入value 参数错误_参数超出定义范围");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_Param;
- LOG4VTM(WARN, "<SetParam> - "<<"设置尺寸:传入value 参数错误_参数超出定义范围");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"尺寸设置成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","尺寸设置成功g_size=%d",g_size);
- LOG4VTM(WARN, "<SetParam> - "<<"尺寸设置成功");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- else if (type == HSPS_MODEL_VIEW)/**设置预览窗口显示与否和显示的位置,预览活动窗口尺寸为16:9,*/
- {
- if (value == HSPS_VIEW_HIDE)
- {
- if(!g_isshow)
- {
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"窗口未创建,设置窗口隐藏直接返回成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<SetParam> - "<<"窗口未创建,设置窗口隐藏直接返回成功");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return Error_Succeed;
- }
- iretval = g_var->HIGH_HideWindow(true);
- CILIX_AUX_X::Sleep(200);
- if (iretval != 0)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetParam","窗口隐藏设置失败,HIGH_HideWindow return %d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"窗口隐藏设置失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_DevCommFailed;
- LOG4VTM(WARN, "<SetParam> - "<<"窗口隐藏设置失败,HIGH_CloseWindow return "<<iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"窗口隐藏设置成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- g_ishide = TRUE;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","窗口隐藏设置成功");
- LOG4VTM(WARN, "<SetParam> - "<<"窗口隐藏设置成功");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return Error_Succeed;
- }
- if (value == HSPS_VIEW_SHOW)
- {
- if(!g_isshow)
- {
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"窗口未创建,不能直接显示");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<SetParam> - "<<"窗口未创建,不能直接显示");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return Error_NotExist;
- }
- if (g_ishide)
- {
- iretval = g_var->HIGH_HideWindow(false);
- CILIX_AUX_X::Sleep(200);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","HIGH_HideWindow return %d",iretval);
- if (iretval != 0)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetParam","隐藏窗口显示设置失败,HIGH_HideWindow return %d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"隐藏窗口显示设置失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_DevCommFailed;
- LOG4VTM(WARN, "<SetParam> - "<<"隐藏窗口显示设置失败,HIGH_CreateWindow return "<<iretval);
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- g_ishide = FALSE;
- }
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"窗口显示设置成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetParam","窗口显示设置成功");
- LOG4VTM(WARN, "<SetParam> - "<<"窗口显示设置成功");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return Error_Succeed;
- }
- else
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetParam","设置窗口显示:传入value 参数错误_参数超出定义范围");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设置窗口显示:传入value 参数错误_参数超出定义范围");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_Param;
- LOG4VTM(WARN, "<SetParam> - "<<"设置窗口显示:传入value 参数错误_参数超出定义范围");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- }
- else
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetParam","传入type 参数错误_参数超出定义范围");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"传入type 参数错误_参数超出定义范围");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_Param;
- LOG4VTM(WARN, "<SetParam> - "<<"传入type 参数错误_参数超出定义范围");
- LOG4VTM(WARN, "<SetParam> - "<<"Exit-");
- return iret;
- }
- }
- //
- // Command the device to start to preview or stop previewing.
- // -nValue[in] set 1 means StartPreview while 0 means StopPreview.
- // If the device' state had been setted before what the nValue commanded, ignore it and
- // return Error_Succeed.
- // The function returns only the specified behavior is done completely, StartPreview in special.
- // 更新20161117: nValue值为 1 时打开预览,确保当前打开预览过程执行结束且窗口处于显示状态才返回Error_Succeed,
- // nValue值为 0 时关闭预览并隐藏窗口
- //
- //
- ErrorCodeEnum CHSPScanner::SetPreview(short nValue)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","输入参数:%d",nValue);
- LOG4VTM(WARN, "<SetPreview> - "<<"Entry-");
- LOG4VTM(WARN, "<SetPreview> - "<<"输入参数:"<<nValue);
- ErrorCodeEnum iret = Error_Succeed;
- BOOL bret = FALSE;
- int iretval = 0;
- try
- {
- if (!g_var->m_connect)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetPreview","未做DevOpen操作");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"未做DevOpen操作");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_NotInit;
- LOG4VTM(WARN, "<SetPreview> - "<<"未做DevOpen操作");
- LOG4VTM(WARN, "<SetPreview> - "<<"Exit-");
- throw iret;
- }
- if (nValue == 1)//开始预览
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","进入操作预览...............");
- LOG4VTM(WARN, "<SetPreview> - "<<"进入操作预览...............");
- if ((g_X < 0) || (g_Y < 0) || (g_Width < 0) || (g_Height < 0) )
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetPreview","未做窗口设置操作,不能明确窗口坐标和大小");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"未做窗口设置操作,不能明确窗口坐标和大小");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_Param;
- LOG4VTM(WARN, "<SetPreview> - "<<"未做窗口设置操作,不能明确窗口坐标和大小");
- LOG4VTM(WARN, "<SetPreview> - "<<"Exit-");
- throw iret;
- }
- if (g_isshow == TRUE)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","已处于预览模式,直接返成功");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"预览成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_Succeed;
- LOG4VTM(WARN, "<SetPreview> - "<<"已处于预览模式,直接返成功");
- LOG4VTM(WARN, "<SetPreview> - "<<"Exit-");
- throw iret;
- }
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","进入操作窗口显示");
- LOG4VTM(WARN, "<SetPreview> - "<<"进入操作窗口显示");
- iretval = g_var->HIGH_CreateWindow(g_X,g_Y,g_Width,g_Height);
- CILIX_AUX_X::Sleep(1000);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","退出操作窗口,HIGH_CreateWindow return %d",iretval);
- LOG4VTM(WARN, "<SetPreview> - "<<"退出操作窗口,HIGH_CreateWindow return "<<iretval);
- if (iretval != 0)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetPreview","创建窗口预览操作失败,HIGH_CreateWindow return %d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"创建窗口预览操作失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_DevCommFailed;
- LOG4VTM(WARN, "<SetPreview> - "<<"创建窗口预览操作失败,HIGH_CreateWindow return "<<iretval);
- LOG4VTM(WARN, "<SetPreview> - "<<"Exit-");
- throw iret;
- }
- g_isshow = TRUE;
- g_ishide = FALSE;
- HSP_SetPara();//如果先设置参数再调预览,要预览起来之后做参数设置
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","g_color=%d",g_color);
- LOG4VTM(WARN, "<SetPreview> - "<<"g_color="<<g_color);
- if (g_color == cFULL)
- {
- iretval = g_var->HIGH_SetColorType(0);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","设置彩色HIGH_SetColorType return iretval=%d",iretval);
- LOG4VTM(WARN, "<SetPreview> - "<<"设置彩色HIGH_SetColorType return iretval="<<iretval);
- g_color = cErr;
- }
- if (g_color == cGRAY)
- {
- iretval = g_var->HIGH_SetColorType(1);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","设置灰度HIGH_SetColorType return iretval=%d",iretval);
- LOG4VTM(WARN, "<SetPreview> - "<<"设置灰度HIGH_SetColorType return iretval="<<iretval);
- g_color = cErr;
- }
- throw Error_Succeed;
- }
- else if (nValue == 0)//停止预览
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","进入操作关闭和销毁窗口..............");
- LOG4VTM(WARN, "<SetPreview> - "<<"进入操作关闭和销毁窗口..............");
- if(g_isshow == FALSE)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","未开始预览,直接返回成功");
- LOG4VTM(WARN, "<SetPreview> - "<<"未开始预览,直接返回成功");
- throw Error_Succeed;
- }
- iretval = g_var->HIGH_CloseWindow();
- CILIX_AUX_X::Sleep(1000);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetPreview","HIGH_CloseWindow return %d",iretval);
- LOG4VTM(WARN, "<SetPreview> - "<<"HIGH_CloseWindow return "<<iretval);
- if (iretval != 0)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetPreview","窗口销毁操作失败,HIGH_CloseWindow return %d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"窗口销毁操作失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_DevCommFailed;
- LOG4VTM(WARN, "<SetPreview> - "<<"窗口销毁操作失败,HIGH_CloseWindow return "<<iretval);
- LOG4VTM(WARN, "<SetPreview> - "<<"Exit-");
- throw iret;
- }
- g_isshow = FALSE;
- g_ishide = TRUE;
- throw Error_Succeed;
- }
- else
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetPreview","输入参数不符合规范");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"输入参数不符合规范");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<SetPreview> - "<<"输入参数不符合规范");
- LOG4VTM(WARN, "<SetPreview> - "<<"Exit-");
- throw Error_Param;
- }
- }
- catch (ErrorCodeEnum eret)
- {
- iret = eret;
- }
- return iret;
- }
- //
- // Scan Image from device and store the image.
- // -pszFileName[in] Store the path and name using suffix ".jpg"
- // specifies that where the image will be located and what it would be named.
- // 拍摄照片,传入的文件名已带绝对路径,无需再进行拼接处理
- //
- ErrorCodeEnum CHSPScanner::ScanImage(const char* pszFileName)
- {
- ErrorCodeEnum iret = Error_Succeed;
- int iretval = 0;
- LOG4VTM(WARN, "<ScanImage> - "<<"Entry-");
- LOG4VTM(WARN, "<ScanImage> - "<<"拍照图片存储路径:"<<pszFileName);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"ScanImage","拍照图片存储路径:%s",pszFileName);
- if (strlen(pszFileName) <= 0)
- {
- iret = Error_Param;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImage","输入保存拍照路径为空,返回:%d",iret);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"输入保存拍照路径为空");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImage> - "<<"输入保存拍照路径为空,返回:"<<iret);
- LOG4VTM(WARN, "<ScanImage> - "<<"Exit-");
- return iret;
- }
- if (pszFileName[0] != '/')
- {
- iret = Error_Param;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImage","输入保存拍照路径格式异常,返回:%d",iret);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"输入保存拍照路径为空");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImage> - "<<"输入保存拍照路径格式异常,返回:"<<iret);
- LOG4VTM(WARN, "<ScanImage> - "<<"Exit-");
- return iret;
- }
- if (!g_var->m_connect)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImage","未做DevOpen操作");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"未做DevOpen操作");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_NotInit;
- LOG4VTM(WARN, "<ScanImage> - "<<"未做DevOpen操作");
- LOG4VTM(WARN, "<ScanImage> - "<<"Exit-");
- throw iret;
- }
- if (g_isshow != TRUE)
- {
- iret = Error_DevMedia;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImage","未处于预览状态,返回:%d",iret);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"预览窗口未创建,不能拍照");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImage> - "<<"未处于预览状态,返回:"<<iret);
- LOG4VTM(WARN, "<ScanImage> - "<<"Exit-");
- return iret;
- }
- //创建路径并赋权限
- CreateDir((char*)pszFileName);
- //保存图像
- iretval = g_var->HIGH_TakePicture((char*)pszFileName);
- if (iretval != 0)
- {
- iret = Error_DevCommFailed;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImage","拍照失败,HIGH_TakePicture返回:%d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"拍照失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImage> - "<<"拍照失败,HIGH_TakePicture返回:"<<iretval);
- LOG4VTM(WARN, "<ScanImage> - "<<"Exit-");
- return iret;
- }
- //判定图片是否生成
- if (access(pszFileName,F_OK) != 0)
- {
- iret = Error_NotExist;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImage","图片未保存成功");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"图片未保存成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImage> - "<<"图片未保存成功");
- LOG4VTM(WARN, "<ScanImage> - "<<"Exit-");
- return iret;
- }
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"拍照成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImage> - "<<"拍照成功");
- LOG4VTM(WARN, "<ScanImage> - "<<"Exit-");
- return Error_Succeed;
- }
- //
- // Scan Image from device and return the image data in byte format.
- // -pBtImg[out] The buffer used to store the scanned image data.
- // 存储图片字节流的缓冲区,大小为 nBtLen 字节
- // -nBtLen[in,out] Indicate the max byte-type size of pBtImg could be stored
- // and Store the real byte-type size of pBtImg had used when returned.
- // when detect value of nBtLen is 0 or smaller that necessary size, please
- // set nBtlen with real byte-type size and return Error_TooSmallBuffer.
- // 如果nBtLen指定的字节数过小,那么对nBtLen赋值实际所需的大小并返回 Error_TooSmallBuffer,此操作仅允许一次
- // -pszFileName[in] Store the path and name where the image file should be located
- // while "" indicates that the image file shouldn't be stored at locate.
- // 文件名长度为零表示不在本地生成图片文件
- //
- //
- ErrorCodeEnum CHSPScanner::ScanImageEx(BYTE* pBtImg, int& nBtLen, const char* pszFileName)
- {
- LOG4VTM(WARN, "<ScanImageEx> - "<<"Entry-");
- ErrorCodeEnum iret = Error_Succeed;
- int iretval = 0;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"ScanImageEx","输入参数:pszFileName=%s,nBtLen=%d",pszFileName,nBtLen);
- LOG4VTM(WARN, "<ScanImageEx> - "<<"输入参数:pszFileName="<<pszFileName);
- LOG4VTM(WARN, "<ScanImageEx> - "<<"输入参数:nBtLen="<<nBtLen);
- int iFlag = 0;
- char cPicpath[1024]="";
- CILIX_AUX_X::CILIX_GetModuleCurPath(cPicpath);
- strcat(cPicpath,"HSPScanner.bmp");
- if ((strlen(pszFileName) >0)&&(pszFileName[0] == '/'))
- {
- memset(cPicpath,0,sizeof(cPicpath));
- strcpy(cPicpath,pszFileName);
- iFlag = 1;
- }
- if (!g_var->m_connect)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImageEx","未做DevOpen操作");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"未做DevOpen操作");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_NotInit;
- LOG4VTM(WARN, "<ScanImageEx> - "<<"未做DevOpen操作");
- LOG4VTM(WARN, "<ScanImageEx> - "<<"Exit-");
- throw iret;
- }
- if (g_isshow != TRUE)
- {
- iret = Error_DevMedia;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImageEx","未处于预览状态,返回:%d",iret);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"预览窗口未创建,不能拍照");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImageEx> - "<<"未处于预览状态,返回:"<<iret);
- LOG4VTM(WARN, "<ScanImageEx> - "<<"Exit-");
- return iret;
- }
- //创建路径并赋权限
- CreateDir(cPicpath);
- //保存图片
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"ScanImageEx","cPicpath=%s",cPicpath);
- iretval = g_var->HIGH_TakePicture(cPicpath);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"ScanImageEx","HIGH_TakePicture return %d",iretval);
- if (iretval != 0)
- {
- iret = Error_DevCommFailed;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImageEx","拍照失败,HIGH_TakePicture返回:%d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"拍照失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImageEx> - "<<"拍照失败,HIGH_TakePicture返回:"<<iretval);
- LOG4VTM(WARN, "<ScanImageEx> - "<<"Exit-");
- return iret;
- }
- //判定图片是否生成
- if (access(cPicpath,F_OK) != 0)
- {
- iret = Error_NotExist;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImageEx","图片未保存成功");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"图片未保存成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImageEx> - "<<"图片未保存成功");
- LOG4VTM(WARN, "<ScanImageEx> - "<<"Exit-");
- return iret;
- }
- //获取图像数据输出给应用
- chmod(cPicpath,ACCESSPERMS);
- //获取图片的大小
- int imagelen = 0;
- imagelen = GetFileSizeEx(cPicpath);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"ScanImageEx","GetFileSizeEx return %d",imagelen);
- if (imagelen == -1)
- {
- iret = Error_NotExist;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImageEx","操作打开图片文件失败");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"操作打开图片文件失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<ScanImageEx> - "<<"操作打开图片文件失败");
- LOG4VTM(WARN, "<ScanImageEx> - "<<"Exit-");
- return iret;
- }
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"ScanImageEx","图片数据长度:imagelen=%d",imagelen);
- LOG4VTM(WARN, "<ScanImageEx> - "<<"图片数据长度::"<<imagelen);
- //申请空间获取图像数据
- if (nBtLen < imagelen)
- {
- iret = Error_TooSmallBuffer;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"ScanImageEx","传入存储指纹数据空间大小不够");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"传入存储指纹空间大小不够");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- nBtLen = imagelen;
- LOG4VTM(WARN, "<ScanImageEx> - "<<"传入存储指纹数据空间大小不够");
- LOG4VTM(WARN, "<ScanImageEx> - "<<"Exit-");
- return iret;
- }
- char *cImageData = NULL;
- cImageData = new char[imagelen+10];
- int ilen = 0;
- g_var->ReadFileEx(cPicpath,cImageData,&ilen);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"ScanImageEx","ilen = %d",ilen);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"拍照成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- //赋值输出
- memcpy(pBtImg,cImageData,ilen);
- if (iFlag == 0)
- delete_file(cPicpath);
- delete[] cImageData;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"ScanImageEx","拍照成功退出");
- LOG4VTM(WARN, "<ScanImageEx> - "<<"拍照成功退出");
- LOG4VTM(WARN, "<ScanImageEx> - "<<"Exit-");
- return Error_Succeed;
- }
- //
- // Set position and width of preview dialog with the rate of length to width: 16:9.
- // -nX[in] The X coordinate of leftTop point.
- // -nY[in] The Y coordinate of leftTop point.
- // -nWidth[in] The Width of Preview Dialog .
- // 传入预览窗口显示的坐标,左上角的横坐标nX,左上角的纵坐标nY,以及预览窗口的宽,宽与高的比例为 16:9
- //
- ErrorCodeEnum CHSPScanner::SetViewPos(int nX, int nY, int nWidth)
- {
- ErrorCodeEnum iret = Error_Succeed;
- LOG4VTM(WARN, "<SetViewPos> - "<<"Entry-");
- LOG4VTM(WARN, "<SetViewPos> - "<<"输入参数:nX="<<nX);
- LOG4VTM(WARN, "<SetViewPos> - "<<"输入参数:nY="<<nY);
- LOG4VTM(WARN, "<SetViewPos> - "<<"输入参数:nWidth="<<nWidth);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetViewPos","输入参数:nX=%d,nY=%d,nWidth=%d",nX,nY,nWidth);
- if ((nX < 0) || (nY < 0) || (nWidth < 0))
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"SetViewPos","输入参数不符合要求");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"输入参数不符合要求");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_Param;
- LOG4VTM(WARN, "<SetViewPos> - "<<"输入参数不符合要求");
- LOG4VTM(WARN, "<SetViewPos> - "<<"Exit-");
- return iret;
- }
- else
- {
- if (g_X != nX)
- g_X=nX;
- if (g_Y != nY)
- g_Y=nY;
- if (g_Width != nWidth)
- g_Width=nWidth;
- if (g_Height != ((int)(9*nWidth)/16))
- g_Height=(int)(9*nWidth)/16;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetViewPos","g_X=%d,g_Y=%d,g_Width=%d,g_Height=%d",g_X,g_Y,g_Width,g_Height);
- LOG4VTM(WARN, "<SetViewPos> - "<<"g_Height="<<g_Height);
- if (g_isshow == TRUE)//在预览状态
- {
- int ii = g_var->HIGH_CreateWindow(g_X,g_Y,g_Width,g_Height);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetViewPos","HIGH_CreateWindow return %d",ii);
- LOG4VTM(WARN, "<SetViewPos> - "<<"HIGH_CreateWindow return "<<ii);
- }
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetViewPos","设置窗口坐标成功");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设置成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<SetViewPos> - "<<"设置窗口坐标成功");
- LOG4VTM(WARN, "<SetViewPos> - "<<"Exit-");
- return Error_Succeed;
- }
- }
- //
- // Show property dialog of HSPS of LiangTian.
- // If there is no property dialog function, ignore it and return Error_NotImpl(更新20161117).
- // 更新20161117:用于打开良田高拍仪设备的设置属性页,可能用不到
- //
- ErrorCodeEnum CHSPScanner::SetProperty()
- {
- LOG4VTM(WARN, "<SetProperty> - "<<"Entry-");
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetProperty","Entry.......................");
- ErrorCodeEnum iret = Error_Succeed;
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"不支持该功能");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"SetProperty","不支持该功能");
- LOG4VTM(WARN, "<SetProperty> - "<<"不支持该功能");
- LOG4VTM(WARN, "<SetProperty> - "<<"Exit-");
- return Error_NotSupport;
- }
- //
- // Get current status of device.
- //
- ErrorCodeEnum CHSPScanner::GetDevStatus(HspsDevStatus& status)
- {
- ErrorCodeEnum iret = Error_Succeed;
- int iretval = 0;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"GetDevStatus","开始查询状态");
- LOG4VTM(WARN, "<GetDevStatus> - "<<"Entry-");
- if (!g_var->m_isLoad)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"GetDevStatus","高拍仪so或函数加载失败");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"高拍仪so或函数加载失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_DevLoadFileFailed;
- LOG4VTM(WARN, "<GetDevStatus> - "<<"高拍仪so或函数加载失败");
- LOG4VTM(WARN, "<GetDevStatus> - "<<"Exit-");
- return iret;
- }
- int istatus = -1;
- g_var->HIGH_GetStatus(&istatus);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_DEBUG,"GetDevStatus","获取高拍仪的状态istatus=%d",istatus);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_DEBUG,"GetDevStatus","g_isshow=%d,g_ishide=%d",g_isshow,g_ishide);
- if (istatus != 0 && istatus != 2)
- m_isOnline = FALSE;
- else
- m_isOnline = TRUE;
- if (m_isOnline)//分析目前是预览、非预览和还是隐藏状态
- {
- status.isConnected = 1;
- if (!g_isshow)
- {
- status.inPreview = 0;
- status.inShow = 0;
- }
- else
- {
- status.inPreview = 1;
- if (!g_ishide)
- status.inShow = 1;
- else
- status.inShow = 0;
- }
- }
- else//判断到如果是不在线,如果处于预览或隐藏状态需要销毁窗口
- {
- status.isConnected = 0;
- if (g_isshow)//预览
- {
- iretval = g_var->HIGH_CloseWindow();
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"GetDevStatus","HIGH_CloseWindow return %d",iretval);
- LOG4VTM(WARN, "<GetDevStatus> - "<<"HIGH_CloseWindow return "<<iretval);
- }
- status.inPreview = 0;
- status.inShow = 0;
- }
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"获取设备状态成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"GetDevStatus","查询状态成功");
- LOG4VTM(WARN, "<GetDevStatus> - "<<"查询状态成功");
- LOG4VTM(WARN, "<GetDevStatus> - "<<"Exit-");
- return Error_Succeed;
- }
- //
- // Get category infomation about device.
- //
- ErrorCodeEnum CHSPScanner::GetDevCategory(DevCategoryInfo &devCategory)
- {
- memset(devCategory.szType,0,sizeof(devCategory.szType));
- strcpy(devCategory.szType,"PVER=KGR#MID=KGR-Q800F");
- memset(devCategory.szModel,0,sizeof(devCategory.szModel));
- strcpy(devCategory.szModel,"FWID=1.0.1");
- memset(devCategory.szVendor,0,sizeof(devCategory.szVendor));
- strcpy(devCategory.szVendor,"nantian");
- if (m_isOnline)
- devCategory.eState = DEVICE_STATUS_CONNECTING;
- else
- devCategory.eState = DEVICE_STATUS_FAULT;
- devCategory.version.wMajor = 1;
- devCategory.version.wMinor = 0;
- devCategory.version.wRevision = 0;
- devCategory.version.wBuild = 8;
- return Error_Succeed;
- }
- // Reset device.
- // Do the cleaning work and initialize device again in order to return to
- // the normal condition.
- ErrorCodeEnum CHSPScanner::Reset()
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"Reset","Entry......................");
- LOG4VTM(WARN, "<Reset> - "<<"Entry-");
- ErrorCodeEnum iret = Error_Succeed;
- int iretval = -1;
- if (m_isOnline)
- {
- if (!g_isshow)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"Reset","复位成功");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"复位成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<Reset> - "<<"复位成功");
- LOG4VTM(WARN, "<Reset> - "<<"Exit-");
- return Error_Succeed;
- }
- iretval = g_var->HIGH_CloseWindow();
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"Reset","HIGH_CloseWindow return %d",iretval);
- LOG4VTM(WARN, "<Reset> - "<<"HIGH_CloseWindow return "<<iretval);
- if (iretval !=0)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_ERROR,"GetDevStatus","高拍仪复位失败,HIGH_CloseWindow return %d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"高拍仪复位失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- iret = Error_DevCommFailed;
- LOG4VTM(WARN, "<Reset> - "<<"高拍仪复位失败,HIGH_CloseWindow return "<<iretval);
- LOG4VTM(WARN, "<Reset> - "<<"Exit-");
- return iret;
- }
- g_isshow = FALSE;
- g_ishide = TRUE;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"Reset","设备复位成功");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设备复位成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<Reset> - "<<"设备复位成功");
- LOG4VTM(WARN, "<Reset> - "<<"Exit-");
- return Error_Succeed;
- }
- else
- {
- iret = Error_DevCommFailed;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"Reset","设备复位失败,iret = %d",iret);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设备复位失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<Reset> - "<<"设备复位失败,iret = "<<iret);
- LOG4VTM(WARN, "<Reset> - "<<"Exit-");
- return iret;
- }
- }
- //
- // Close device and do the cleaning work.
- // ex. close connection,close port,release memery and so on
- ErrorCodeEnum CHSPScanner::DevClose()
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"DevClose","Entry....................");
- LOG4VTM(WARN, "<DevClose> - "<<"Entry-");
- int iretval = -1;
- BOOL bret = FALSE;
- if (!g_var->m_connect)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"DevClose","设备未打开,直接返成功");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设备关闭成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<DevClose> - "<<"设备未打开,直接返成功");
- LOG4VTM(WARN, "<DevClose> - "<<"Exit-");
- return Error_Succeed;
- }
- //关闭窗口
- if(g_isshow)
- {
- iretval = g_var->HIGH_CloseWindow();
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"DevClose","HIGH_CloseWindow return %d",iretval);
- if (iretval != 0)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"DevClose","高拍仪关闭预览窗口失败,HIGH_CloseWindow return iretval = %d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"高拍仪关闭预览窗口失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<DevClose> - "<<"高拍仪关闭预览窗口失败,HIGH_CloseWindow return iretval = "<<iretval);
- LOG4VTM(WARN, "<DevClose> - "<<"Exit-");
- return Error_DevCommFailed;
- }
- }
- //关闭高拍仪
- iretval = g_var->HIGH_StopCamera();
- if (iretval != 0)
- {
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"DevClose","高拍仪关闭失败,iretval = %d",iretval);
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"高拍仪关闭失败");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- LOG4VTM(WARN, "<DevClose> - "<<"高拍仪关闭失败,iretval = "<<iretval);
- LOG4VTM(WARN, "<DevClose> - "<<"Exit-");
- return Error_DevCommFailed;
- }
- g_isshow = FALSE;
- g_ishide = TRUE;
- g_var->m_trace->WriteTrace(CILIXTRACE_L_INFO,"DevClose","设备关闭成功");
- memset(m_Error.szErrMsg,0,sizeof(m_Error.szErrMsg));
- strcpy(m_Error.szErrMsg,"设备关闭成功");
- m_Error.dwErrMsgLen = strlen(m_Error.szErrMsg);
- g_var->m_connect = FALSE;
- m_isOnline = FALSE;
- LOG4VTM(WARN, "<DevClose> - "<<"设备关闭成功");
- LOG4VTM(WARN, "<DevClose> - "<<"Exit-");
- return Error_Succeed;
- }
- // Get last error the device issued.
- // Error message must include explanatory memorandum ,the original error
- // code and anything in favour of location problem.
- ErrorCodeEnum CHSPScanner::GetLastErr(DevErrorInfo &devErrInfo)
- {
- memset(devErrInfo.szErrMsg,0,sizeof(devErrInfo.szErrMsg));
- devErrInfo.dwErrMsgLen = m_Error.dwErrMsgLen;
- memcpy(devErrInfo.szErrMsg,m_Error.szErrMsg,m_Error.dwErrMsgLen);
- return Error_Succeed;
- }
|