#include #include #include "hspscanner_impl.h" #include "hspscanner_httpans.h" #include "stdlib.h" #include "log4vendor.h" HSPSClassImpl::HSPSClassImpl() :m_mode(0) { } HSPSClassImpl::~HSPSClassImpl() { } ErrorCodeEnum HSPSClassImpl::GetDevCategory(DevCategoryInfo &devCategory) { ErrorCodeEnum err = Error_Succeed; SimulatorDevCategoryAns ans; err = SimulatorHttpFunction(EntityName, "GetDevCategory", ans); LOG4VTM(INFO, "GetDevCategory err = " << err); strcpy(devCategory.szType, ans.szType.c_str()); strcpy(devCategory.szModel, ans.szModel.c_str()); strcpy(devCategory.szVendor, ans.szVendor.c_str()); devCategory.eState = (DevStateEnum)ans.eState; devCategory.version.wMajor = ans.version.wMajor; devCategory.version.wMinor = ans.version.wMinor; devCategory.version.wRevision = ans.version.wRevision; devCategory.version.wBuild = ans.version.wBuild; return err; } ErrorCodeEnum HSPSClassImpl::Reset() { ErrorCodeEnum err = Error_Succeed; err = SimulatorHttpFunction(EntityName, "Reset"); LOG4VTM(INFO, "Reset err = " << err); return err; } ErrorCodeEnum HSPSClassImpl::DevClose() { ErrorCodeEnum err = Error_Succeed; err = SimulatorHttpFunction(EntityName, "DevClose"); LOG4VTM(INFO, "DevClose err = " << err); return err; } ErrorCodeEnum HSPSClassImpl::GetLastErr(DevErrorInfo &devErrInfo) { ErrorCodeEnum err = Error_Succeed; SimulatorDevErrInfoAns ans; err = SimulatorHttpFunction(EntityName, "GetLastErr", ans); LOG4VTM(INFO, "GetLastErr err = " << err); devErrInfo.dwErrMsgLen = ans.dwErrMsgLen; strcpy(devErrInfo.szErrMsg, ans.szErrMsg.c_str()); return err; } DEVICEBASE_API ErrorCodeEnum CreateDevComponent(DeviceBaseClass *&baseObj) { baseObj = new HSPSClassImpl(); if(baseObj == NULL) { return Error_Resource; } else { cmb::log_init_config config; config.dev_name = "vendor_HSPScanner"; #ifdef _MSC_VER config.log_dir = ("D:\\rvc\\dbg\\"); #else config.log_dir = ("/opt/rvc/dbg/"); #endif std::string str; cmb::log4vendor::init(config, str); std::string tmpStr = GetSimulatorUrl(); LOG4VTM(INFO, "URL = " << tmpStr.c_str()); return Error_Succeed; } } DEVICEBASE_API ErrorCodeEnum ReleaseDevComponent(DeviceBaseClass *&pBaseObj) { if(pBaseObj == NULL) { return Error_Param; } if(HSPSClassImpl* pTmp = dynamic_cast(pBaseObj)) { delete pTmp; pTmp = NULL; return Error_Succeed; } return Error_Param; } #ifdef NEWER_COMPILER_WORKAROUNDS DEVICEBASE_API ErrorCodeEnum GetDevAdapterVersion(DevSoftVersion& retVesion) { retVesion.wMajor = retVesion.wMinor = retVesion.wBuild = retVesion.wRevision = 0; return Error_Succeed; } #endif // NEWER_COMPILER_WORKAROUNDS ErrorCodeEnum HSPSClassImpl::DevOpen() { ErrorCodeEnum err = Error_Succeed; DevOpenAns ans; err = SimulatorHttpFunction(EntityName, "DevOpen", ans); LOG4VTM(INFO, "DevOpen err = " << err); if (err == Error_Succeed) { if (ans.timeoutMillsec > 0) { #ifdef _MSC_VER Sleep(ans.timeoutMillsec); #else usleep(ans.timeoutMillsec * 1000); #endif } } return err; } ErrorCodeEnum HSPSClassImpl::SetParam(ParamType type, ParamTypeValue value) { ErrorCodeEnum err = Error_Succeed; err = SimulatorHttpFunction(EntityName, "SetParam"); LOG4VTM(INFO, "SetParam err = " << err); return err; } ErrorCodeEnum HSPSClassImpl::SetPreview(short nValue) { ErrorCodeEnum err = Error_Succeed; err = SimulatorHttpFunction(EntityName, "SetPreview"); LOG4VTM(INFO, "SetPreview err = " << err); return err; } ErrorCodeEnum HSPSClassImpl::ScanImage(const char* pszFileName) { ErrorCodeEnum err = Error_NotImpl; static unsigned long times = 0; ScanImageAns ans; err = SimulatorHttpFunction(EntityName, "ScanImage", ans); LOG4VTM(INFO, "ScanImage err = " << err); if (err == Error_Succeed) { string srcPath(""); bool doit(true); if (ans.ImageType == 2) { srcPath = GetCurrentDirectory() + SPLIT_SLASH_STR + "simulator_hsps_01.jpg"; } else if (ans.ImageType == 1) { srcPath = GetCurrentDirectory() + SPLIT_SLASH_STR + "simulator_hsps_02.jpg"; } else if (ans.ImageType == 3) { doit = false; } else { if (times % 3 == 0) { srcPath = GetCurrentDirectory() + SPLIT_SLASH_STR + "simulator_hsps_01.jpg"; } else if (times % 3 == 1) { srcPath = GetCurrentDirectory() + SPLIT_SLASH_STR + "simulator_hsps_02.jpg"; } else if (times % 3 == 2) { srcPath = GetCurrentDirectory() + SPLIT_SLASH_STR + "simulator_hsps_03.jpg"; } times++; } if (doit) { LOG4VTM(INFO, "ScanImage file = " << srcPath); #ifdef _WIN32 CopyFileA(srcPath.c_str(), pszFileName, TRUE); #else string cmdStr = "cp " + srcPath + " " + pszFileName; char buff[256] = { 0 }; sprintf(buff, cmdStr.c_str()); system(buff); #endif } } return err; } ErrorCodeEnum HSPSClassImpl::ScanImageEx(BYTE* pBtImg, int& nBtLen, const char* pszFileName) { ErrorCodeEnum err = Error_NotImpl; ScanImageExAns ans; err = SimulatorHttpFunction(EntityName, "ScanImageEx", ans); LOG4VTM(INFO, "ScanImageEx err = " << err); if (err == Error_Succeed) { string srcPath = GetCurrentDirectory() + SPLIT_SLASH_STR + "agent.jpg"; #ifdef _WIN32 CopyFileA(srcPath.c_str(), pszFileName, TRUE); #else string cmdStr = "cp " + srcPath + " " + pszFileName; char buff[256] = { 0 }; sprintf(buff, cmdStr.c_str()); system(buff); #endif } nBtLen = ans.nBtLen; return err; } ErrorCodeEnum HSPSClassImpl::SetViewPos(int nX, int nY, int nWidth) { ErrorCodeEnum err = Error_NotImpl; err = SimulatorHttpFunction(EntityName, "SetViewPos"); LOG4VTM(INFO, "SetViewPos err = " << err); return err; } ErrorCodeEnum HSPSClassImpl::SetProperty() { ErrorCodeEnum err = Error_NotImpl; err = SimulatorHttpFunction(EntityName, "SetProperty"); LOG4VTM(INFO, "SetProperty err = " << err); return err; } ErrorCodeEnum HSPSClassImpl::GetDevStatus(HspsDevStatus& status) { ErrorCodeEnum err = Error_NotImpl; HspsDevStatusAns ans; err = SimulatorHttpFunction(EntityName, "GetDevStatus", ans); LOG4VTM(INFO, "GetDevStatus err = " << err); if (err == Error_Succeed) { status.isConnected = ans.isConnected; status.inPreview = ans.inPreview; status.inShow = ans.inShow; } return Error_Succeed; }