Browse Source

Merge branch '0_0_2_test1' of mayun.itc.cmbchina.cn:QD_RemoteBankArea/LR04.02_RVCTerminalPlus into 0_0_2_test1

陈礼鹏80274480 4 năm trước cách đây
mục cha
commit
902d2421f1

+ 1 - 0
DevAdapter/CHANGELOG

@@ -1,4 +1,5 @@
 
+* 更改日志库输出名称为 cmblog4vendor,避免与动态库有冲突(廖桂发,2020年12月15日)
 * 修改CMake脚本,因二进制库管理受限,需要使用其他方式管理厂商无源码的共有库(廖桂发,2020年12月8日)
 * 修改了Readme.md文件,添加了一些注意事项和开发说明(廖桂发,2020年12月8日)
 

+ 3 - 2
DevAdapter/CMakeLists.txt

@@ -123,13 +123,14 @@ if(NOT MSVC)
     set(RVC_VENDOR_DEP_LIB_DIRS ${RVC_VENDOR_DEP_LIB_DIRS} ${DEVADAPTER_CURRENT_LIB_DIR})
 endif(NOT MSVC)
 
+set(VENDOR_LOG_LIBRARY_NAME "cmblog4vendor")
 if(NOT RVC_INTEGRATE_BUILD)
-    set(VENDOR_LOG_LIB_NAME log4vendord)
+    set(VENDOR_LOG_LIB_NAME ${VENDOR_LOG_LIBRARY_NAME})
 else()
     set(VENDOR_LOG_LIB_NAME log4vendor)
     add_subdirectory(self)
 endif(NOT RVC_INTEGRATE_BUILD)
-message(STATUS "vendor log library: ${VENDOR_LOG_LIB_NAME}.")
+message(STATUS "vendor log library: ${VENDOR_LOG_LIB_NAME}")
 
 # ͨ¹ýconanµÄ·½Ê½¹ÜÀí³§ÉÌ¿â
 if(RVC_INTEGRATE_BUILD)

+ 5 - 3
DevAdapter/keba/CardIssuer.keba.1.1/CMakeLists.txt

@@ -3,9 +3,11 @@ set(${MODULE_PREFIX}_VENDOR "keba")
 set(${MODULE_PREFIX}_VERSION "1")
 set(${MODULE_PREFIX}_BATCH "1")
 
-#设置编译的一些参数
-set(CMAKE_CXX_FLAGS "-std=c++11")
-set(CMAKE_BUILD_TYPE "Debug")#Release
+if(NOT RVC_INTEGRATE_BUILD)
+    #设置编译的一些参数
+    set(CMAKE_CXX_FLAGS "-std=c++11")
+    set(CMAKE_BUILD_TYPE "Debug")#Release
+endif()
 
 set(KEBA_DIR ${MODULE_FULL_NAME}"/keba")
 set(KEBA_LIB_DIR "/lib")

+ 5 - 3
DevAdapter/keba/FingerPrint.keba.1.1/CMakeLists.txt

@@ -5,9 +5,11 @@ rvc_dev_define_module("FingerPrint")
 set(${MODULE_PREFIX}_VENDOR "keba")
 set(${MODULE_PREFIX}_VERSION "1")
 set(${MODULE_PREFIX}_BATCH "1")
-#设置编译的一些参数
-set(CMAKE_CXX_FLAGS "-std=c++11")
-set(CMAKE_BUILD_TYPE "Debug")#Release
+if(NOT RVC_INTEGRATE_BUILD)
+    #设置编译的一些参数
+    set(CMAKE_CXX_FLAGS "-std=c++11")
+    set(CMAKE_BUILD_TYPE "Debug")#Release
+endif()
 
 set(KEBA_DIR ${MODULE_FULL_NAME}"/keba")
 set(KEBA_LIB_DIR "/lib")

+ 6 - 3
DevAdapter/keba/IDCertificate.keba.1.1/CMakeLists.txt

@@ -3,9 +3,12 @@ set(${MODULE_PREFIX}_VENDOR "keba")
 set(${MODULE_PREFIX}_VERSION "1")
 set(${MODULE_PREFIX}_BATCH "1")
 
-#设置编译的一些参数
-set(CMAKE_CXX_FLAGS "-std=c++11")
-set(CMAKE_BUILD_TYPE "Debug")#Release
+if(NOT RVC_INTEGRATE_BUILD)
+    #设置编译的一些参数
+    set(CMAKE_CXX_FLAGS "-std=c++11")
+    set(CMAKE_BUILD_TYPE "Debug")#Release
+endif()
+
 #收录当前目录下的所有* . cpp文件
 aux_source_directory(. SRC_LIST)
 #设置头文件查找路径的变量

+ 5 - 3
DevAdapter/keba/PinPad.keba.1.1/CMakeLists.txt

@@ -6,10 +6,12 @@ set(${MODULE_PREFIX}_VENDOR "keba")
 set(${MODULE_PREFIX}_VERSION "1")
 set(${MODULE_PREFIX}_BATCH "1")
 
+if(NOT RVC_INTEGRATE_BUILD)
+    #设置编译的一些参数
+    set(CMAKE_CXX_FLAGS "-std=c++11")
+    set(CMAKE_BUILD_TYPE "Debug")#Release
+endif()
 
-#设置编译的一些参数
-set(CMAKE_CXX_FLAGS "-std=c++11")
-set(CMAKE_BUILD_TYPE "Debug")#Release
 #收录当前目录下的所有* . cpp文件
 aux_source_directory(. SRC_LIST)
 

+ 2 - 1
DevAdapter/self/liblog4vendor/CMakeLists.txt

@@ -1,4 +1,4 @@
-rvc_dev_define_module("log4vendor")
+rvc_dev_define_module(${VENDOR_LOG_LIB_NAME})
 
 set(RAW_VERSION_STRING "1.0.0")
 
@@ -20,6 +20,7 @@ add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
 target_include_directories(${MODULE_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
 target_include_directories(${MODULE_NAME} PRIVATE ${DEVADAPTER_CURRENT_INCLUDES_DIR})
 set_target_properties(${MODULE_NAME} PROPERTIES COMPILE_DEFINITIONS "LIBLOG4VENDOR_EXPORTS")
+set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${VENDOR_LOG_LIBRARY_NAME})
 set_target_properties(${MODULE_NAME} PROPERTIES DEBUG_POSTFIX "d")
 
 if(MSVC)

+ 5 - 5
Module/mod_CenterSetting/CenterSettingConn.cpp

@@ -130,6 +130,7 @@ ErrorCodeEnum CCenterSettingConn::BeginPollConfig()
 	else
 	{
 		PollSMR req = {};
+
 #ifdef RVC_OS_WIN
 		strncpy_s(req.TerminalNo, sizeof(req.TerminalNo), info.strTerminalID, _TRUNCATE);
 		strncpy_s(req.MachineType, sizeof(req.MachineType), info.strMachineType, _TRUNCATE);
@@ -144,6 +145,7 @@ ErrorCodeEnum CCenterSettingConn::BeginPollConfig()
 	}
 
 	SendPackage(pPackage);
+
 	return Error_Succeed;
 }
 
@@ -238,9 +240,7 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 
 		if (!IsServiceAvailable(tmp))
 		{
-			//delete[] pBuf;
-			Dbg("集中配置服务新地址[%s]无法连接!!!", tmp);
-			//return Error_Unexpect;
+			Dbg("the new centersetting server ip[%s] cannot be connectable!!!", tmp);
 		}
 
 		// 读出当前集中配置服务地址
@@ -300,7 +300,7 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 
 	if (nIndex > 1)
 	{
-		LogEvent(Severity_Middle, EVENT_MOD_CENTERSETTING_DOWNOK, "集中配置同步成功");
+		LogEvent(Severity_Middle, EVENT_MOD_CENTERSETTING_DOWNOK, "Sync centersetting config files succc.");
 
 		// 检查RvcWebVersion是否有变化
 		CSimpleStringA strFilePath;
@@ -313,7 +313,7 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 		{
 			Dbg("rvc web version changed, last: [%s], current: [%s]", (const char*)pEntity->m_strRvcWebVersion, szVersion);
 			pEntity->m_strRvcWebVersion = szVersion;
-			LogEvent(Severity_Middle, EVENT_MOD_CENTERSETTING_RVCWEBVER_CHANGE, "RvcWeb版本变更");
+			LogEvent(Severity_Middle, EVENT_MOD_CENTERSETTING_RVCWEBVER_CHANGE, "RvcWeb version has updated !");
 		}
 	}
 

+ 1 - 1
Module/mod_CenterSetting/mod_centersetting.cpp

@@ -148,7 +148,7 @@ CServerSessionBase *CCenterSettingEntity::OnNewSession(const char* /*pszRemoteEn
 		 return Error_Succeed;
 	 }
 
-	 return Error_Unexpect;
+	 return Error_NotExist;
  }
 
  bool CCenterSettingEntity::ParseIPAddress(const char *str, CSimpleStringA &ip, int &port)

+ 6 - 0
Module/mod_IDCertificate/CMakeLists.txt

@@ -8,9 +8,15 @@ file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE
 	)
 
 
+
+if(MSVC)
 conan_cmake_run(REQUIRES opencv/3.1.0@LR04.02_ThirdParty/testing
+BASIC_SETUP CMAKE_TARGETS)
+else()
+conan_cmake_run(REQUIRES opencv/3.1.0@LR04.02_ThirdParty/stable
 BASIC_SETUP CMAKE_TARGETS
 BUILD missing)
+endif(MSVC)
 
 set(MOD_VERSION_STRING "1.0.0-dev1")
 add_module_libraries(${MODULE_PREFIX} ${MODULE_NAME} ${MOD_VERSION_STRING})

+ 3 - 3
Module/mod_IDCertificate/IDCertFSM.cpp

@@ -1074,9 +1074,9 @@ ErrorCodeEnum CIDCertFSM::GetDevCatInfo(DevCategoryInfo &devInfo, CSimpleStringA
 		return Error_Succeed;
 	}
 	Dbg("DevCategoryInfo len:%d,%d,%d", strlen(m_devCatInfo.szModel), strlen(m_devCatInfo.szType), strlen(m_devCatInfo.szVendor));
-	strncpy(devInfo.szModel, m_devCatInfo.szModel, (MAX_DEV_MODEL_LEN >strlen(m_devCatInfo.szModel)) ? strlen(m_devCatInfo.szModel) : MAX_DEV_MODEL_LEN);
-	strncpy(devInfo.szType, m_devCatInfo.szType, (MAX_DEV_TYPE_LEN >strlen(m_devCatInfo.szType)) ? strlen(m_devCatInfo.szType) : MAX_DEV_TYPE_LEN);
-	strncpy(devInfo.szVendor, m_devCatInfo.szVendor, (MAX_DEV_VENDOR_LEN >strlen(m_devCatInfo.szVendor)) ? strlen(m_devCatInfo.szVendor) : MAX_DEV_VENDOR_LEN);
+	strncpy(devInfo.szModel, m_devCatInfo.szModel, (MAX_DEV_MODEL_LEN >strlen(m_devCatInfo.szModel)) ? strlen(m_devCatInfo.szModel)+1 : MAX_DEV_MODEL_LEN);
+	strncpy(devInfo.szType, m_devCatInfo.szType, (MAX_DEV_TYPE_LEN >strlen(m_devCatInfo.szType)) ? strlen(m_devCatInfo.szType) + 1 : MAX_DEV_TYPE_LEN);
+	strncpy(devInfo.szVendor, m_devCatInfo.szVendor, (MAX_DEV_VENDOR_LEN >strlen(m_devCatInfo.szVendor)) ? strlen(m_devCatInfo.szVendor) + 1 : MAX_DEV_VENDOR_LEN);
 	devType = m_devVer;//ÊÊÅäÆ÷°æ±¾ºÅ
 	return Error_Succeed;
 }

+ 4 - 6
Module/mod_IDCertificate/mod_IDCertificate.h

@@ -42,24 +42,26 @@ public:
 		LOG_FUNCTION();
 
 		ErrorCodeEnum rt = m_fsm.Init(this);
-		Dbg("Init:%d", rt);
+		Dbg("Init FSM:%s", SpStrError(rt));
 		pTransactionContext->SendAnswer(rt);
 	}
 
 	virtual void OnPrePause(CSmartPointer<ITransactionContext> pTransactionContext)
 	{
-		//m_fsm.OnInit();
 		pTransactionContext->SendAnswer(Error_Succeed);
 	}
+
 	virtual void OnPreContinue(CSmartPointer<ITransactionContext> pTransactionContext)
 	{
 		pTransactionContext->SendAnswer(Error_Succeed);
 	}
+
 	virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext)
 	{
 		m_fsm.OnExit();
 		pTransactionContext->SendAnswer(Error_Succeed);
 	}
+
 	virtual void OnSelfTest(EntityTestEnum eTestType,CSmartPointer<ITransactionContext> pTransactionContext)
 	{
 		m_fsm.SelfTest(eTestType,pTransactionContext);
@@ -93,7 +95,6 @@ public:
 		if (m_fsm.IsRVCIL())
 		{
 			CBlob bbSend;
-			//ErrorCodeEnum eErr = SpObject2Blob(ctx->Info, bbSend);
 			m_fsm.LocalCallHeartBeat(IDCertService_Method_CancelRead, bbSend);
 		}
 		else
@@ -107,7 +108,6 @@ public:
 		if (m_fsm.IsRVCIL())
 		{
 			CBlob bbSend;
-			//ErrorCodeEnum eErr = SpObject2Blob(ctx->Info, bbSend);
 			m_fsm.LocalCallHeartBeat(IDCertService_Method_ReadWaitMore, bbSend);
 		}
 		else
@@ -121,7 +121,6 @@ public:
 		if (m_fsm.IsRVCIL())
 		{
 			CBlob bbSend;
-			//ErrorCodeEnum eErr = SpObject2Blob(ctx->Info, bbSend);
 			m_fsm.LocalCallHeartBeat(IDCertService_Method_Exit, bbSend);
 		}
 		else
@@ -143,7 +142,6 @@ public:
 			CBlob bbSend;
 			ErrorCodeEnum eErr = SpObject2Blob(ctx->Req, bbSend);
 			Dbg("GetRequestId:%d,SpObject2Blob %x,len:%d", ctx->GetRequestId(), eErr, bbSend.m_iLength);
-			//m_fsm.SaveCtx(IDCertService_Method_ReadEx, (LPVOID*)ctx.Detach());
 			m_fsm.LocalCallHeartBeat(IDCertService_Method_ReadEx, bbSend,true);
 		}
 	}

+ 1 - 1
Module/mod_chromium/CMessage.h

@@ -3,7 +3,7 @@
 #include <string>
 #include <iostream>
 
-#define MAX_TRANSFER_LEN	(1024*1024)
+#define MAX_TRANSFER_LEN	(10*1024*1024)
 
 namespace Chromium {
 	std::string UtfToGbk(const char* utf8);

+ 37 - 28
Module/mod_guiconsole/mod_guiconsole.cpp

@@ -14,7 +14,7 @@ void CGUIConsoleEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPoin
 	m_FSM.Init(this);
 	auto  rc = SubscribeEntitysEvents();
 	if (rc != Error_Succeed)
-		Dbg("subscribe MaintainWatcher event fail, 0x%x", rc);
+		Dbg("subscribe MaintainWatcher event fail, %s",  SpStrError(rc));
 	else
 		Dbg("subscribe MaintainWatcher event succeed");
 		
@@ -23,7 +23,6 @@ void CGUIConsoleEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPoin
 
 void CGUIConsoleEntity::OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext) 
 { 
-	//m_task.Close();
 	m_FSM.PostExitEvent();
 	UnsubscribeEntitysEvents();
 	pTransactionContext->SendAnswer(Error_Succeed); 
@@ -38,21 +37,21 @@ void CGUIConsoleEntity::OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogI
 	const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID, 
 	const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage)
 	{
-		//Dbg("OnLog(entity = %s, syscode = 0x%X, usercode = 0x%X", pszEntityName, dwSysError, dwUserCode);
+		Dbg("OnLog(entity = %s, syscode = 0x%X, usercode = 0x%X", pszEntityName, dwSysError, dwUserCode);
 
 		if (dwUserCode == EVENT_MACHINE_COVER_OPEN)		// 机盖打开
 		{
-			Dbg("机盖打开");
+			Dbg("the machine cover open!!");
 			m_FSM.PostEventFIFO(new FSMEvent(CGUIConsoleFSM::Event_CoverOpen));
 		}
 		else if (dwUserCode == EVENT_MACHINE_COVER_CLOSE)	// 机盖关闭
 		{
-			Dbg("机盖关闭");
+			Dbg("the machine cover close.");
 			m_FSM.PostEventFIFO(new FSMEvent(CGUIConsoleFSM::Event_CoverClose));
 		}
 		else if (dwUserCode == EVENT_UKEY_INSERTED)		// 证书插入
 		{			
-			Dbg("证书插入");
+			Dbg("the key inserted");
 			m_FSM.PostEventFIFO(new FSMEvent(CGUIConsoleFSM::Event_UKeyInserted));
 		}
 		else if ((dwUserCode == EVENT_UKEY_LOW_LEVEL)		// 具有维护权
@@ -61,9 +60,9 @@ void CGUIConsoleEntity::OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogI
 			bool bLowLevel = dwUserCode == EVENT_UKEY_LOW_LEVEL;
 			
 			if (bLowLevel)
-				Dbg("低级维护权限");
+				Dbg("lower priviledge");
 			else
-				Dbg("高级维护权限");
+				Dbg("higher priviledge");
 
 			// 调用UKey接口取维护人员信息
 			m_strUserID = "";
@@ -76,6 +75,7 @@ void CGUIConsoleEntity::OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogI
 			if (rc != Error_Succeed)
 			{
 				Dbg("connect to MaintainWatcher entity fail: %d", rc);
+				pClient->SafeDelete();
 			}
 			else
 			{
@@ -84,7 +84,7 @@ void CGUIConsoleEntity::OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogI
 				rc = pClient->GetUserInfo(req, ans, 10000);
 				if (rc != Error_Succeed)
 				{
-					Dbg("get userinfo fail from MaintainWatcher: %d", rc);
+					Dbg("get userinfo fail from MaintainWatcher: %s", SpStrError(rc));
 				}
 				else
 				{
@@ -109,10 +109,11 @@ void CGUIConsoleEntity::OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogI
 							m_strAuthTime = arr2[1];
 					}
 				}
+				
+                pClient->GetFunction()->CloseSession();
 
-				pClient->SafeDelete();
-				pClient = NULL;
 			}
+            pClient = NULL;
 
 			m_strCurRight = bLowLevel ? "Low" : "High";
 			m_dwBeginTime = CSmallDateTime::GetNow();
@@ -130,13 +131,13 @@ void CGUIConsoleEntity::OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogI
 			m_strCurRight = "";
 			m_dwBeginTime = 0;
 
-			Dbg("证书拨出");
+			Dbg("certificate key pull out");
 			m_FSM.PostEventFIFO(new FSMEvent(CGUIConsoleFSM::Event_UKeyPulled));
 		}
 		else if (dwUserCode == LOG_EVT_HEALTH_FIRST_ENTER_MAINPADE)
 		{
 			// IE首页打开, 关闭运行输出
-			Dbg("IE首页加载成功,关闭输出控制台");
+			Dbg("IE main page has been loaded successfully, close console terminal!");
 			GetFunction()->GetPrivilegeFunction()->CloseOuputConsole();
 		}
 	}
@@ -271,7 +272,7 @@ ErrorCodeEnum CGUIConsoleEntity::AddMaterialCounter(const char *pszMaterialCode)
 	}
 	else
 	{
-		Dbg("连接物料服务失败");
+		Dbg("Connect to MaterialMgrEntity failed!");
 		rc = Error_NetBroken;
 	}
 
@@ -280,7 +281,7 @@ ErrorCodeEnum CGUIConsoleEntity::AddMaterialCounter(const char *pszMaterialCode)
 
 	if (rc == Error_Succeed)
 	{
-		Dbg("递增物料{%s}计数成功", pszMaterialCode);		
+		Dbg("Add material counter for %s succ.", pszMaterialCode);		
 	}
 	else
 	{
@@ -313,7 +314,7 @@ ErrorCodeEnum CGUIConsoleEntity::QueryMaterialInfo(const char *pszDeviceNo, unsi
 	}
 	else
 	{
-		Dbg("连接物料服务失败");
+		Dbg("Connect to MaterialMgr failed!");
 		rc = Error_NetBroken;
 	}
 
@@ -340,7 +341,7 @@ ErrorCodeEnum CGUIConsoleEntity::GetMaterialCounter(const char *pszMaterial, uns
 	}
 	else
 	{
-		Dbg("连接物料服务失败");
+		Dbg("Connect to MaterialMgrEntity failed!");
 		rc = Error_NetBroken;
 	}
 
@@ -392,19 +393,18 @@ ErrorCodeEnum CGUIConsoleEntity::ResetMaterialCounter(const char *pszMaterial, u
 		else
 		{
 			Dbg("连接CardIssuer失败");
+            pClient->SafeDelete();
 		}
-
-		pClient->SafeDelete();
-	}
+    }
 	else
 	{
-		rc = Error_Unexpect;
-		Dbg("未知物料: {%s}", (const char*)strMaterialCode);
+		rc = Error_NoTarget;
+		Dbg("Unknow material code: {%s}", (const char*)strMaterialCode);
 	}
 
 	if (rc != Error_Succeed)
 	{
-		LogError(Severity_Middle, rc, 0, CSimpleStringA::Format("重置终端计数失败: %s", SpStrError(rc)));
+		LogError(Severity_Middle, rc, 0, CSimpleStringA::Format("Reset teminal material counter failed: %s", SpStrError(rc)));
 		return rc;
 	}
 
@@ -413,24 +413,27 @@ ErrorCodeEnum CGUIConsoleEntity::ResetMaterialCounter(const char *pszMaterial, u
 	if (pCnn->ConnectFromCentralSetting() && pCnn->IsConnectionOK())
 	{
 		CSystemStaticInfo sysInfo;
-		auto rc = GetFunction()->GetSystemStaticInfo(sysInfo);
+		rc = GetFunction()->GetSystemStaticInfo(sysInfo);
 		assert(rc == Error_Succeed);
 
 		rc = pCnn->ResetMaterialCounter(strMaterialCode, sysInfo.strTerminalID, GetCurMaintainer(),
 			dwResetCapacity, dwUsedCounter, dwRemainCounter, pszComment);
 		pCnn->Close();
 	}
+	else {
+		rc = Error_NetBroken;
+	}
 
 	pCnn->DecRefCount();
 	pCnn = NULL;
 
 	if (rc == Error_Succeed)
 	{
-		Dbg("重置物料{%s}计数成功", (const char*)strMaterialCode);
+		Dbg("Reset teminal material counter succ: %s", (const char*)strMaterialCode);
 	}
 	else
 	{
-		LogError(Severity_Middle, rc, 0, CSimpleStringA::Format("重置后端计数失败(0x%X)", rc));
+		LogError(Severity_Middle, rc, 0, CSimpleStringA::Format("Reset teminal material counter from server failed:%s", SpStrError(rc)));
 	}
 
 	return rc;
@@ -457,6 +460,9 @@ ErrorCodeEnum CGUIConsoleEntity::RegistSwallowedCard(const char *pszCardNo, cons
 		rc = pCnn->RegistSwallowedCard(sysInfo.strMachineType, sysInfo.strTerminalID, pszCardNo, pszReasonCode, pszDate, pszTime, pszDeviceSciNo);
 		pCnn->Close();
 	}
+    else {
+        rc = Error_NetBroken;
+    }
 
 	pCnn->DecRefCount();
 	pCnn = NULL;
@@ -480,9 +486,9 @@ ErrorCodeEnum CGUIConsoleEntity::RegistSwallowedCard(const char *pszCardNo, cons
 
 
 	if (rc == Error_Succeed)
-		Dbg("吞卡登记成功,cardno: %s, reason: %s", tempCardNo, pszReasonCode);
+		Dbg("Register swallow card succ,cardno: %s, reason: %s", tempCardNo, pszReasonCode);
 	else
-		Dbg("吞卡登记失败(%s),cardno: %s, reason: %s", SpStrError(rc), tempCardNo, pszReasonCode);
+		Dbg("Register swallow card failed(%s),cardno: %s, reason: %s", SpStrError(rc), tempCardNo, pszReasonCode);
 	
 	return rc;
 }
@@ -533,6 +539,9 @@ ErrorCodeEnum CGUIConsoleEntity::SyncMaterialCount(const char *pszDeviceNo, DWOR
 			arrCardBoxNo, arrPsbCode, arrPsbName, arrCardInit, arrCardRemains, arrCardIssued, arrCardMixed, arrCardPercent);
 		pCnn->Close();
 	}
+	else {
+		rc = Error_NetBroken;
+	}
 
 	pCnn->DecRefCount();
 	pCnn = NULL;

+ 5 - 0
Other/libimageproc/CMakeLists.txt

@@ -14,9 +14,14 @@ set(${MODULE_PREFIX}_SRCS
 add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
 
 
+if(MSVC)
 conan_cmake_run(REQUIRES opencv/3.1.0@LR04.02_ThirdParty/testing
+BASIC_SETUP CMAKE_TARGETS)
+else()
+conan_cmake_run(REQUIRES opencv/3.1.0@LR04.02_ThirdParty/stable
 BASIC_SETUP CMAKE_TARGETS
 BUILD missing)
+endif(MSVC)
 
 target_include_directories(${MODULE_NAME} PRIVATE
 	"${CONAN_RVCFRAMEWORK_ROOT}/include"