Quellcode durchsuchen

#IQRV #comment 灯控调整

80374374 vor 6 Monaten
Ursprung
Commit
f9d4fc82fe
2 geänderte Dateien mit 22 neuen und 6 gelöschten Zeilen
  1. 20 6
      Module/mod_HSPScanner/HSPScannerFSM.cpp
  2. 2 0
      Module/mod_HSPScanner/HSPScannerFSM.h

+ 20 - 6
Module/mod_HSPScanner/HSPScannerFSM.cpp

@@ -117,7 +117,7 @@ CHSPScannerFSM::CHSPScannerFSM(void)
 	m_nSrcState(sIdle),
 	m_desiredAction(USER_EVT_QUIT),
 	dwLastUserCode(0),
-	m_dwMaxImageSize(500)
+	m_dwMaxImageSize(500), m_lightOn(false)
 {
 	HARDWARE_ENTITY_RESET_ENTITYID(m_entCode, 0x217);
 }
@@ -1126,6 +1126,7 @@ unsigned int CHSPScannerFSM::s6_HidePreview_on_event(FSMEvent* e)
 			uRet = 0;
 		}
 		else {
+			ToSwithLight();
 			pEvt->m_ctx->Answer(Error_Succeed);
 			uRet = 1;
 		}
@@ -1514,7 +1515,8 @@ int CHSPScannerFSM::StartPreview(SpReqAnsContext<HSPScannerService_StartPreview_
 	if (FAILURED(erroCode)) {
 		nRes = 1;
 	} else {
-		LogEvent(Severity_Middle, LOG_EVT_HSPS_LIGHT_ON, "HSPScanner warning on.");
+		/** 无论如何都打开一次灯,所以这里应该是有所冗余的  [Gifur@2025325]*/
+		ToSwithLight();
 	}
 	ctx->Answer(TransECWithRepeat(erroCode), GetLastUserCode());
 	return nRes;
@@ -1560,7 +1562,8 @@ int CHSPScannerFSM::StopPreview(SpReqAnsContext<HSPScannerService_CancelPreview_
 		}
 	}
 	if (ISSUCCEEDED(erroCode)) {
-		LogEvent(Severity_Middle, LOG_EVT_HSPS_LIGHT_OFF, "HSPScanner warning off.");
+		/** 取消预览时如果仅仅是隐藏也会关闭灯  [Gifur@2025325]*/
+		ToSwithLight(false);
 	}
 	ctx->Answer(TransECWithRepeat(erroCode), GetLastUserCode());
 	return nRes;
@@ -1707,6 +1710,7 @@ int CHSPScannerFSM::ScanImage(SpReqAnsContext<HSPScannerService_ScanImage_Req,
 					//RTA2N0Q
 					SetErrorAndLog(eHide, MEC_DEVAPI_HSPSCANNER_SetParam, "DevAdapter::SetParam", __FUNCTION__, IsInBusiness(), ullEnd - ullStart, HSPScannerService_LogCode_ScanImage, CombineJsonContext("HSPS_VIEW_HIDE"));
 				}
+				/** 拍照成功虽然隐藏了但没有关闭灯  [Gifur@2025325]*/
 			}
 
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_ScanImage).setAPI(__FUNCTION__)("ScanImage succ");
@@ -2087,7 +2091,7 @@ ErrorCodeEnum CHSPScannerFSM::OnDevExit()
 				const ULONGLONG ullEnd = SP::Module::Comm::RVCGetTickCount();
 				if (ISSUCCEEDED(erroCode)) {
 					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setLogCode(__FUNCTION__).setAPI("DevAdapter::CancelPreview").setCostTime(ullEnd - ullStart)("SetPreview");
-					LogEvent(Severity_Middle, LOG_EVT_HSPS_LIGHT_OFF, "HSPScanner warning off.");
+					ToSwithLight(false);
 					LogWarn(Severity_Low, Error_Debug, LOG_EVT_HSPSCANNER_SetPreview_Close, "cancelPreview succ.");
 				} else {
 					//RTA2N04
@@ -2141,7 +2145,7 @@ int CHSPScannerFSM::StartPreviewJS(SpReqAnsContext<HSPScannerService_StartPrevie
 	}
 	else {
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(HSPScannerService_LogCode_StartPreviewJS).setAPI("DevAdapter::SetPreview").setCostTime(ullEnd - ullStart)("StartPreview::SetPreview(1)");
-		LogEvent(Severity_Middle, LOG_EVT_HSPS_LIGHT_ON, "HSPScanner warning on.");
+		ToSwithLight();
 	}
 	ctx->Answer(erroCode, GetLastUserCode());
 	return ret;
@@ -2182,7 +2186,7 @@ int CHSPScannerFSM::CancelPreview(SpReqAnsContext<HSPScannerService_CancelPrevie
 	}
 
 	if (ISSUCCEEDED(erroCode)) {
-		LogEvent(Severity_Middle, LOG_EVT_HSPS_LIGHT_OFF, "HSPScanner warning off.");
+		ToSwithLight(false);
 	}
 	return ret;
 }
@@ -2195,6 +2199,7 @@ int CHSPScannerFSM::ScanImageJS(SpReqAnsContext<HSPScannerService_ScanImageJS_Re
 	SetLastUserCode();
 	CSimpleStringA csImageFile(true);
 	GetCurImageName(csImageFile);
+	DelAndGetNewFileName(csImageFile);
 	ULONGLONG ullStart = SP::Module::Comm::RVCGetTickCount();
 	erroCode = m_hDevHelper->ScanImage((LPCTSTR)csImageFile);
 	ULONGLONG ullEnd = SP::Module::Comm::RVCGetTickCount();
@@ -2344,6 +2349,15 @@ ErrorCodeEnum CHSPScannerFSM::SetPreviewProperty(const JS::PreviewSettings& val,
 	return erroCode;
 }
 
+void CHSPScannerFSM::ToSwithLight(bool turnOn /*= true*/)
+{
+	if (m_lightOn != turnOn) {
+		if (turnOn) LogEvent(Severity_Middle, LOG_EVT_HSPS_LIGHT_ON, "HSPScanner warning on.");
+		else LogEvent(Severity_Middle, LOG_EVT_HSPS_LIGHT_OFF, "HSPScanner warning off.");
+		m_lightOn = turnOn;
+	}
+}
+
 //TODO: JS完全替换后,这个函数要废弃换成SetPreviewProperty替代  [Gifur@2025318]
 int CHSPScannerFSM::SetPreviewParam(int colorType, int rotateType, int scanType, bool abortIfFault)
 {

+ 2 - 0
Module/mod_HSPScanner/HSPScannerFSM.h

@@ -650,6 +650,7 @@ protected:
 	
 	ErrorCodeEnum SetPreviewProperty(const JS::PreviewSettings& val, const char* logCode = "");
 
+	void ToSwithLight(bool turnOn = true);
 private:
 	ErrorCodeEnum m_ecSelfTest;
 	int m_nFatalTimes;
@@ -659,6 +660,7 @@ private:
 	EvtType m_desiredAction;
 	DWORD dwLastUserCode;
 	DWORD m_dwMaxImageSize;
+	bool m_lightOn;
 
 private:
 	BOOL GetCurImageName(CSimpleStringA& csImagName, bool bExt = false);