Ver código fonte

!10734 合并最新ST2
Merge pull request !10734 from 80374374/ST2

Gifur 5 meses atrás
pai
commit
13c108fb14

+ 2 - 12
CMakeLists.txt

@@ -168,13 +168,6 @@ if(DEVOPS_ON)
 		set(BUILD_NUMBER ${RVC_DEV_NUM})
 	endif(DEFINED ENV{ENV_VER_Build})
 
-	if(DEFINED ENV{WITH_DEVADAPTER})
-		message(STATUS "FOR_BUILD DEVADAPTER or not: $ENV{WITH_DEVADAPTER}")
-		if(NOT $ENV{WITH_DEVADAPTER})
-			set(BUILD_DEVADAPTER OFF)
-		endif(NOT $ENV{WITH_DEVADAPTER})
-	endif(DEFINED ENV{WITH_DEVADAPTER})
-
 	if(DEFINED ENV{ONLY_DEVADAPTER})
 		if($ENV{ONLY_DEVADAPTER})
 			set(ONLY_BUILD_DEVADAPTER TRUE)
@@ -185,7 +178,7 @@ if(DEVOPS_ON)
 	if(DEVOPS_ON_CMAKE_PRD)
 		set(RVC_VERSION_SUFFIX "PRD")
 		if(PACK_AS_DEB_PKG)
-		#product version as debian installer, reset the last version element to zero.
+			#product version as debian installer, reset the last version element to zero.
 			set(BUILD_NUMBER 0)
 		endif(PACK_AS_DEB_PKG)
 	else()
@@ -206,6 +199,7 @@ if(DEVOPS_ON)
 
 elseif(BUILD_NUMBER EQUAL 0)
 	set(BUILD_NUMBER ${RVC_DEV_NUM})
+
 endif(DEVOPS_ON)
 
 message(STATUS "BUILD_NUMBER ${BUILD_NUMBER}")
@@ -644,10 +638,6 @@ else()
 endif(BUILD_TOOLS)
 
 if(BUILD_DEVADAPTER)
-	set(ONLY_PURE_ADAPTER_RELY FALSE)
-	add_subdirectory(DevAdapter)
-else()
-	set(ONLY_PURE_ADAPTER_RELY TRUE)
 	add_subdirectory(DevAdapter)
 endif(BUILD_DEVADAPTER)
 

+ 8 - 66
DevAdapter/CMakeLists.txt

@@ -166,87 +166,29 @@ message(STATUS "vendor log library: ${VENDOR_LOG_LIB_NAME}")
 
 # 通过conan的方式管理厂商库
 if(DEVADAPTER_USING_CONAN)
-    if(MSVC) #Windows 厂商适配器
-        if(RVC_INTEGRATE_BUILDV2 AND NOT ONLY_PURE_ADAPTER_RELY)
-            #厂商适配器兼容WIN的提交,需要将以前的ZIP链接转化为Conan依赖包,处理完之后这里填写内容进行拉取:Demo
-            #set(CMB_CONAN_ALL_LIB_NAME cmb/2024.0315.20@LR04.02_VendorLib/msvc)
-            #长城读卡接口优化
-            set(GWI_CONAN_ALL_LIB_NAME gwi/2024.0722.6@LR04.02_VendorLib/msvc)
-            set(KEBA_CONAN_ALL_LIB_NAME keba/2024.0326.23@LR04.02_VendorLib/msvc)
-            #【阅知】关于适配器解耦完成测试事宜
-            set(CW_CONAN_ALL_LIB_NAME cw/2024.1125.57@LR04.02_VendorLib/msvc)
-            #rvc_aggerate_vendor_libs(cmb)
-            rvc_aggerate_vendor_libs(gwi)
-            rvc_aggerate_vendor_libs(keba)
-            rvc_aggerate_vendor_libs(cw)
-        endif(RVC_INTEGRATE_BUILDV2 AND NOT ONLY_PURE_ADAPTER_RELY)
-    else() #UOS厂商适配器
-        if(RVC_INTEGRATE_BUILDV2 AND NOT ONLY_PURE_ADAPTER_RELY)
-            #邮件 试运行设备的密码键盘与读卡器的提示灯物理地址与测试样机的物理地址不一致
-            set(KEBA_CONAN_ALL_LIB_NAME keba/2024.0814.32@LR04.02_VendorLib/stable)
-            #【阅知】关于适配器解耦完成测试事宜
-            set(CW_CONAN_ALL_LIB_NAME cw/2024.1220.47@LR04.02_VendorLib/stable)
-            #【阅知】关于适配器解耦完成测试事宜
-            set(SZZT_CONAN_ALL_LIB_NAME szzt/2024.1209.40@LR04.02_VendorLib/stable)
-            #长城信创单屏设备root.ini配置需要更新为(根据行方规范,将信创单屏设备版本号修改为2.x)
-            set(GWI_CONAN_ALL_LIB_NAME gwi/2024.0723.20@LR04.02_VendorLib/stable)
-            #Fw: 回复:回复: Fw: 回复:回复: Fw: 南天-缺陷案例解决方案及适配器整合
-            set(NANTIAN_CONAN_ALL_LIB_NAME nantian/2024.0802.2@LR04.02_VendorLib/stable)
-            #Fw: 单屏VTM最新版本链接
-            set(GRG_CONAN_ALL_LIB_NAME grg/2024.0913.45@LR04.02_VendorLib/stable)
-            #根据开发规范适配器与依赖库简称由【CBPM】变更为【cbpm】案例自测完成
-            set(CBPM_CONAN_ALL_LIB_NAME cbpm/2024.1101.10@LR04.02_VendorLib/stable)
-            rvc_aggerate_vendor_libs(keba)
-            rvc_aggerate_vendor_libs(cw)
-            rvc_aggerate_vendor_libs(szzt)
-            rvc_aggerate_vendor_libs(gwi)
-            rvc_aggerate_vendor_libs(nantian)
-            rvc_aggerate_vendor_libs(grg)
-            rvc_aggerate_vendor_libs(cbpm)
-        endif(RVC_INTEGRATE_BUILDV2 AND NOT ONLY_PURE_ADAPTER_RELY)
-    endif(MSVC)
-
     if(MSVC)
-        #CardLibDB_CMB.db3
-        if(NOT ONLY_PURE_ADAPTER_RELY)
-            conan_cmake_run(REQUIRES VendorDLL/2024.11.1401@LR04.02_VendorLib/testing
-                BASIC_SETUP CMAKE_TARGETS)
-        endif(NOT ONLY_PURE_ADAPTER_RELY)
-
         set(SELF_CONAN_LIB_NAME self/2024.1217.01@LR04.02_VendorLib/testing)
         add_subdirectory(self)
     endif(MSVC)
-
 endif(DEVADAPTER_USING_CONAN)
 
-if(NOT ONLY_PURE_ADAPTER_RELY)
-    file(GLOB all_valid_subdirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/CMakeLists.txt")
-endif(NOT ONLY_PURE_ADAPTER_RELY)
-
+file(GLOB all_valid_subdirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/CMakeLists.txt")
 foreach(dir ${all_valid_subdirs})
 	if(${dir} MATCHES "^([^/]*)/+CMakeLists.txt")
 		string(REGEX REPLACE "^([^/]*)/+CMakeLists.txt" "\\1" dir_trimmed ${dir})
         # remove 'self' sub directory bcz it would be added seperately
-        if(DEVOPS_ON)
+        if(DEVOPS_ON_CMAKE_PRD)
             #硬件模拟器在生产流水线不参与编译
-            #liblog4vendor 单独上面提前编译
+            #liblog4vendor 和 self 已在上面提前单独编译
             #simulator 编译纯适配器时无法编译,因为依赖框架RVCComm库
-            if(DEVOPS_ON_CMAKE_PRD)
-                string(FIND "liblog4vendor|self|cmbsz|simulator" ${dir_trimmed} found)
-            else()
-                if(ONLY_BUILD_DEVADAPTER)
-                    string(FIND "liblog4vendor|self|cmbsz|simulator" ${dir_trimmed} found)
-                else()
-                    string(FIND "liblog4vendor|self|cmbsz" ${dir_trimmed} found)
-                endif(ONLY_BUILD_DEVADAPTER)
-            endif(DEVOPS_ON_CMAKE_PRD)
+            string(FIND "liblog4vendor|self|cmbsz|simulator" ${dir_trimmed} found)
         else()
-            if(ONLY_BUILD_DEVADAPTER)
-                string(FIND "liblog4vendor|self|simulator" ${dir_trimmed} found)
+            if(DEVOPS_ON)
+                string(FIND "liblog4vendor|self|cmbsz" ${dir_trimmed} found)
             else()
                 string(FIND "liblog4vendor|self" ${dir_trimmed} found)
-            endif(ONLY_BUILD_DEVADAPTER)
-        endif(DEVOPS_ON)
+            endif(DEVOPS_ON)
+        endif(DEVOPS_ON_CMAKE_PRD)
         message(STATUS "found: ${found}")
         if((NOT RVC_INTEGRATE_BUILD) OR (${found} EQUAL -1))
 		    message(STATUS "Adding vendor component ${dir_trimmed}")

+ 1 - 1
DevAdapter/simulator/assets/cmbsz.ini

@@ -1,2 +1,2 @@
 [server]
-url=http://emulatoruser.paasst.cmbchina.cn/emulator/avs/retrieveEmulatorData
+url=http://emulatoruser.paasuat.cmbchina.cn/emulator/avs/retrieveEmulatorData

+ 1 - 1
DevAdapter/simulator/include/DeviceSimulator.h

@@ -35,7 +35,7 @@
 #endif
 
 using namespace std;
-#define DEFAULT_DATA_URL "http://emulatoruser.paasst.cmbchina.cn/emulator/avs/retrieveEmulatorData"
+#define DEFAULT_DATA_URL "http://emulatoruser.paasuat.cmbchina.cn/emulator/avs/retrieveEmulatorData"
 
 //获取模拟器库文件所在目录
 string GetCurrentDirectory() {

+ 11 - 2
Framework/Common/SpFSM.h

@@ -35,7 +35,7 @@ enum FSMEventEnum
 
 #define FSM_STATE_INIT -1 // the initial state of the FSM
 #define FSM_STATE_EXIT -2 // the exit state of the FSM
-
+#define FSM_STATE_ERROR -3 // the error state of the FSM
 struct FSMEvent
 {
 	int iEvt;
@@ -124,6 +124,12 @@ public:
 	virtual int MatchRule(int state, int evt, unsigned int rc)=0;
 	virtual BOOL FindStateEvent(int evt)=0;
 
+protected:
+	const bool InNotInitState() const
+	{
+		return (m_iState == FSM_STATE_INIT || m_iState == FSM_STATE_EXIT || m_iState == FSM_STATE_ERROR);
+	}
+
 private:
 	void Trans(int next);
 
@@ -229,7 +235,10 @@ public:
 			return "State_Start";
 		} else if (iState == FSM_STATE_EXIT) {
 			return "State_End";
-		} else {
+		} else if (iState == FSM_STATE_ERROR) {
+			return "State_Error";
+		}
+		else {
 			T *pT = static_cast<T*>(this);
 #ifdef _WIN32
 			T::FSMStateEntry* entry = pT->GetState(iState);

+ 15 - 3
Framework/spbase/SpFSM.cpp

@@ -116,7 +116,9 @@ ErrorCodeEnum FSMBase::Init(CEntityBase *pEntity)
 	if (Error == Error_Succeed) {
 		Trans(GetInitState());
 	}
-
+	else {
+		//m_iState = FSM_STATE_ERROR;
+	}
 	return Error;
 }
 
@@ -183,7 +185,7 @@ void FSMBase::__ProcessEvent(FSMEvent *e)
 		if (old_state != new_state) {
 			OnHook(old_state, new_state); // dont change state here
 			TOOLKIT_ASSERT(m_iState == old_state);
-			if (old_state != FSM_STATE_INIT) {
+			if (old_state != FSM_STATE_INIT && old_state != FSM_STATE_ERROR) {
 				OnStateExit(old_state);
 			}
 			m_iState = new_state;
@@ -217,7 +219,7 @@ void FSMBase::__ProcessEvent(FSMEvent *e)
 		if (m_lInTrans) {
 			e->IncRef();
 			ListEntry_AddTail(&m_eventlist, &e->m_entry);
-		} else {
+		} else if(!InNotInitState()){
 			unsigned int rc = OnStateEvent(e);
 			if (!e->IsHandled()) {
 				if (FindStateEvent(e->iEvt)) {
@@ -234,6 +236,16 @@ void FSMBase::__ProcessEvent(FSMEvent *e)
 			}
 			e->SetHandled(FALSE);
 		}
+		else {
+			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Ignore the FSMEvent id: %d", e->iEvt);
+			if (e->IsHandled()) {
+				/**   [Gifur@2025429]*/
+			}
+			else {
+				e->OnUnhandled();
+			}
+			e->SetHandled(FALSE);
+		}
 	}
 }