Преглед изворни кода

#IQRV #comment [Module] 完成HSPScanner和ScannerSet两个实体的迁移

gifur пре 4 година
родитељ
комит
2dfad54e83

+ 3 - 0
Module/CMakeLists.txt

@@ -172,6 +172,9 @@ add_subdirectory(mod_counterconnector)
 add_subdirectory(mod_localmediaplay)
 add_subdirectory(mod_mediacontroller)
 
+add_subdirectory(mod_ScannerSet)
+add_subdirectory(mod_HSPScanner)
+
 # 汇总要依赖拷贝的第三方库
 set(RVC_CONAN_DEP_LIBS ${RVC_CONAN_DEP_LIBS} ${MODULE_CONAN_DEP_LIBS} PARENT_SCOPE)
 

+ 51 - 88
Module/mod_HSPScanner/HSPScannerFSM.cpp

@@ -7,6 +7,7 @@
 
 #define RESET_TIMER_ID 1
 #define CHECK_CONNECT_TIMER_ID 2
+
 const int MILLISECOND_TO_RESET = 30 * 1000;
 const int MILLISECOND_TO_CHECK_CONNECT = 30 * 1000;
 
@@ -17,60 +18,36 @@ const int MAX_ERROR_TIMES = 2;
 
 #define TEMP_WIDTH 1280
 
+#define T_STRINGY(var) case var: return #var; break;
 const char* EvtTypeToString(int nEvtType)
 {
 	switch(nEvtType)
 	{
-	case USER_EVT_STARTPREVIEW: return "USER_EVT_STARTPREVIEW";
-		break;
-	case USER_EVT_STARTPREVIEW_FINISHED: return "USER_EVT_STARTPREVIEW_FINISHED";
-		break;
-	case USER_EVT_STOPPREVIEW: return "USER_EVT_STOPPREVIEW";
-		break;
-	case USER_EVT_STOPPREVIEW_FINISHED: return "USER_EVT_STOPPREVIEW_FINISHED";
-		break;
-	case USER_EVT_SETWINPOS: return "USER_EVT_SETWINPOS";
-		break;
-	case USER_EVT_SETWINPOSFINISHED: return "USER_EVT_SETWINPOSFINISHED";
-		break;
-	case USER_EVT_SCANIMAGE: return "USER_EVT_SCANIMAGE";
-		break;
-	case USER_EVT_SCANIMAGE_EX: return "USER_EVT_SCANIMAGE_EX";
-		break;
-	case USER_EVT_SCANIMAGEFINISHED: return "USER_EVT_SCANIMAGEFINISHED";
-		break;
-	case USER_EVT_SETPROPERTY: return "USER_EVT_SETPROPERTY";
-		break;
-	case USER_EVT_SETPROPERTY_FINISHED: return "USER_EVT_SETPROPERTY_FINISHED";
-		break;
-	case USER_EVT_GETSTATUS: return "USER_EVT_GETSTATUS";
-		break;
-	case USER_EVT_GETINFO: return "USER_EVT_GETINFO";
-		break;
-	case USER_EVT_DISCONNECT: return "USER_EVT_DISCONNECT";
-		break;
-	case USER_EVT_EXIT: return "USER_EVT_EXIT";
-		break;
-	case USER_EVT_QUIT: return "USER_EVT_QUIT";
-		break;
-	case USER_EVT_RESET: return "USER_EVT_RESET";
-		break;
-	case USER_EVT_SHOWPROPERTY: return "USER_EVT_SHOWPROPERTY";
-		break;
-	case USER_EVT_SHOWPROPERTY_FINISHED: return "USER_EVT_SHOWPROPERTY_FINISHED";
-		break;
-	case EVT_TIMER: return "EVT_TIMER";
-		break;
-	case USER_EVT_SETPROPERTYINVIEW_FINISHED: return "USER_EVT_SETPROPERTYINVIEW_FINISHED";
-		break;
-	case USER_EVT_EXIT_FINISHED: return "USER_EVT_EXIT_FINISHED";
-		break;
-	case USER_EVT_NOCFG: return "USER_EVT_NOCFG";
-		break;
-	case USER_EVT_HIDEPREVIEW: return "USER_EVT_HIDEPREVIEW";
-		break;
-	case USER_EVT_GOTOHELL: return "USER_EVT_GOTOHELL";
-		break;
+		T_STRINGY(USER_EVT_STARTPREVIEW)
+		T_STRINGY(USER_EVT_STARTPREVIEW_FINISHED)
+		T_STRINGY(USER_EVT_STOPPREVIEW)
+		T_STRINGY(USER_EVT_STOPPREVIEW_FINISHED)
+		T_STRINGY(USER_EVT_SETWINPOS)
+		T_STRINGY(USER_EVT_SETWINPOSFINISHED)
+		T_STRINGY(USER_EVT_SCANIMAGE)
+		T_STRINGY(USER_EVT_SCANIMAGE_EX)
+		T_STRINGY(USER_EVT_SCANIMAGEFINISHED)
+		T_STRINGY(USER_EVT_SETPROPERTY)
+		T_STRINGY(USER_EVT_SETPROPERTY_FINISHED)
+		T_STRINGY(USER_EVT_GETSTATUS)
+		T_STRINGY(USER_EVT_GETINFO)
+		T_STRINGY(USER_EVT_DISCONNECT)
+		T_STRINGY(USER_EVT_EXIT)
+		T_STRINGY(USER_EVT_QUIT)
+		T_STRINGY(USER_EVT_RESET)
+		T_STRINGY(USER_EVT_EXIT_FINISHED)
+		T_STRINGY(USER_EVT_SHOWPROPERTY)
+		T_STRINGY(USER_EVT_SHOWPROPERTY_FINISHED)
+		T_STRINGY(EVT_TIMER)
+		T_STRINGY(USER_EVT_SETPROPERTYINVIEW_FINISHED)
+		T_STRINGY(USER_EVT_NOCFG)
+		T_STRINGY(USER_EVT_HIDEPREVIEW)
+		T_STRINGY(USER_EVT_GOTOHELL)
 	default:
 		return "Unknown EventType";
 		break;
@@ -81,36 +58,25 @@ const char* ParamValToString(int nParamVal)
 {
 	switch(nParamVal)
 	{
-	case HSPS_BOOLVAL_FALSE: return "HSPS_BOOLVAL_FALSE";
-		break;
-	case HSPS_BOOLVAL_TRUE: return "HSPS_BOOLVAL_TRUE";
-		break;
-	case HSPS_COLOR_FULL: return "HSPS_COLOR_FULL";
-		break;
-	case HSPS_COLOR_GREY: return "HSPS_COLOR_GREY";
-		break;
-	case HSPS_ROTATE_NOANGLE: return "HSPS_ROTATE_NOANGLE";
-		break;
-	case HSPS_ROTATE_LEFT: return "HSPS_ROTATE_LEFT";
-		break;
-	case HSPS_ROTATE_MIRROR: return "HSPS_ROTATE_MIRROR";
-		break;
-	case HSPS_ROTATE_RIGHT: return "HSPS_ROTATE_RIGHT";
-		break;
-	case HSPS_SCAN_FULL: return "HSPS_SCAN_FULL";
-		break;
-	case HSPS_SCAN_A4: return "HSPS_SCAN_A4";
-		break;
-	case HSPS_SCAN_IDCARD: return "HSPS_SCAN_IDCARD";
-		break;
-	case HSPS_VIEW_HIDE: return "HSPS_VIEW_HIDE";
-		break;
-	case HSPS_VIEW_SHOW: return "HSPS_VIEW_SHOW";
-		break;
+        T_STRINGY(HSPS_BOOLVAL_FALSE)
+        T_STRINGY(HSPS_BOOLVAL_TRUE)
+        T_STRINGY(HSPS_COLOR_FULL)
+        T_STRINGY(HSPS_COLOR_GREY)
+        T_STRINGY(HSPS_ROTATE_NOANGLE)
+        T_STRINGY(HSPS_ROTATE_LEFT)
+        T_STRINGY(HSPS_ROTATE_MIRROR)
+        T_STRINGY(HSPS_ROTATE_RIGHT)
+        T_STRINGY(HSPS_SCAN_FULL)
+        T_STRINGY(HSPS_SCAN_A4)
+        T_STRINGY(HSPS_SCAN_IDCARD)
+        T_STRINGY(HSPS_VIEW_HIDE)
+        T_STRINGY(HSPS_VIEW_SHOW)
 	default:
 		return "Unknown ParamVal";
 	}
 }
+#undef  T_STRINGY
+
 
 CHSPScannerFSM::CHSPScannerFSM(void)
 	:
@@ -168,19 +134,16 @@ ErrorCodeEnum CHSPScannerFSM::OnInit()
         goto FAIL;
     }
     m_bOpened = true;
-
-	if(ISSUCCEEDED(result))
 	{
-		m_nRecX = 1280;
-		m_nRecY = 0;
-		m_nRecW = 1920;
-		ErrorCodeEnum ecInit = m_hDevHelper->SetViewPos(m_nRecX, m_nRecY, m_nRecW);
-		ErrorCodeEnum ecInitScan = m_hDevHelper->SetParam(HSPS_MODEL_SCANSIZE, HSPS_SCAN_FULL);
-		ErrorCodeEnum ecInitRotate = m_hDevHelper->SetParam(HSPS_MODEL_ROTATE, HSPS_ROTATE_NOANGLE);
-		ErrorCodeEnum ecInitColor = m_hDevHelper->SetParam(HSPS_MODEL_COLOR, HSPS_COLOR_FULL);
-		Dbg("ViewPos: %s, Scan: %s, rotate: %s, color: %s.",  SpStrError(ecInit), SpStrError(ecInitScan), SpStrError(ecInitRotate), SpStrError(ecInitColor));
-	}
-
+        m_nRecX = 1280;
+        m_nRecY = 0;
+        m_nRecW = 1920;
+        ErrorCodeEnum ecInit = m_hDevHelper->SetViewPos(m_nRecX, m_nRecY, m_nRecW);
+        ErrorCodeEnum ecInitScan = m_hDevHelper->SetParam(HSPS_MODEL_SCANSIZE, HSPS_SCAN_FULL);
+        ErrorCodeEnum ecInitRotate = m_hDevHelper->SetParam(HSPS_MODEL_ROTATE, HSPS_ROTATE_NOANGLE);
+        ErrorCodeEnum ecInitColor = m_hDevHelper->SetParam(HSPS_MODEL_COLOR, HSPS_COLOR_FULL);
+        Dbg("ViewPos: %s, Scan: %s, rotate: %s, color: %s.", SpStrError(ecInit), SpStrError(ecInitScan), SpStrError(ecInitRotate), SpStrError(ecInitColor));
+    }
 	m_eDevStatus = DEVICE_STATUS_NORMAL;
 	return result;
 

+ 0 - 1
Module/mod_HSPScanner/HSPScannerFSM.h

@@ -204,7 +204,6 @@ public:
 };
 
 
-
 class CHSPScannerFSM : public CCommDevFSM<CHSPScannerFSM, CHSPSClass>, public IFSMStateHooker
 {
 public:

+ 4 - 1
Module/mod_HSPScanner/HSPScanner_client_g.h

@@ -14,7 +14,10 @@ public:
 	HSPScannerService_ClientBase(CEntityBase *pEntity) : m_pEntityBase(pEntity), m_bSysManaged(false) {}
 
 protected:
-	virtual ~HSPScannerService_ClientBase() {}
+	virtual ~HSPScannerService_ClientBase() 
+	{
+		Dbg("to delete %s", __FUNCTION__);
+	}
 public:
 
 	ErrorCodeEnum Connect(CSmartPointer<IAsynWaitSp> &spAsyncWait)

+ 0 - 2
Module/mod_HSPScanner/mod_HSPScanner.cpp

@@ -73,8 +73,6 @@ void CHSPScannerServerSession::Handle_Exit(SpOnewayCallContext<HSPScannerService
 	m_pEntity->Exit(ctx);
 }
 
-
-
 SP_BEGIN_ENTITY_MAP()
 	SP_ENTITY(CHSPScannerEntity)
 SP_END_ENTITY_MAP()

+ 4 - 2
Module/mod_HSPScanner/mod_HSPScanner.h

@@ -63,9 +63,9 @@ public:
     const char* GetEntityVersion() const { return MODULE_VERSION_FULL; }
 
     ON_ENTITYT_TEST()
+
 	virtual CServerSessionBase* OnNewSession(const char* , const char * )
 	{
-		//LOG_FUNCTION();
 		return new CHSPScannerServerSession(this);
 	}
 
@@ -75,14 +75,17 @@ public:
 		ErrorCodeEnum erroCode = m_fsm.Init(this);
 		pTransactionContext->SendAnswer(erroCode);
 	}
+
 	virtual void OnPrePause(CSmartPointer<ITransactionContext> pTransactionContext)
 	{
 		pTransactionContext->SendAnswer(Error_Succeed);
 	}
+
 	virtual void OnPreContinue(CSmartPointer<ITransactionContext> pTransactionContext)
 	{
 		pTransactionContext->SendAnswer(Error_Succeed);
 	}
+
 	virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,
 		CSmartPointer<ITransactionContext> pTransactionContext)
 	{
@@ -125,7 +128,6 @@ public:
 
 	void Exit(SpOnewayCallContext<HSPScannerService_Exit_Info>::Pointer ctx)
 	{
-		LOG_FUNCTION();
 		m_fsm.PostEventFIFO(new FSMEvent(USER_EVT_EXIT));
 	}
 

+ 26 - 141
Module/mod_ScannerSet/ScannerSetFSM.cpp

@@ -24,8 +24,6 @@ const int MILLISECOND_WAIT_TIMEOUT_DEFAULT = 10 * 1000;
 const int MILLISECOND_WAIT_TIMEOUT_STARTPREVIEW = 20 * 1000;
 const int MILLISECOND_WAIT_TIMEOUT_SCANIMAGE = 15 * 1000;
 
-#define MODULE_VERION_FULL "1.0.0.2"
-
 using namespace HeartBeat;
 
 const char* EvtTypeToString(int nEvtType)
@@ -129,20 +127,19 @@ ErrorCodeEnum CScannerFSM::OnInit()
 {
 	LOG_FUNCTION();
 	ErrorCodeEnum erroCode = Error_Succeed;
-	Dbg("Version: %s, Complied at: %s %s", MODULE_VERION_FULL, __DATE__, __TIME__);
+	Dbg("Complied at: %s %s", __DATE__, __TIME__); 
 	CSmartPointer<IConfigInfo> spConfig;
-	SP::Module::Comm::TerminalMachineInfo machineInfo = SP::Module::Comm::GetTerminalMachineInfo(GetEntityBase());
 	CSystemStaticInfo sysInfo;
 	erroCode = GetEntityBase()->GetFunction()->GetSystemStaticInfo(sysInfo);
 	if (FAILURED(erroCode))
 	{
-		Dbg("Get System Static info failed 0x%x(%d).", erroCode, erroCode);
+		Dbg("Get System Static info failed: %s.", SpStrError(erroCode));
 		return Error_Unexpect;
 	}
 	m_csMachineType = sysInfo.strMachineType;
 	m_csSite = sysInfo.strSite;
 	m_strTerminalNo = sysInfo.strTerminalID;
-	Dbg("MachineType:%s, Site:%s, TerminalID:%d.", (LPCTSTR)m_csMachineType, (LPCTSTR)m_csSite, (LPCTSTR)m_strTerminalNo);
+	Dbg("MachineType:%s, Site:%s, TerminalID:%s.", (LPCTSTR)m_csMachineType, (LPCTSTR)m_csSite, (LPCTSTR)m_strTerminalNo);
 	m_bPadMachine = !m_csMachineType.Compare("RVC.Pad", true);
 	if(!m_bPadMachine) {
 		m_bDesk2SMachine = !m_csMachineType.Compare("RVC.Desk2S", true);
@@ -187,7 +184,6 @@ void CScannerFSM::s0_on_entry()
 			PostEventFIFO(new FSMEvent(USER_EVT_DEV_INVALID));
 		}
 	}
-	
 	else if(m_bUsePortableScanner)
 	{
 		ErrorCodeEnum erroCode = CheckPortableConnectStatus();
@@ -210,7 +206,7 @@ void CScannerFSM::s0_on_exit()
 
 unsigned int CScannerFSM::s0_on_event(FSMEvent* e)
 {
-	Dbg("s0_on_event: %s(%d), %d.", EvtTypeToString(e->iEvt), e->iEvt, e->param1);
+	Dbg("%s: %s(%d), %d.", __FUNCTION__,  EvtTypeToString(e->iEvt), e->iEvt, e->param1);
 	unsigned int uRet = 0;
 	switch(e->iEvt)
 	{
@@ -401,7 +397,7 @@ void CScannerFSM::s2_on_exit()
 
 unsigned int CScannerFSM::s2_on_event(FSMEvent* e)
 {
-	Dbg("s2_on_event: %s(%d), %s(%d), %d.",
+	Dbg("%s: %s(%d), %s(%d), %d.", __FUNCTION__,
 		EvtTypeToString(m_iEvt), m_iEvt, EvtTypeToString(e->iEvt), e->iEvt, e->param1);
 	unsigned int uRet = 0;
 	switch(e->iEvt)
@@ -410,7 +406,6 @@ unsigned int CScannerFSM::s2_on_event(FSMEvent* e)
 		{
 			if(m_iEvt == USER_EVT_STARTPREVIEW)
 			{
-				//uRet = e->param1;
 				uRet = 1;
 				e->SetHandled();
 			}
@@ -420,7 +415,6 @@ unsigned int CScannerFSM::s2_on_event(FSMEvent* e)
 		{
 			if(m_iEvt == USER_EVT_STOPPREVIEW)
 			{
-				//uRet = e->param1;
 				uRet = 1;
 				e->SetHandled();
 			}
@@ -430,7 +424,6 @@ unsigned int CScannerFSM::s2_on_event(FSMEvent* e)
 		{
 			if(m_iEvt == USER_EVT_SCANIMAGE)
 			{
-				//uRet = e->param1;
 				uRet = 1;
 				e->SetHandled();
 			}
@@ -440,7 +433,6 @@ unsigned int CScannerFSM::s2_on_event(FSMEvent* e)
 		{
 			if(m_iEvt == USER_EVT_SETPROPERTY)
 			{
-				//uRet = e->param1;
 				uRet = 1;
 				e->SetHandled();
 			}
@@ -450,7 +442,6 @@ unsigned int CScannerFSM::s2_on_event(FSMEvent* e)
 		{
 			if(m_iEvt == USER_EVT_SHOWPROPERTY)
 			{
-				//uRet = e->param1;
 				uRet = 1;
 				e->SetHandled();
 			}
@@ -460,7 +451,6 @@ unsigned int CScannerFSM::s2_on_event(FSMEvent* e)
 		{
 			if(m_iEvt == USER_EVT_SETWINPOS)
 			{
-				//uRet = e->param1;
 				uRet = 1;
 				e->SetHandled();
 			}
@@ -470,7 +460,6 @@ unsigned int CScannerFSM::s2_on_event(FSMEvent* e)
 		{
 			if(m_iEvt == USER_EVT_GETSTATUS)
 			{
-				//uRet = e->param1;
 				uRet = 1;
 				e->SetHandled();
 			}
@@ -480,7 +469,6 @@ unsigned int CScannerFSM::s2_on_event(FSMEvent* e)
 		{
 			if(m_iEvt == USER_EVT_GETINFO)
 			{
-				//uRet = e->param1;
 				uRet = 1;
 				e->SetHandled();
 			}
@@ -581,7 +569,7 @@ void CScannerFSM::s4_on_exit()
 
 unsigned int CScannerFSM::s4_on_event(FSMEvent* e)
 {
-	Dbg("s4_on_event: %s(%d), %d.", EvtTypeToString(e->iEvt), e->iEvt, e->param1);
+	Dbg("%s: %s(%d), %d.", __FUNCTION__, EvtTypeToString(e->iEvt), e->iEvt, e->param1);
 	unsigned int uRet = 0;
 	switch(e->iEvt)
 	{
@@ -809,7 +797,7 @@ int CScannerFSM::ScanImage(SpReqAnsContext<ScannerService_ScanImage_Req,
 			erroCode = m_pPortableClient->ScanImage(req, ans, MILLISECOND_WAIT_TIMEOUT_SCANIMAGE);
 
 			if(FAILURED(erroCode)) {
-				Dbg("ScanImage context failed 0x%x(%d).", erroCode, erroCode);
+				Dbg("ScanImage context failed %s.",  SpStrError(erroCode));
 				nRes = 1;
 			} else {
 				Dbg("ScanImage context suc.");
@@ -826,7 +814,7 @@ int CScannerFSM::ScanImage(SpReqAnsContext<ScannerService_ScanImage_Req,
 
 			erroCode = m_pHSPSClient->ScanImageEx(req, ans, MILLISECOND_WAIT_TIMEOUT_SCANIMAGE);
 			if(FAILURED(erroCode)) {
-				Dbg("ScanImageEx context failed 0x%x(%d).", erroCode, erroCode);
+				Dbg("ScanImageEx context failed %s.", SpStrError(erroCode));
 				nRes = 1;
 			} else {
 				Dbg("ScanImageEx context suc.");
@@ -840,7 +828,7 @@ int CScannerFSM::ScanImage(SpReqAnsContext<ScannerService_ScanImage_Req,
 
 			erroCode = m_pPortableClient->ScanImageEx(req, ans, MILLISECOND_WAIT_TIMEOUT_SCANIMAGE);
 			if(FAILURED(erroCode)) {
-				Dbg("ScanImageEx context failed 0x%x(%d).", erroCode, erroCode);
+				Dbg("ScanImageEx context failed %s.", SpStrError(erroCode));
 				nRes = 1;
 			} else {
 				Dbg("ScanImageEx context suc.");
@@ -890,7 +878,7 @@ int CScannerFSM::SetProperty(SpReqAnsContext<ScannerService_SetProperty_Req,
 
 		erroCode = m_pHSPSClient->SetProperty(req, ans, MILLISECOND_WAIT_TIMEOUT_DEFAULT);
 		if(FAILURED(erroCode)) {
-			Dbg("SetProperty context failed 0x%x(%d).", erroCode, erroCode); 
+			Dbg("SetProperty context failed %s.", SpStrError(erroCode));
 			nRes = 1;
 		} else {
 			ctx->Ans.retCode = ans.retCode;
@@ -907,7 +895,7 @@ int CScannerFSM::SetProperty(SpReqAnsContext<ScannerService_SetProperty_Req,
 
 		erroCode = m_pPortableClient->SetProperty(req, ans, MILLISECOND_WAIT_TIMEOUT_DEFAULT);
 		if(FAILURED(erroCode)) {
-			Dbg("SetProperty context failed 0x%x(%d).", erroCode, erroCode); 
+			Dbg("SetProperty context failed %s.", SpStrError(erroCode));
 			nRes = 1;
 		} else {
 			ctx->Ans.retCode = ans.retCode;
@@ -958,7 +946,7 @@ int CScannerFSM::ShowLTProperty(SpReqAnsContext<ScannerService_ShowProperty_Req,
 	}
 	if(FAILURED(erroCode)) 
 	{
-		Dbg("ShowLTProperty context failed 0x%x(%d).", erroCode, erroCode);
+		Dbg("ShowLTProperty context failed %s.", SpStrError(erroCode));
 		nRes = 1;
 		if(erroCode == Error_TimeOut)
 		{
@@ -1022,7 +1010,7 @@ int CScannerFSM::SetWinPos(SpReqAnsContext<ScannerService_SetWindowPos_Req,
 		erroCode = m_pPortableClient->SetWinPos(req, ans, MILLISECOND_WAIT_TIMEOUT_DEFAULT);
 	}
 	if(FAILURED(erroCode)) {
-		Dbg("SetWinPos context failed 0x%x(%d).", erroCode, erroCode); 
+		Dbg("SetWinPos context failed %s.", SpStrError(erroCode));
 		nRes = 1;
 	} else  {
 		Dbg("SetWinPos context suc.");
@@ -1062,7 +1050,7 @@ int CScannerFSM::GetDevStatus(SpReqAnsContext<ScannerService_GetDevStatus_Req,
 		HSPScannerService_GetDevStatus_Ans ans = {};
 
 		erroCode = m_pHSPSClient->GetDevStatus(req, ans, MILLISECOND_WAIT_TIMEOUT_DEFAULT);
-		if(FAILURED(erroCode)) {Dbg("GetDevStatus context failed 0x%x(%d).", erroCode, erroCode); nRes = 1;}
+		if(FAILURED(erroCode)) {Dbg("GetDevStatus context failed %s.", SpStrError(erroCode)); nRes = 1;}
 		else 
 		{
 			Dbg("GetDevStatus context suc.");
@@ -1078,7 +1066,7 @@ int CScannerFSM::GetDevStatus(SpReqAnsContext<ScannerService_GetDevStatus_Req,
 		PortableScannerService_GetDevStatus_Ans ans = {};
 
 		erroCode = m_pPortableClient->GetDevStatus(req, ans, MILLISECOND_WAIT_TIMEOUT_DEFAULT);
-		if(FAILURED(erroCode)) {Dbg("GetDevStatus context failed 0x%x(%d).", erroCode, erroCode); nRes = 1;}
+		if(FAILURED(erroCode)) {Dbg("GetDevStatus context failed  %s.", SpStrError(erroCode)); nRes = 1;}
 		else 
 		{
 			Dbg("GetDevStatus context suc.");
@@ -1128,7 +1116,7 @@ int CScannerFSM::GetDevInfo(SpReqAnsContext<ScannerService_GetDevInfo_Req,
 		erroCode = m_pHSPSClient->GetDevInfo(req, ans, MILLISECOND_WAIT_TIMEOUT_DEFAULT);
 
 
-		if(FAILURED(erroCode)) {Dbg("GetDevInfo context failed 0x%x(%d).", erroCode, erroCode); nRes = 1;}
+		if(FAILURED(erroCode)) {Dbg("GetDevInfo context failed %s.", SpStrError(erroCode)); nRes = 1;}
 		else
 		{
 			Dbg("GetDevInfo context suc.");
@@ -1147,7 +1135,7 @@ int CScannerFSM::GetDevInfo(SpReqAnsContext<ScannerService_GetDevInfo_Req,
 		PortableScannerService_GetDevInfo_Ans ans = {};
 		erroCode = m_pPortableClient->GetDevInfo(req, ans, MILLISECOND_WAIT_TIMEOUT_DEFAULT);
 		if(FAILURED(erroCode)) {
-			Dbg("GetDevInfo context failed 0x%x(%d).", erroCode, erroCode);
+			Dbg("GetDevInfo context failed  %s.", SpStrError(erroCode));
 			nRes = 1;
 		}
 		else
@@ -1254,7 +1242,7 @@ ErrorCodeEnum CScannerFSM::ConnectToHSPScanner()
 	if(m_pHSPSClient)
 	{
 		m_pHSPSClient->GetFunction()->CloseSession();
-		m_pHSPSClient->SafeDelete();
+		//m_pHSPSClient->SafeDelete();
 		m_pHSPSClient = NULL;
 	}
 
@@ -1270,19 +1258,6 @@ ErrorCodeEnum CScannerFSM::ConnectToHSPScanner()
 		return Error_InvalidState;
 	}
 
-	//Dbg("Connect to HSPScanner entity suc.");
-	//HSPScannerService_GetDevStatus_Req req;
-	//HSPScannerService_GetDevStatus_Ans ans;
-	//ErrorCodeEnum ecGetStatus = m_pHSPSClient->GetDevStatus(req, ans, 5000);
-	//if(ISSUCCEEDED(ecGetStatus))
-	//{
-	//	Dbg("HSPScanner invokes GetDevStatus suc.");
-	//	Dbg("connected: %d, showing: %d, preview: %d.", ans.connected, ans.showing, ans.previewing);
-	//}
-	//else
-	//{
-	//	Dbg("HSPScanner invokes GetDevStatus failed, 0x%x(%d).", ecGetStatus, ecGetStatus);
-	//}
 	return Error_Succeed;
 }
 
@@ -1314,7 +1289,6 @@ ErrorCodeEnum CScannerFSM::CheckHSPSConnectStatus()
 	}
 	Dbg("HSPScanner entity is Connectable.");
 	pCheckClient->GetFunction()->CloseSession();
-	pCheckClient->SafeDelete();
 	pCheckClient = NULL;
 	return Error_Succeed;
 }
@@ -1333,7 +1307,7 @@ ErrorCodeEnum CScannerFSM::ConnectToPortableScanner()
 {
 	if(m_pPortableClient) {
 		m_pPortableClient->GetFunction()->CloseSession();
-		m_pPortableClient->SafeDelete();
+		//m_pPortableClient->SafeDelete();
 		m_pPortableClient = NULL;
 	}
 
@@ -1742,7 +1716,9 @@ ErrorCodeEnum CScannerFSM::IsPortScanHoldDevice(ScannerDeviceInfo* pInfo, int& c
 		PortableScannerService_GetDevStatus_Ans ans = {};
 		auto ec = m_pPortableClient->GetDevStatus(req, ans, MILLISECOND_WAIT_TIMEOUT_DEFAULT);
 		ReleaseSuitableEntity();
-		if(FAILURED(ec)) { Dbg("GetDevStatus failed 0x%x(%d).", ec, ec); }
+        if (FAILURED(ec)) {
+            Dbg("GetDevStatus failed %s.", SpStrError(ec));
+        }
 		else {
 			pInfo->devIdx = ans.devIndex;
 			pInfo->strDevName = ans.checkcode;
@@ -1780,7 +1756,9 @@ ErrorCodeEnum CScannerFSM::IsPortScanHoldDevice(bool& hasHolden,
 		PortableScannerService_GetDevStatus_Ans ans = {};
 		auto ec = m_pPortableClient->GetDevStatus(req, ans, MILLISECOND_WAIT_TIMEOUT_DEFAULT);
 		ReleaseSuitableEntity();
-		if(FAILURED(ec)) { Dbg("GetDevStatus failed 0x%x(%d).", ec, ec); }
+        if (FAILURED(ec)) {
+            Dbg("GetDevStatus failed %s.", SpStrError(ec));
+        }
 		else 
 		{
 			DevID = ans.devIndex;
@@ -1854,7 +1832,7 @@ ErrorCodeEnum CScannerFSM::_BindPSDevice(int nDevID, LPCTSTR lpcszDevName,  bool
 				req.devId, (LPCTSTR)req.devName,
 				ans.usedId, (LPCTSTR)ans.checkcode);
 		} else {
-			Dbg("Bind portable scan device failed, EC=%u(0x%X)", rc, rc);
+			Dbg("Bind portable scan device failed %s.", SpStrError(rc));
 		}
 	}
 	return rc;
@@ -2024,99 +2002,6 @@ bool CScannerFSM::GetAttachedTerminal(CSimpleStringA &csTerm)
 	return (ec == Error_Succeed);
 }
 
-//简版发起请求,要废弃
-//ErrorCodeEnum CScannerFSM::SendRequest2Heatbeat(DWORD dwMethodSig, const CAutoBuffer& BfReq, CAutoBuffer& BfAns)
-//{
-//	LOG_FUNCTION();
-//	Dbg("dwMethodSigure: %d", dwMethodSig);
-//	ErrorCodeEnum Error = Error_Succeed;
-//	switch (dwMethodSig) {
-//	case ScannerService_MethodSignature_StartPreview:
-//
-//		break;
-//	case ScannerService_MethodSignature_CancelPreview:
-//
-//		break;
-//	case ScannerService_MethodSignature_ScanImage:
-//
-//		break;
-//	case ScannerService_MethodSignature_SetWindowPos:
-//
-//		break;
-//	case ScannerService_MethodSignature_SetProperty:
-//
-//		break;
-//	case ScannerService_MethodSignature_ShowProperty:
-//
-//		break;
-//	case ScannerService_MethodSignature_GetDevStatus:
-//
-//		break;
-//	case ScannerService_MethodSignature_GetOnlineCameras:
-//
-//		break;
-//	case ScannerService_MethodSignature_GetDevInfo:
-//
-//		break;
-//	case ScannerService_MethodSignature_Exit:
-//
-//		break;
-//	default:
-//		Error = Error_MethodNotFound;
-//		break;
-//	}
-//
-//	if(Error == Error_Succeed) {
-//		HeartBeatService_CrossTermCall_Req hb_ctc_req;
-//		HeartBeatService_CrossTermCall_Ans hb_ctc_ans;
-//		hb_ctc_req.type = (int)dwMethodSig;
-//		SpBuffer spbuf;
-//		if (!spbuf.OpenRead((const char*)&BfReq[0], BfReq.GetCount())) {
-//			return Error_Unexpect;
-//		}
-//		Dbg("length: %d", spbuf.GetLength());
-//		hb_ctc_req.paramX = spbuf.ToBlob();
-//		hb_ctc_req.fromTerminalNo = m_strTerminalNo;
-//#ifdef TWINKLE_LOCAL_DEBUG
-//		hb_ctc_req.toTerminalNo = "7715010050";
-//#else
-//		GetAttachedTerminal(hb_ctc_req.toTerminalNo);
-//#endif
-//		hb_ctc_req.param1 = "";
-//		hb_ctc_req.param2 = "";
-//
-//		//ScannerSet在shell.ini里的值
-//		hb_ctc_req.nEntityID = 0x218; 
-//
-//
-//		if(ISSUCCEEDED(ConnectToHeartbeat())) {
-//
-//			Dbg("Start CrossTermCall %d", hb_ctc_req.paramX.m_iLength);
-//			Error = m_pHeartBeatClient->CrossTermCall(hb_ctc_req, hb_ctc_ans, 20000);
-//			Dbg("End CrossTermCall: %d", Error);
-//		}
-//
-//
-//		//Error = ReceiveRequest5Heartbeat(hb_ctc_req, hb_ctc_ans);
-//		
-//		
-//		//if(Error_Succeed == Error) {
-//		//	SpBuffer spbuf;
-//		//	if(spbuf.OpenRead((const char*)hb_ctc_ans.retParamX.m_pData, hb_ctc_ans.retParamX.m_iLength)) {
-//		//		//提醒:一个 SpBuffer 不能做多次序列化,放开下方的注释会报错
-//		//		//ScannerService_StartPreview_Ans ans;
-//		//		//ans.Serialize(spbuf);
-//		//		//Dbg("ans: retCode:%d, r1:%d, r2:%d", ans.retCode, ans.reserved1, ans.reserved2);
-//		//		BfAns = spbuf.ToBuffer();
-//		//	} else {
-//		//		Dbg("SpBuffer2Object after ReceiveRequest5Heartbeat failed: %d", Error);
-//		//	}
-//		//}
-//	}
-//	return Error;
-//}
-
-
 ErrorCodeEnum CScannerFSM::SendRequest2Heatbeat(
 	DWORD dwMethodSig, const CBlob& bbReq, CBlob& bbAns, PVOID* ptCtx, bool fTwoWay)
 {

+ 6 - 4
Module/mod_ScannerSet/ScannerSetFSM.h

@@ -44,6 +44,11 @@ public:
 	{
 
 	}
+
+	~CHSPSInnerClient()
+	{
+		Dbg("to delete %s", __FUNCTION__);
+	}
 };
 
 class CPortableScannerClient : public PortableScannerService_ClientBase
@@ -66,8 +71,6 @@ public:
 	}
 };
 
-//DECLARE_ENTITY_CLIENT_ENTITY(HeartBeat, HeartBeatService);
-
 template<typename TEntity>
 struct AvailableEntityCheck {
 	typedef TEntity Type;
@@ -478,7 +481,7 @@ public:
 	ErrorCodeEnum GetPortableScannerInfo() {
 		EntityStateEnum state = EntityState_NoStart;
 		ErrorCodeEnum rc = GetEntityCurState(state, "PortableScanner");
-		Dbg("PortableScanner entity state: %d(%u)", state, rc);
+		Dbg("PortableScanner entity state: %d(%s)", state, SpStrError(rc));
 		return rc;
 	}
 	ErrorCodeEnum IsPortScanHoldDevice(ScannerDeviceInfo* pInfo, int& curState);
@@ -491,7 +494,6 @@ public:
 
 	void SendBroadcastAbout();
 
-
 	ErrorCodeEnum CheckHeartbeatConnectStatus();
 	ErrorCodeEnum ConnectToHeartbeat();
 	void FreeHeartbeatClient() {

+ 3 - 2
Module/mod_ScannerSet/mod_ScannerSet.h

@@ -97,8 +97,9 @@ public:
 		ErrorCodeEnum erroCode = m_fsm.Init(this);
 		GetFunction()->SubscribeLog(m_uuidMaintainWatcher, this,
 			Log_Event, Severity_Middle, Error_IgnoreAll, -2, "MaintainWatcher");
-		GetFunction()->SubscribeLog(m_uuidPortableScanner, this, 
-			Log_Error, Severity_High, Error_IgnoreAll, -1, "PortableScanner");
+#if defined(RVC_OS_WIN)
+        GetFunction()->SubscribeLog(m_uuidPortableScanner, this, Log_Error, Severity_High, Error_IgnoreAll, -1, "PortableScanner");
+#endif //RVC_OS_WIN
 		pTransactionContext->SendAnswer(erroCode);
 	}
 	virtual void OnPrePause(CSmartPointer<ITransactionContext> pTransactionContext)

+ 5 - 5
addin/cfg/HealthManager.ini

@@ -112,7 +112,7 @@ TokenKeeper=2
 ;UpgradeManager=2
 AccessAuthorization=2
 PinPad=2
-;HSPScanner=0
+HSPScanner=0
 ;BranchDevice=0
 ;MaintainWatcher=0
 ;RemoteController=0
@@ -167,7 +167,7 @@ SalesAudioTrans=0
 Chromium=0
 
 [SafeLoad.RVC.IL]
-;ScannerSet=0
+ScannerSet=0
 Initializer=2
 MaintainWatcher=0
 CenterSetting=2
@@ -339,7 +339,7 @@ UpgradeManager=2
 CenterSetting=2
 AccessAuthorization=2
 PinPad=2
-;HSPScanner=0
+HSPScanner=0
 MaintainWatcher=0
 RemoteController=0
 ResourceWatcher=0
@@ -384,7 +384,7 @@ UpgradeManager=2
 CenterSetting=2
 AccessAuthorization=2
 PinPad=2
-;HSPScanner=0
+HSPScanner=0
 MaintainWatcher=0
 RemoteController=0
 ResourceWatcher=0
@@ -398,7 +398,7 @@ SalesAudioTrans=0
 CardIssuer=2
 IDCertificate=2
 ;Gpio=2
-;ScannerSet=0
+ScannerSet=0
 ;ContactlessCard=0
 ;print=0
 ;ThermalPrint=0