瀏覽代碼

Z991239-6312 #comment 高拍仪日志改造

80374374 2 月之前
父節點
當前提交
43ff7b342d

+ 2 - 20
Module/mod_HSPScanner/HSPSCanner_UserErrorCode.h

@@ -17,38 +17,20 @@
 #define HSPScanner_UserErrorCode_READ_IMAGE_FILE_FAILED			0x21700201
 #define HSPScanner_UserErrorCode_LOAD_DLLFILE_NOTEIXT			0x21700202
 #define HSPScanner_UserErrorCode_LOAD_DLLFILE_FAILED			0x21700203
-#define HSPScanner_UserErrorCode_DuplicateCancelPreview			0x21700204
-#define HSPScanner_UserErrorCode_GET_RDC_ADDR_FAILED			0x21700205
+#define HSPScanner_UserErrorCode_READ_IMAGE_FILE_ZERO			0x21700204
 #define HSPScanner_UserErrorCode_CLEAR_RESOURCE_FAILED			0x21700206
-#define HSPScanner_UserErrorCode_UPLOAD_VENDORINFO				0x21700207
-#define HSPScanner_UserErrorCode_ROOT_INFO						0x21700208
+//
 #define HSPScanner_UserErrorCode_FSM_INVALID						0x21700209
-#define HSPScanner_UserErrorCode_DLLNAME_FAILED						0x2170020A
-#define HSPScanner_UserErrorCode_DLLNAME_NOCFG						0x2170020B
 #define HSPScanner_UserErrorCode_DEVICE_OFFLINE						0x2170020C
 #define HSPScanner_UserErrorCode_NOT_SUPPORT					0x2170020E
-#define HSPScanner_UserErrorCode_REAL_ROOT_CONFIG	0x2170020F
 
-#define LOG_DEBUG_HSPS_CRITICAL_OPERATION_START			0x21700210
-#define LOG_DEBUG_HSPS_CRITICAL_OPERATION_SCANIMAGE_START  0x21700211
 #define LOG_DEBUG_HSPS_CRITICAL_OPERATION_SCANIMAGEEX_START  0x21700212
 
-#define LOG_WARN_HSPS_READ_CONFIG_FILE_FAILED						0x21700213 //图片大小限制参数读取失败
-#define LOG_WARN_HSPS_OPENCV_READ_FAILED							0x21700214 //opencv读图片失败
-#define LOG_WARN_HSPS_OPENCV_WRITE_FAILED							0x21700215 //opencv写图片失败
 #define LOG_WARN_HSPS_RESIZE_IMAGE_FILE_FAILED					0x21700216 //图片缩小失败
-#define LOG_WARN_HSPS_RESIZE_IMAGEEX_FILE_FAILED				0x21700217 //ex图片缩小失败
-#define LOG_WARN_HSPS_RESIZE_FUNCTION_SUCCEED					0x21700218 //resize函数执行成功
 
-#define LOG_WARN_HSPS_VENDORDLL_KEBA_MATCHED	    0x2170021A //符合切换科堡适配器的告警
 #define LOG_WARN_HSPS_INVALID_OPERATION	    0x2170021B
 #define LOG_WARN_HSPS_OPENING_NOW 0x2170021C
 
-#define LOG_DEBUG_HSPS_CRITICAL_OPERATION_SCANIMAGE_SUCC   0x21700220
-#define LOG_DEBUG_HSPS_CRITICAL_OPERATION_SCANIMAGE_FAILED 0x21700221
-#define LOG_DEBUG_HSPS_CRITICAL_OPERATION_SCANIMAGEEX_SUCC   0x21700223
-#define LOG_DEBUG_HSPS_CRITICAL_OPERATION_SCANIMAGEEX_FAILED 0x21700224
-
 #define HSPScanner_UserErrorCode_FindFile_in_DepBak 0x21700225
 
 #define HSPScanner_UserErrorCode_SetParam_Color 0x21700226

+ 103 - 89
Module/mod_HSPScanner/HSPScannerFSM.cpp

@@ -184,7 +184,6 @@ ErrorCodeEnum CHSPScannerFSM::OnInit()
 	}
 	else {
 		FulfillAdapterInfoFrom(pEntity->vendorLibInfo);
-		LogWarn(Severity_Low, Error_Unexpect, HSPScanner_UserErrorCode_ROOT_INFO, (LPCTSTR)m_adapterInfo.adapterFilePath);
 		PostEventLIFO(new FSMEvent(USER_EVT_INIT));
 	}
 	return Error_Succeed;
@@ -212,7 +211,7 @@ void CHSPScannerFSM::s0_Idle_on_exit()
 
 unsigned int CHSPScannerFSM::s0_Idle_on_event(FSMEvent* e)
 {
-	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s0_Idle_on_event: %s(%d), %d.", EvtTypeToString(e->iEvt), e->iEvt, e->param1);
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s0_Idle_on_event: %s, %d.", EvtTypeToString(e->iEvt), e->param1);
 	unsigned int uRet = 0;
 	switch (e->iEvt)
 	{
@@ -301,6 +300,15 @@ unsigned int CHSPScannerFSM::s0_Idle_on_event(FSMEvent* e)
 			}
 		}
 		break;
+	/** 根据日志查看在空闲状态偶尔会收到取消预览的请求,兼容处理之(参照JS改造) [Gifur@2025613]*/
+	case USER_EVT_STOPPREVIEW:
+		{
+			StopPreviewTask* pTask = new StopPreviewTask(this);
+			StopPreviewEvent* pEvt = dynamic_cast<StopPreviewEvent*>(e);
+			pEvt->m_ctx->Answer(Error_Succeed);
+		}
+		e->SetHandled();
+		break;
 		// Add after ST !!! --Josephus at 12:37:15 2016129
 	case USER_EVT_SETWINPOS:
 		{
@@ -347,7 +355,6 @@ unsigned int CHSPScannerFSM::s0_Idle_on_event(FSMEvent* e)
 		break;
 	case USER_EVT_INIT:
 		e->SetHandled();
-		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("To open device.");
 		break;
 	case EVT_MAINPAGE_DISPLAY:
 	case USER_EVT_EXIT:
@@ -358,12 +365,8 @@ unsigned int CHSPScannerFSM::s0_Idle_on_event(FSMEvent* e)
 	break;
 	case USER_EVT_GOTOHELL:
 		e->SetHandled();
-		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("HSPScaner init failed!");
 		break;
 	default:
-		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("%s::UnHandle event ! %s", __FUNCTION__, EvtTypeToString(e->iEvt));
-		}
 		break;
 	}
 	return uRet;
@@ -381,7 +384,7 @@ void CHSPScannerFSM::s1_Preview_on_exit()
 
 unsigned int CHSPScannerFSM::s1_Preview_on_event(FSMEvent* e)
 {
-	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s1_Preview_on_event: %s(%d), %d.", EvtTypeToString(e->iEvt), e->iEvt, e->param1);
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s1_Preview_on_event: %s, %d.", EvtTypeToString(e->iEvt), e->param1);
 	unsigned int uRet = 0;
 	switch (e->iEvt)
 	{
@@ -602,9 +605,8 @@ unsigned int CHSPScannerFSM::s1_Preview_on_event(FSMEvent* e)
 		{
 			e->SetHandled();
 			if (m_dupFlag4ExitCancel) {
-				LogWarn(Severity_Low, Error_Debug, HSPScanner_UserErrorCode_DuplicateCancelPreview, CSimpleStringA::Format("%s::recv %s while CancelPreviewing", __FUNCTION__, EvtTypeToString(e->iEvt)));
+				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("%s::recv %s while CancelPreviewing", __FUNCTION__, EvtTypeToString(e->iEvt));
 				uRet = 1;
-				//TODO: need to settimer ??  [Gifur@202565]
 			}
 		}
 		break;
@@ -659,18 +661,20 @@ unsigned int CHSPScannerFSM::s2_on_event(FSMEvent* e)
 
 void CHSPScannerFSM::s3_Failed_on_entry()
 {
-	DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Enter s3_Failed");
 	if (GetDevInitFlag()) {
 		SetLastUserCode(HSPScanner_UserErrorCode_FSM_INVALID);
 		const int nStatus = IsDevConnected();
 		if (nStatus == 0) {
 			PostEventFIFO(new FSMEvent(USER_EVT_DISCONNECT));
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Enter s3_Failed by Disconnected");
 		}
 		else if (nStatus == 1) {
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Enter s3_Failed by Others' reason");
 			ScheduleTimer(RESET_TIMER_ID, MILLISECOND_TO_RESET / 6);
 		}
 	}
 	else {
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Enter s3_Failed by Device open failed");
 		SetDevState(DEVICE_STATUS_FAULT);
 	}
 }
@@ -687,7 +691,7 @@ void CHSPScannerFSM::s3_Failed_on_exit()
 
 unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 {
-	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s3_Failed_on_event: %s(%d), %d.", EvtTypeToString(e->iEvt), e->iEvt, e->param1);
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s3_Failed_on_event: %s, %d.", EvtTypeToString(e->iEvt), e->param1);
 	unsigned int uRet = 0;
 	switch(e->iEvt)
 	{
@@ -695,7 +699,9 @@ unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 	case USER_EVT_STARTPREVIEW_JS:
 	{
 		JS::StartPreviewEvent* pEvt = dynamic_cast<JS::StartPreviewEvent*>(e);
-		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_StartPreviewJS).setResultCode(MapCode2RTAString(GetLastUserCode()))(GetDevInitFlag()? "高拍仪模块出现异常" : "高拍仪模块未打开");
+		if (GetDevInitFlag()) {
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_StartPreviewJS).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪模块出现异常");
+		}
 		pEvt->m_ctx->Answer(Error_DevNotAvailable, GetLastUserCode());
 		e->SetHandled();
 	}
@@ -703,7 +709,9 @@ unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 	case USER_EVT_CANCELPREVIEW_JS:
 	{
 		JS::CancelPreviewEvent* pEvt = dynamic_cast<JS::CancelPreviewEvent*>(e);
-		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_CancelPreviewJS).setResultCode(MapCode2RTAString(GetLastUserCode()))(GetDevInitFlag() ? "高拍仪模块出现异常" : "高拍仪模块未打开");
+		if (GetDevInitFlag()) {
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_CancelPreviewJS).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪模块出现异常");
+		}
 		pEvt->m_ctx->Answer(Error_DevNotAvailable, GetLastUserCode());
 		e->SetHandled();
 	}
@@ -711,7 +719,9 @@ unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 	case USER_EVT_SCANIMAGE_JS:
 	{
 		JS::ScanImageEvent* pEvt = dynamic_cast<JS::ScanImageEvent*>(e);
-		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImageJS).setResultCode(MapCode2RTAString(GetLastUserCode()))(GetDevInitFlag() ? "高拍仪模块出现异常" : "高拍仪模块未打开");
+		if (GetDevInitFlag()) {
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImageJS).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪模块出现异常");
+		}
 		pEvt->m_ctx->Answer(Error_DevNotAvailable, GetLastUserCode());
 		e->SetHandled();
 	}
@@ -726,7 +736,6 @@ unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 			e->SetHandled();
 		}
 		else {
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_SetParamJS).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪模块未打开");
 			pEvt->m_ctx->Answer(Error_DevNotAvailable, GetLastUserCode());
 			e->SetHandled();
 		}
@@ -737,7 +746,6 @@ unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 		{
 			StartPreviewEvent* pEvt = dynamic_cast<StartPreviewEvent*>(e);
 			if (!GetDevInitFlag()) {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_StartPreview).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪模块未打开");
 				pEvt->m_ctx->Answer(Error_DevNotAvailable, GetLastUserCode());
 			} else {
 				StartPreviewTask* pTask = new StartPreviewTask(this);
@@ -773,17 +781,16 @@ unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_CancelPreview).setAPI("DevAdapter::SetParam").setCostTime(ullEnd - ullStart)("HSPS_VIEW_HIDE");
 					} else {
 						//RTA2N0Q
-						SetErrorAndLog(erroCode, MEC_DEVAPI_HSPSCANNER_SetParam, "DevAdapter::SetParam", __FUNCTION__, IsInBusiness(), ullEnd - ullStart, HSPScannerService_LogCode_CancelPreview, CombineJsonContext("HSPS_VIEW_HIDE failed"));
+						SetErrorAndLog(erroCode, MEC_DEVAPI_HSPSCANNER_SetParam, "DevAdapter::SetParam", __FUNCTION__, IsInBusiness(), ullEnd - ullStart, HSPScannerService_LogCode_CancelPreview, CombineJsonContext("HSPS_VIEW_HIDE"));
 						SetLastUserCode(GetAlarmDEC());
 					}
-					pEvt->m_ctx->Answer(TransECWithRepeat(erroCode));
+					pEvt->m_ctx->Answer(erroCode);
 					FSMEvent* timerEvent = new FSMEvent(EVT_TIMER);
 					timerEvent->param1 = RESET_TIMER_ID;
 					PostEventFIFO(timerEvent);
 				}
 			} else {
 				StopPreviewEvent* pEvt = dynamic_cast<StopPreviewEvent*>(e);
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_CancelPreview).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪设备未打开");
 				pEvt->m_ctx->Answer(Error_DevNotAvailable, GetLastUserCode());
 			} 
 		}
@@ -914,7 +921,6 @@ unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 		{
 			GetDevStatusEvent* pEvt = dynamic_cast<GetDevStatusEvent*>(e);
 			if (!GetDevInitFlag()) {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_GetDevStatus).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪设备未打开");
 				pEvt->m_ctx->Answer(Error_DevNotAvailable, GetLastUserCode());
 			} else {
 				GetDevStatusTask* pTask = new GetDevStatusTask(this);
@@ -928,7 +934,6 @@ unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 		{
 			GetDevInfoEvent* pEvt = dynamic_cast<GetDevInfoEvent*>(e);
 			if (!GetDevInitFlag()) {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_GetDevInfo).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪设备未打开");
 				pEvt->m_ctx->Answer(Error_DevNotAvailable, GetLastUserCode());
 				e->SetHandled();
 			}
@@ -944,7 +949,6 @@ unsigned int CHSPScannerFSM::s3_Failed_on_event(FSMEvent* e)
 	{
 		SetWinPosEvent* pEvt = dynamic_cast<SetWinPosEvent*>(e);
         if (!GetDevInitFlag()) {
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_SetWinPos).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪设备未打开");
             pEvt->m_ctx->Answer(Error_DevNotAvailable, GetLastUserCode());
 			e->SetHandled();
 		}
@@ -1033,8 +1037,9 @@ unsigned int CHSPScannerFSM::s4_ScanImage_on_event(FSMEvent* e)
 void CHSPScannerFSM::s5_DeviceOff_on_entry()
 {
 	SetDevState(DEVICE_STATUS_CONNECTING);
-	LogWarn(Severity_Low, Error_DevNotAvailable, HSPScanner_UserErrorCode_DEVICE_OFFLINE, "高拍仪断开连接!");
 	SetLastUserCode(HSPScanner_UserErrorCode_DEVICE_OFFLINE);
+	DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode(MapCode2RTAString(GetLastUserCode()))("高拍仪断开连接!");
+	m_ullTS4Disconnect = SP::Module::Comm::RVCGetTickCount();
 	ScheduleTimer(CHECK_CONNECT_TIMER_ID, MILLISECOND_TO_CHECK_CONNECT);
 }
 
@@ -1047,7 +1052,7 @@ void CHSPScannerFSM::s5_DeviceOff_on_exit()
 
 unsigned int CHSPScannerFSM::s5_DeviceOff_on_event(FSMEvent* e)
 {
-	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s5_on_event: %s(%d), %d.", EvtTypeToString(e->iEvt), e->iEvt, e->param1);
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s5_on_event: %s, %d.", EvtTypeToString(e->iEvt), e->param1);
 	unsigned int uRet = 0;
 	switch(e->iEvt)
 	{
@@ -1097,13 +1102,18 @@ unsigned int CHSPScannerFSM::s5_DeviceOff_on_event(FSMEvent* e)
 				if (status.isConnected == 0) {
 					ScheduleTimer(CHECK_CONNECT_TIMER_ID, MILLISECOND_TO_CHECK_CONNECT);
 				}
-				else if (status.inShow == 1 && status.inPreview == 1) {
-					//回到预览状态
-					uRet = 2;
-				} else if(status.inShow == 0 && status.inPreview == 1) {
-					uRet = 3;
-				} else {
-					uRet = 1;
+				else {
+					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setCostTime(SP::Module::Comm::RVCGetTickCount() - m_ullTS4Disconnect)("高拍仪恢复连接");
+					if (status.inShow == 1 && status.inPreview == 1) {
+						//回到预览状态
+						uRet = 2;
+					}
+					else if (status.inShow == 0 && status.inPreview == 1) {
+						uRet = 3;
+					}
+					else {
+						uRet = 1;
+					}
 				}
 			} else {
 				//RTA2N09
@@ -1154,7 +1164,7 @@ void CHSPScannerFSM::s6_HidePreview_on_exit()
 
 unsigned int CHSPScannerFSM::s6_HidePreview_on_event(FSMEvent* e)
 {
-	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s6_HidePreview_on_event: %s(%d), %d.", EvtTypeToString(e->iEvt), e->iEvt, e->param1);
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("s6_HidePreview_on_event: %s, %d.", EvtTypeToString(e->iEvt), e->param1);
 	unsigned int uRet = 0;
 	switch(e->iEvt)
 	{
@@ -1183,7 +1193,7 @@ unsigned int CHSPScannerFSM::s6_HidePreview_on_event(FSMEvent* e)
 	{
 		JS::CancelPreviewEvent* pEvt = dynamic_cast<JS::CancelPreviewEvent*>(e);
 		if (pEvt->m_ctx->Req.hide) {
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_CancelPreviewJS)("current state is already hide preview");
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_CancelPreviewJS)("current state is already hide preview");
 			pEvt->m_ctx->Answer(Error_Succeed);
 		}
 		else {
@@ -1331,9 +1341,8 @@ unsigned int CHSPScannerFSM::s6_HidePreview_on_event(FSMEvent* e)
 		{
 			e->SetHandled();
 			if (m_dupFlag4ExitCancel) {
-				LogWarn(Severity_Low, Error_Debug, HSPScanner_UserErrorCode_DuplicateCancelPreview, CSimpleStringA::Format("%s::recv %s while CancelPreviewing", __FUNCTION__, EvtTypeToString(e->iEvt)));
+				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("%s::recv %s while CancelPreviewing", __FUNCTION__, EvtTypeToString(e->iEvt));
 				uRet = 1;
-				//TODO: need to settimer ??  [Gifur@202565]
 			}
 		}
 		break;
@@ -1580,7 +1589,7 @@ int CHSPScannerFSM::StartPreview(SpReqAnsContext<HSPScannerService_StartPreview_
 		/** 无论如何都打开一次灯,所以这里应该是有所冗余的  [Gifur@2025325]*/
 		ToSwithLight();
 	}
-	ctx->Answer(TransECWithRepeat(erroCode), GetLastUserCode());
+	ctx->Answer(erroCode, GetLastUserCode());
 	return nRes;
 }
 
@@ -1625,18 +1634,19 @@ int CHSPScannerFSM::StopPreview(SpReqAnsContext<HSPScannerService_CancelPreview_
 		/** 取消预览时如果仅仅是隐藏也会关闭灯  [Gifur@2025325]*/
 		ToSwithLight(false);
 	}
-	ctx->Answer(TransECWithRepeat(erroCode), GetLastUserCode());
+	ctx->Answer(erroCode, GetLastUserCode());
 	return nRes;
 }
 
-bool CHSPScannerFSM::ResizeImage(const CSimpleStringA& fileName, int kbSize)
+bool CHSPScannerFSM::ResizeImage(const CSimpleStringA& fileName, int kbSize, long& originSize)
 {
 	double rate; //limit rate
 	int width;
 	int height;
-	bool success = TRUE;
 
+	originSize = 0;
 	const int imageSize = kbSize * 1024;
+	if (imageSize == 0) return TRUE;
 
 	FILE* fHandle = fopen(fileName.GetData(), "rb");
 	if (!fHandle) {
@@ -1647,6 +1657,7 @@ bool CHSPScannerFSM::ResizeImage(const CSimpleStringA& fileName, int kbSize)
 	fseek(fHandle, 0, SEEK_END);
 	long fileSize = ftell(fHandle);
 	fclose(fHandle);
+	originSize = fileSize;
 	if (fileSize <= (imageSize)) {
 		return TRUE;
 	}
@@ -1654,12 +1665,9 @@ bool CHSPScannerFSM::ResizeImage(const CSimpleStringA& fileName, int kbSize)
     m_pEntity->GetFunction()->GetPath("Temp", backUpPath);
 	backUpFile = backUpPath + SPLIT_SLASH_STR + "backupHSPSCannerImage";
 	DeleteFileIfExisted(backUpFile);
-#ifndef _WIN32
 	fileutil_copy_file((LPCTSTR)backUpFile, (LPCTSTR)fileName);
-#else
-	CopyFileA(fileName, backUpFile, FALSE);
-#endif //NOT _WIN32
 
+	bool success = TRUE;
 	while (fileSize > imageSize)
 	{
 		rate = (double)fileSize / imageSize; 
@@ -1688,11 +1696,7 @@ bool CHSPScannerFSM::ResizeImage(const CSimpleStringA& fileName, int kbSize)
 	}
 
 	if (!success) {
-#ifndef _WIN32
-		///*TODO(80374374@3/3/2023):  */
 		fileutil_copy_file((LPCTSTR)fileName, (LPCTSTR)backUpFile); //recover original img
-#endif //NOT _WIN32
-		CopyFileA(backUpFile, fileName, FALSE);
 		DeleteFileIfExisted(backUpFile);
 		return FALSE;
 	}
@@ -1711,17 +1715,16 @@ int CHSPScannerFSM::ScanImage(SpReqAnsContext<HSPScannerService_ScanImage_Req,
 	BOOL bRet = DelAndGetNewFileName(csImageFile);
 	if (!bRet) {
 		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImage).setResultCode(MapCode2RTAString(HSPScanner_UserErrorCode_CLEAR_RESOURCE_FAILED))("Cleare previous image failed before ScanImage");
-		ctx->Answer(TransECWithRepeat(Error_Resource), HSPScanner_UserErrorCode_CLEAR_RESOURCE_FAILED);
+		ctx->Answer(Error_Resource, HSPScanner_UserErrorCode_CLEAR_RESOURCE_FAILED);
 		return 1;
 	}
-	///*TODO:  (80374374@2/20/2024)*/
+	long pictureSize(0), resizeSize(0);
 	ULONGLONG ullStart = SP::Module::Comm::RVCGetTickCount();
 	erroCode = m_hDevHelper->ScanImage((LPCTSTR)csImageFile);
 	ULONGLONG ullEnd = SP::Module::Comm::RVCGetTickCount();
 	if (ISSUCCEEDED(erroCode)) {
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ScanImage").setCostTime(ullEnd - ullStart)("ScanImage succ");
-		///*TODO:  (80374374@2/20/2024)*/
-		if (!ResizeImage(csImageFile, m_dwMaxImageSize)) {
+		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_USER).setAPI("DevAdapter::ScanImage").setCostTime(ullEnd - ullStart)();
+		if (!ResizeImage(csImageFile, m_dwMaxImageSize, pictureSize)) {
 			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setResultCode(MapCode2RTAString(LOG_WARN_HSPS_RESIZE_IMAGE_FILE_FAILED)).setAPI(__FUNCTION__)("HSPScanner resize image failed");
 		}
 		ctx->Ans.filePath = csImageFile;
@@ -1732,12 +1735,14 @@ int CHSPScannerFSM::ScanImage(SpReqAnsContext<HSPScannerService_ScanImage_Req,
 			fseek(fHandle, 0, SEEK_END);
 			long fileSize = ftell(fHandle);
 			if (fileSize <= 0) {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImage).setResultCode(MapCode2RTAString(tmpCode))("ftell(%s) error after invoking scanimage: %ld.", (LPCTSTR)csImageFile, fileSize);
+				LogWarn(Severity_Middle, Error_NotExist, HSPScanner_UserErrorCode_READ_IMAGE_FILE_ZERO, CSimpleStringA::Format("ftell(%s) error after invoking scanimage: %ld.", (LPCTSTR)csImageFile, fileSize));
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImage).setResultCode(MapCode2RTAString(HSPScanner_UserErrorCode_READ_IMAGE_FILE_ZERO))("ftell(%s) error after invoking scanimage: %ld.", (LPCTSTR)csImageFile, fileSize);
 				erroCode = Error_NotExist;
 				fclose(fHandle);
 				nRes = 4;
 			} else {
-				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("picture size:%ld", fileSize);
+				resizeSize = fileSize;
+				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("picture size:%ld", resizeSize);
 				cbData.Alloc(fileSize);
 				fseek(fHandle, 0, SEEK_SET);
 				fread(cbData.m_pData, 1, fileSize, fHandle);
@@ -1752,28 +1757,28 @@ int CHSPScannerFSM::ScanImage(SpReqAnsContext<HSPScannerService_ScanImage_Req,
 			nRes = 4;
 		}
 		if (ISSUCCEEDED(erroCode)) {
+			
 			// Additional ChangeTo Hide --Josephus at 11:32:29 2016/11/22
 			if (true/*TODO: */) {
 				ullStart = SP::Module::Comm::RVCGetTickCount();
 				ErrorCodeEnum eHide = m_hDevHelper->SetParam(HSPS_MODEL_VIEW, HSPS_VIEW_HIDE);
 				ullEnd = SP::Module::Comm::RVCGetTickCount();
 				if (ISSUCCEEDED(eHide)) {
-					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::SetParam").setCostTime(ullEnd - ullStart)("HSPS_MODEL_VIEW::HSPS_VIEW_HIDE");
+					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::SetParam").setCostTime(ullEnd - ullStart)("HSPS_VIEW_HIDE");
 					nRes = 6;
 				} else {
 					//RTA2N0Q
-					SetErrorAndLog(eHide, MEC_DEVAPI_HSPSCANNER_SetParam, "DevAdapter::SetParam", __FUNCTION__, IsInBusiness(), ullEnd - ullStart, HSPScannerService_LogCode_ScanImage, CombineJsonContext("HSPS_MODEL_VIEW::HSPS_VIEW_HIDE"));
+					SetErrorAndLog(eHide, MEC_DEVAPI_HSPSCANNER_SetParam, "DevAdapter::SetParam", __FUNCTION__, IsInBusiness(), ullEnd - ullStart, "", CombineJsonContext("HSPS_VIEW_HIDE"));
 				}
 				/** 拍照成功虽然隐藏了但没有关闭灯  [Gifur@2025325]*/
 			}
-
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImage).setAPI(__FUNCTION__)("ScanImage succ");
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImage).setAPI(__FUNCTION__)("ScanImage succ, originalPicSize:%ld, resizePicSize:%ld", pictureSize, resizeSize);
 		}
-		ctx->Answer(TransECWithRepeat(erroCode), GetLastUserCode());
+		ctx->Answer(erroCode, GetLastUserCode());
 	} else {
 		SetErrorAndLog(erroCode, MEC_DEVAPI_HSPSCANNER_ScanImage, "DevAdapter::ScanImage", __FUNCTION__, IsInBusiness(), ullEnd - ullStart, HSPScannerService_LogCode_ScanImage);
 		SetLastUserCode(GetAlarmDEC());
-		ctx->Answer(TransECWithRepeat(erroCode), GetLastUserCode());
+		ctx->Answer(erroCode, GetLastUserCode());
 		nRes = 2;
 	}
 	ClearPictureFileSure(1);
@@ -1790,7 +1795,7 @@ int CHSPScannerFSM::ScanImageEx(SpReqAnsContext<HSPScannerService_ScanImageEx_Re
 	BOOL bRet = DelAndGetNewFileName(csImageFile);
 	if (!bRet) {
 		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setResultCode(MapCode2RTAString(HSPScanner_UserErrorCode_CLEAR_RESOURCE_FAILED))("Cleare previous image failed before ScanImageEx");
-		ctx->Answer(TransECWithRepeat(Error_Resource), HSPScanner_UserErrorCode_CLEAR_RESOURCE_FAILED);
+		ctx->Answer(Error_Resource, HSPScanner_UserErrorCode_CLEAR_RESOURCE_FAILED);
 		return 1;
 	}
 
@@ -1818,11 +1823,12 @@ int CHSPScannerFSM::ScanImageEx(SpReqAnsContext<HSPScannerService_ScanImageEx_Re
 		erroCode = m_hDevHelper->ScanImageEx(pBtImage, len, (LPCTSTR)csImageFile);
 		ullEnd = SP::Module::Comm::RVCGetTickCount();
 		if (erroCode == Error_Succeed) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::ScanImageEx").setCostTime(ullEnd - ullStart)("ScanImageEx suc %d, %d.", len, strlen((const char*)pBtImage));
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::ScanImageEx").setCostTime(ullEnd - ullStart)("len: %d, btLen:%d.", len, strlen((const char*)pBtImage));
 		}
 	}
 	if (ISSUCCEEDED(erroCode)) {
-		if (ResizeImage(csImageFile, m_dwMaxImageSize)) {
+		long pictureSize(0);
+		if (ResizeImage(csImageFile, m_dwMaxImageSize, pictureSize)) {
 			FILE* fHandle = fopen(csImageFile.GetData(), "rb");
 			fseek(fHandle, 0, SEEK_END);
 			len = ftell(fHandle);
@@ -1850,19 +1856,19 @@ int CHSPScannerFSM::ScanImageEx(SpReqAnsContext<HSPScannerService_ScanImageEx_Re
 			ErrorCodeEnum eHide = m_hDevHelper->SetParam(HSPS_MODEL_VIEW, HSPS_VIEW_HIDE);
 			ullEnd = SP::Module::Comm::RVCGetTickCount();
 			if (ISSUCCEEDED(eHide)) {
-				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::SetParam").setCostTime(ullEnd - ullStart)("HSPS_MODEL_VIEW::HSPS_VIEW_HIDE");
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::SetParam").setCostTime(ullEnd - ullStart)("HSPS_VIEW_HIDE");
 				nRes = 6;
 			} else {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI("DevAdapter::SetParam").setCostTime(ullEnd - ullStart).setResultCode(MapCode2RTAString(HSPScanner_UserErrorCode_SetParam_Hide))("HSPS_MODEL_VIEW::HSPS_VIEW_HIDE failed: %s", SpStrError(eHide));
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI("DevAdapter::SetParam").setCostTime(ullEnd - ullStart).setResultCode(MapCode2RTAString(HSPScanner_UserErrorCode_SetParam_Hide))("HSPS_VIEW_HIDE failed: %s", SpStrError(eHide));
 			}
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI(__FUNCTION__).setLogCode(HSPScannerService_LogCode_ScanImageEx)("ScanImageEx ctx: %s, %d.", (LPCTSTR)ctx->Ans.filePath, ctx->Ans.imageData.m_iLength);
 		}
-		ctx->Answer(TransECWithRepeat(erroCode));
+		ctx->Answer(erroCode);
 	} else {
 		//RTA2N06
 		SetErrorAndLog(erroCode, MEC_DEVAPI_HSPSCANNER_ScanImageEx, "DevAdapter::ScanImageEx", __FUNCTION__, IsInBusiness(), ullEnd - ullStart, HSPScannerService_LogCode_ScanImageEx);
 		SetLastUserCode(GetAlarmDEC());
-		ctx->Answer(TransECWithRepeat(erroCode), GetLastUserCode());
+		ctx->Answer(erroCode, GetLastUserCode());
 		nRes = 2;
 		}
 
@@ -1888,7 +1894,7 @@ int CHSPScannerFSM::ShowProperty(SpReqAnsContext<HSPScannerService_ShowProperty_
 	} else {
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ShowProperty).setAPI("DevAdapter::SetViewPos").setCostTime(ullEnd - ullStart)();
 	}
-	ctx->Answer(TransECWithRepeat(erroCode));
+	ctx->Answer(erroCode);
 	
 	DWORD dwStart = GetTickCount();
 	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Start to show Property dialog...");
@@ -1945,7 +1951,7 @@ int CHSPScannerFSM::SetWinPos(SpReqAnsContext<HSPScannerService_SetWinPos_Req,
 		erroCode = m_hDevHelper->SetViewPos(ctx->Req.pointX, ctx->Req.pointY, ctx->Req.nWidth);
 		const ULONGLONG ullEnd = SP::Module::Comm::RVCGetTickCount();
 		if (ISSUCCEEDED(erroCode)) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::SetViewPos").setCostTime(ullEnd - ullStart)("x: %d, y: %d, w: %d", ctx->Req.pointX, ctx->Req.pointY, ctx->Req.nWidth);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::SetViewPos").setLogCode(HSPScannerService_LogCode_SetWinPos).setCostTime(ullEnd - ullStart)("x: %d, y: %d, w: %d", ctx->Req.pointX, ctx->Req.pointY, ctx->Req.nWidth);
 			m_nRecX = ctx->Req.pointX;
 			m_nRecY = ctx->Req.pointY;
 			m_nRecW = ctx->Req.nWidth;
@@ -1960,7 +1966,7 @@ int CHSPScannerFSM::SetWinPos(SpReqAnsContext<HSPScannerService_SetWinPos_Req,
 		erroCode = m_hDevHelper->SetParam(HSPS_MODEL_VIEW, value);
 		const ULONGLONG ullEnd = SP::Module::Comm::RVCGetTickCount();
 		if (ISSUCCEEDED(erroCode)) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::SetParam").setCostTime(ullEnd - ullStart)("%d", value);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::SetParam").setLogCode(HSPScannerService_LogCode_SetWinPos).setCostTime(ullEnd - ullStart)("%d", value);
 		} else {
 			//RTA2N02
 			SetErrorAndLog(erroCode, MEC_DEVAPI_HSPSCANNER_SetParam, "DevAdapter::SetParam", __FUNCTION__, IsInBusiness(), ullEnd - ullStart, HSPScannerService_LogCode_SetWinPos);
@@ -1968,15 +1974,12 @@ int CHSPScannerFSM::SetWinPos(SpReqAnsContext<HSPScannerService_SetWinPos_Req,
 			nRes = 1;
 		}
 	}
-	if (ISSUCCEEDED(erroCode)) {
-		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_SetWinPos)("SetWinPos succ.");
-	}
-	else {
+	if (!ISSUCCEEDED(erroCode)) {
 		CSimpleStringA tmpRTA(true), tmpDesc(true);
 		if (GetEntityBase()->GetFunction()->GetVTMErrMsg(GetLastUserCode(), tmpDesc, tmpRTA) == Error_Succeed)
 			DbgToBeidou(ctx->link, "SetWinPos").setReturnCode(tmpRTA)();
 	}
-	ctx->Answer(TransECWithRepeat(erroCode), GetLastUserCode());
+	ctx->Answer(erroCode, GetLastUserCode());
 	return nRes;
 }
 
@@ -1995,7 +1998,7 @@ int CHSPScannerFSM::GetDevStatus(SpReqAnsContext<HSPScannerService_GetDevStatus_
 	else {
 		nRes = 1;
 	}
-	ctx->Answer(TransECWithRepeat(erroCode), GetLastUserCode());
+	ctx->Answer(erroCode, GetLastUserCode());
 	return nRes;
 }
 
@@ -2175,7 +2178,7 @@ void CHSPScannerFSM::SelfTest(EntityTestEnum eTestType,
 
 void CHSPScannerFSM::OnStateTrans(int iSrcState, int iDstState) 
 {
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("trans from %s to %s", GetStateName(iSrcState), GetStateName(iDstState));
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("trans from %s to %s", GetStateName(iSrcState), GetStateName(iDstState));
 	m_nSrcState = iSrcState;
 }
 
@@ -2265,8 +2268,9 @@ int CHSPScannerFSM::ScanImageJS(SpReqAnsContext<HSPScannerService_ScanImageJS_Re
 	erroCode = m_hDevHelper->ScanImage((LPCTSTR)csImageFile);
 	ULONGLONG ullEnd = SP::Module::Comm::RVCGetTickCount();
 	if (ISSUCCEEDED(erroCode)) {
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ScanImage").setCostTime(ullEnd - ullStart)("ScanImage succ");
-		if (ctx->Req.compress > 0 && !ResizeImage(csImageFile, ctx->Req.compress/*KB*/)) {
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::ScanImage").setCostTime(ullEnd - ullStart)();
+		long pictureSize(0), resizeSize(0);
+		if (ctx->Req.compress > 0 && !ResizeImage(csImageFile, ctx->Req.compress/*KB*/, pictureSize)) {
 			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setResultCode(MapCode2RTAString(LOG_WARN_HSPS_RESIZE_IMAGE_FILE_FAILED)).setAPI(__FUNCTION__).setLogCode(HSPScannerService_LogCode_ScanImageJS).setCostTime(ullEnd - ullStart)("HSPScanner resize image failed");
 			SetLastUserCode(LOG_WARN_HSPS_RESIZE_IMAGE_FILE_FAILED);
 			erroCode = Error_Unexpect;
@@ -2274,13 +2278,16 @@ int CHSPScannerFSM::ScanImageJS(SpReqAnsContext<HSPScannerService_ScanImageJS_Re
 		}
 		else {
 			CSimpleStringA tmpMsg(true);
+			DWORD tmpCode(0);
 			CBlob& cbData = ctx->Ans.imageData;
 			FILE* fHandle = fopen(csImageFile, "rb");
 			if (fHandle) {
 				fseek(fHandle, 0, SEEK_END);
 				long fileSize = ftell(fHandle);
+				resizeSize = fileSize;
 				if (fileSize <= 0) {
 					tmpMsg = CSimpleStringA::Format("ftell(%s) error after invoking scanimage: %ld.", (LPCTSTR)csImageFile, fileSize);
+					tmpCode = HSPScanner_UserErrorCode_READ_IMAGE_FILE_ZERO;
 				}
 				else {
 					DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("picture size:%ld", fileSize);
@@ -2292,20 +2299,19 @@ int CHSPScannerFSM::ScanImageJS(SpReqAnsContext<HSPScannerService_ScanImageJS_Re
 			}
 			else {
 				tmpMsg = CSimpleStringA::Format("fopen(%s) error after invoking scanimage: %d.", (LPCTSTR)csImageFile, errno);
+				tmpCode = HSPScanner_UserErrorCode_READ_IMAGE_FILE_FAILED;
 			}
 
-			if (tmpMsg.IsNullOrEmpty()) {
-				//Succ
+			if (!tmpCode) {//Succ
 				if (ctx->Req.hide && FAILURED(SetPreviewProperty(JS::PreviewSettings(false), HSPScannerService_LogCode_ScanImageJS))) {
 					erroCode = Error_Unexpect;
 					ret = 1;
 				}
 				else {
-					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImageJS).setAPI(__FUNCTION__)("ScanImage succ");
+					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImageJS).setAPI(__FUNCTION__)("ScanImage succ, originalPicSize:%ld, resizePicSize:%ld", pictureSize, resizeSize);
 				}
 			}
 			else {
-				const DWORD tmpCode(HSPScanner_UserErrorCode_READ_IMAGE_FILE_FAILED);
 				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImageJS).setResultCode(MapCode2RTAString(tmpCode))(tmpMsg.GetData());
 				SetLastUserCode(tmpCode);
 				erroCode = Error_Unexpect;
@@ -2489,7 +2495,7 @@ ErrorCodeEnum CHSPScannerFSM::DeleteFileIfExisted(LPCTSTR fileName)
 		}
 		else {
 			LogWarn(Severity_High, Error_Unexpect, HSPScanner_UserErrorCode_CLEAR_RESOURCE_FAILED, CSimpleStringA::Format(
-				"DeleteFile(%s) failed LastError(%d) at ResizeImage proc", fileName, GetLastError()));
+				"DeleteFile(%s) failed LastError(%d)", fileName, GetLastError()));
 			return Error_Unexpect;
 		}
 	}
@@ -2526,7 +2532,7 @@ ErrorCodeEnum CHSPScannerFSM::TryToOpenDevice()
 	}
 	else {
 		SetLastUserCode();
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::DevOpen").setCostTime(ullEnd - ullStart)("Open HSPS succ");
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::DevOpen").setCostTime(ullEnd - ullStart)();
 		ullStart = SP::Module::Comm::RVCGetTickCount();
 		result = FulfillAdapterDevCategory();
 		ullEnd = SP::Module::Comm::RVCGetTickCount();
@@ -2537,12 +2543,17 @@ ErrorCodeEnum CHSPScannerFSM::TryToOpenDevice()
 		m_nRecY = 224;
 		m_nRecW = 1024;
 		ErrorCodeEnum ecInit = m_hDevHelper->SetViewPos(m_nRecX, m_nRecY, m_nRecW);
+		if (FAILURED(ecInit))
+			SetErrorAndLog(ecInit, MEC_DEVAPI_HSPSCANNER_SetViewPos, "DevAdapter::SetViewPos", __FUNCTION__, false);
 		ErrorCodeEnum ecInitScan = m_hDevHelper->SetParam(HSPS_MODEL_SCANSIZE, HSPS_SCAN_FULL);
+		if (FAILURED(ecInitScan))
+			SetErrorAndLog(ecInitScan, MEC_DEVAPI_HSPSCANNER_SetParam, "DevAdapter::SetParam", __FUNCTION__, false, 0, "", CombineJsonContext("HSPS_SCAN_FULL"));
 		ErrorCodeEnum ecInitRotate = m_hDevHelper->SetParam(HSPS_MODEL_ROTATE, HSPS_ROTATE_NOANGLE);
+		if (FAILURED(ecInitRotate))
+			SetErrorAndLog(ecInitRotate, MEC_DEVAPI_HSPSCANNER_SetParam, "DevAdapter::SetParam", __FUNCTION__, false, 0, "", CombineJsonContext("HSPS_ROTATE_NOANGLE"));
 		ErrorCodeEnum ecInitColor = m_hDevHelper->SetParam(HSPS_MODEL_COLOR, HSPS_COLOR_FULL);
-		if (FAILURED(ecInit) || FAILURED(ecInitScan) || FAILURED(ecInitRotate) || FAILURED(ecInitColor)) {
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("ViewPos: %s, Scan: %s, rotate: %s, color: %s.", SpStrError(ecInit), SpStrError(ecInitScan), SpStrError(ecInitRotate), SpStrError(ecInitColor));
-		}
+		if (FAILURED(ecInitColor))
+			SetErrorAndLog(ecInitColor, MEC_DEVAPI_HSPSCANNER_SetParam, "DevAdapter::SetParam", __FUNCTION__, false, 0, "", CombineJsonContext("HSPS_COLOR_FULL"));
 	}
 	return result;
 }
@@ -2564,6 +2575,9 @@ LPCTSTR CHSPScannerFSM::MapCode2RTAString(DWORD dwValue)
 	case 0x2170000C: /*未登记到资源管理平台*/
 		return "RTA2N0C";
 		break;
+	case 0x21700204: /*未登记到资源管理平台*/
+		return "RTA2N0S";
+		break;
 	case 0:
 	default:
 		return "SUC0000";

+ 15 - 15
Module/mod_HSPScanner/HSPScannerFSM.h

@@ -282,7 +282,7 @@ public:
 	int StopPreview(SpReqAnsContext<HSPScannerService_CancelPreview_Req,
 		HSPScannerService_CancelPreview_Ans>::Pointer ctx);
 	
-	bool ResizeImage(const CSimpleStringA& fileName, int kbSize);
+	bool ResizeImage(const CSimpleStringA& fileName, int kbSize, long& originSize);
 	
 	int ScanImage(SpReqAnsContext<HSPScannerService_ScanImage_Req,
 		HSPScannerService_ScanImage_Ans>::Pointer ctx);
@@ -339,7 +339,7 @@ private:
 	DWORD m_dwMaxImageSize;
 	bool m_lightOn;
 	bool m_dupFlag4ExitCancel;
-
+	ULONGLONG m_ullTS4Disconnect;
 private:
 
 	BOOL GetCurImageName(CSimpleStringA& csImagName, bool bExt = false);
@@ -390,7 +390,7 @@ public:
 	{
 		if (m_ctx != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_StartPreview)
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_StartPreview).setAPI("StartPreviewEvent")
 				.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 			m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 		}
@@ -409,7 +409,7 @@ public:
 	{
 		if (m_ctx != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_CancelPreview)
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_CancelPreview).setAPI("StopPreviewEvent")
 				.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 			m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 		}
@@ -428,7 +428,7 @@ public:
 	{
 		if (m_ctx != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_ScanImage)
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_ScanImage).setAPI("ScanImageEvent")
 				.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 			m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 		}
@@ -447,7 +447,7 @@ public:
 	{
 		if (m_ctx != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_ScanImageEx)
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_ScanImageEx).setAPI("ScanImageExEvent")
 				.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 			m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 		}
@@ -466,7 +466,7 @@ public:
 	{
 		if (m_ctx != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_ShowProperty)
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_ShowProperty).setAPI("ShowPropertyEvent")
 				.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 			m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 		}
@@ -485,7 +485,7 @@ public:
 	{
 		if (m_ctx != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_SetProperty)
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_SetProperty).setAPI("SetPropertyEvent")
 				.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 			m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 		}
@@ -504,7 +504,7 @@ public:
 	{
 		if (m_ctx != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_SetWinPos)
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_SetWinPos).setAPI("SetWinPosEvent")
 				.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 			m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 		}
@@ -523,7 +523,7 @@ public:
 	{
 		if (m_ctx != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_GetDevStatus)
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_GetDevStatus).setAPI("GetDevStatusEvent")
 				.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 			m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 		}
@@ -544,7 +544,7 @@ public:
 	{
 		if (m_ctx != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_GetDevInfo)
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_GetDevInfo).setAPI("GetDevInfoEvent")
 				.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 			m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 		}
@@ -565,7 +565,7 @@ namespace JS {
 		{
 			if (m_ctx != NULL)
 			{
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_StartPreviewJS)
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_StartPreviewJS).setAPI("StartPreviewEventJS")
 					.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("StartPreviewEvent::Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 				m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 			}
@@ -583,7 +583,7 @@ namespace JS {
 		{
 			if (m_ctx != NULL)
 			{
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_CancelPreviewJS)
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_CancelPreviewJS).setAPI("CancelPreviewJSEvent")
 					.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("CancelPreviewEvent::Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 				m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 			}
@@ -601,7 +601,7 @@ namespace JS {
 		{
 			if (m_ctx != NULL)
 			{
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_ScanImageJS)
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_ScanImageJS).setAPI("ScanImageJSEvent")
 					.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("ScanImageEvent::Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 				m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 			}
@@ -619,7 +619,7 @@ namespace JS {
 		{
 			if (m_ctx != NULL)
 			{
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_SetParamJS)
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode(HSPScannerService_LogCode_SetParamJS).setAPI("SetParamJSEvent")
 					.setResultCode(m_fsm->MapCode2RTAString(LOG_WARN_HSPS_INVALID_OPERATION))("SetParamEvent::Error_InvalidState in [%s] State", m_fsm->GetCurrStateName());
 				m_ctx->Answer(Error_InvalidState, LOG_WARN_HSPS_INVALID_OPERATION);
 			}

+ 0 - 35
Module/mod_HSPScanner/mod_HSPScanner.cpp

@@ -3,7 +3,6 @@
 
 #include "stdafx.h"
 #include "mod_HSPScanner.h"
-#include "fileutil.h"
 
 void CHSPScannerServerSession::Handle_StartPreview(SpReqAnsContext<HSPScannerService_StartPreview_Req,
 	HSPScannerService_StartPreview_Ans>::Pointer ctx)
@@ -76,28 +75,24 @@ void CHSPScannerServerSession::Handle_Exit(SpOnewayCallContext<HSPScannerService
 void CHSPScannerServerSession::Handle_StartPreviewJS(SpReqAnsContext<HSPScannerService_StartPreviewJS_Req, HSPScannerService_StartPreviewJS_Ans>::Pointer ctx)
 {
 	DbgToBeidou(ctx->link, __FUNCTION__)();
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_StartPreviewJS).setAPI(__FUNCTION__)(__FUNCTION__);
 	m_pEntity->StartPreviewJS(ctx);
 }
 
 void CHSPScannerServerSession::Handle_CancelPreviewJS(SpReqAnsContext<HSPScannerService_CancelPreviewJS_Req, HSPScannerService_CancelPreviewJS_Ans>::Pointer ctx)
 {
 	DbgToBeidou(ctx->link, __FUNCTION__)();
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_CancelPreviewJS).setAPI(__FUNCTION__)(__FUNCTION__);
 	m_pEntity->CancelPreviewJS(ctx);
 }
 
 void CHSPScannerServerSession::Handle_ScanImageJS(SpReqAnsContext<HSPScannerService_ScanImageJS_Req, HSPScannerService_ScanImageJS_Ans>::Pointer ctx)
 {
 	DbgToBeidou(ctx->link, __FUNCTION__)();
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImageJS).setAPI(__FUNCTION__)(__FUNCTION__);
 	m_pEntity->ScanImageJS(ctx);
 }
 
 void CHSPScannerServerSession::Handle_SetParamJS(SpReqAnsContext<HSPScannerService_SetParamJS_Req, HSPScannerService_SetParamJS_Ans>::Pointer ctx)
 {
 	DbgToBeidou(ctx->link, __FUNCTION__)();
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_SetParamJS).setAPI(__FUNCTION__)(__FUNCTION__);
 	m_pEntity->SetParamJS(ctx);
 }
 
@@ -109,36 +104,6 @@ void CHSPScannerEntity::OnSysVarEvent(const char* pszKey, const char* pszValue,
 	}
 }
 
-#if defined(_MSC_VER)
-
-ErrorCodeEnum CHSPScannerEntity::CustomVendorLibInfo()
-{
-	/** 仅做调查使用  [Gifur@2024118]*/
-	if (vendorLibInfo.strVendor.Compare("keba", true) == 0
-		&& ((vendorLibInfo.strVersion == "7" && vendorLibInfo.strBatch == "1")
-			|| (vendorLibInfo.strVersion == "1" && vendorLibInfo.strBatch == "1"))) {
-		CSimpleStringA strExistDriver(true);
-		BOOL isNewOne(FALSE);
-		if (ExistsFileA("C:\\Program Files (x86)\\eloamDll_2.4\\bin\\eloamDll.dll")) {
-			strExistDriver = "C:\\Program Files (x86)\\eloamDll_2.4\\bin\\eloamDll.dll";
-			isNewOne = TRUE;
-		} else if (ExistsFileA("C:\\Program Files\\eloamDll_2.4\\bin\\eloamDll.dll")) {
-			strExistDriver = "C:\\Program Files\\eloamDll_2.4\\bin\\eloamDll.dll";
-			isNewOne = TRUE;
-		} else if (ExistsFileA("C:\\Program Files (x86)\\eloamDll_2.3\\bin\\eloamDll.dll")) {
-			strExistDriver = "C:\\Program Files (x86)\\eloamDll_2.3\\bin\\eloamDll.dll";
-		} else if (ExistsFileA("C:\\Program Files\\eloamDll_2.3\\bin\\eloamDll.dll")) {
-			strExistDriver = "C:\\Program Files\\eloamDll_2.3\\bin\\eloamDll.dll";
-		}
-		if (!strExistDriver.IsNullOrEmpty() && isNewOne) {
-			LogWarn(Severity_Low, Error_Debug, LOG_WARN_HSPS_VENDORDLL_KEBA_MATCHED, strExistDriver);
-		}
-	}
-	return Error_Succeed;
-}
-#endif //_MSC_VER
-
-
 SP_BEGIN_ENTITY_MAP()
 	SP_ENTITY(CHSPScannerEntity)
 SP_END_ENTITY_MAP()

+ 0 - 5
Module/mod_HSPScanner/mod_HSPScanner.h

@@ -222,11 +222,6 @@ public:
 	virtual bool IsService() const { return true; }
 	virtual bool IsMultiThread() const { return true; }; 
 
-	protected:
-#if defined(_MSC_VER)
-		ErrorCodeEnum CustomVendorLibInfo();
-#endif //_MSC_VER
-
 private:
 	CHSPScannerFSM m_fsm;
 };

+ 5 - 3
Module/mod_healthmanager/mod_healthmanager.cpp

@@ -568,6 +568,7 @@ bool CHealthManagerEntity::StopGuardian()
 					if( hProcess == NULL )
 					{
 						DbgWithLink(LOG_LEVEL_ERROR,LOG_TYPE_SYSTEM)("Fail to open process(%d)!",GetLastError());
+						CloseHandle(hSnapshot);
 						return false;
 					}
 					else
@@ -575,6 +576,8 @@ bool CHealthManagerEntity::StopGuardian()
 						result = TerminateProcess(hProcess,-1);
 						if (result)
 						{
+							CloseHandle(hProcess);
+							CloseHandle(hSnapshot);
 							Sleep(3000);
 							DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("Terminate guardian suc.");
 							return true;
@@ -582,13 +585,12 @@ bool CHealthManagerEntity::StopGuardian()
 						else
 						{
 							DbgWithLink(LOG_LEVEL_ERROR,LOG_TYPE_SYSTEM)("Terminate guardian failed(%d).",GetLastError());
+							CloseHandle(hProcess);
+							CloseHandle(hSnapshot);
 							return false;
 						}
-						CloseHandle( hProcess );
 					}
-
 					Sleep(3000);
-
 					WaitForSingleObject(&pe.th32ProcessID, INFINITE );
 					break;
 				}

+ 3 - 1
Module/mod_heartbeat/HeartBeatFSM.h

@@ -2,7 +2,9 @@
 #define __HEARTBEAT_FSM_H
 #pragma once
 #ifdef RVC_OS_WIN
-#define WIN32_LEAN_AND_MEAN
+#ifndef WIN32_LEAN_AND_MEAN
+	#define WIN32_LEAN_AND_MEAN
+#endif
 
 #include <windows.h>
 #include <winsock2.h>