孟令鑫 1 năm trước cách đây
mục cha
commit
6dc48e7ab8

+ 14 - 22
aarch64/pjisuv/master/package/service/produce_window.go

@@ -85,11 +85,9 @@ func PrepareTimeWindowProducerQueue() {
 			lastTimeWindow := entity.GetLastTimeWindow() // 获取最后一个时间窗口
 			// 更新共享变量
 			m.RLock()
-			{
-				velocityX = data.VelocityX
-				velocityY = data.VelocityY
-				yaw = data.Yaw
-			}
+			velocityX = data.VelocityX
+			velocityY = data.VelocityY
+			yaw = data.Yaw
 			m.RUnlock()
 			var faultLabel string
 			for _, f := range masterConfig.RuleOfCicvLocation {
@@ -125,7 +123,7 @@ func PrepareTimeWindowProducerQueue() {
 				faultHappenTime := util.GetNowTimeCustom()   // 获取当前故障发生时间
 				lastTimeWindow := entity.GetLastTimeWindow() // 获取最后一个时间窗口
 				var faultLabel string
-				c_log.GlobalLogger.Infof("TTC数据为:【velocityX】=%v,【velocityY】=%v", velocityX, velocityY)
+				//c_log.GlobalLogger.Infof("TTC数据为:【velocityX】=%v,【velocityY】=%v", velocityX, velocityY)
 				for _, f := range masterConfig.RuleOfTpperception {
 					faultLabel = f(data, velocityX, velocityY, yaw)
 					if faultLabel != "" {
@@ -155,30 +153,24 @@ func PrepareTimeWindowProducerQueue() {
 			entity.Subscriber3TimeMutex.Lock()
 			// 判断是否是连续故障码
 			gap := time.Since(entity.Subscriber3Time).Seconds()
-			if gap < 2 {
-				entity.Subscriber3Time = time.Now()
-				entity.Subscriber3TimeMutex.Unlock()
-				return
-			} else {
+			if gap > 2 {
 				// 2 不是连续故障码
 				entity.Subscriber3Time = time.Now()
 				entity.Subscriber3TimeMutex.Unlock()
 				subscriber3Mutex.Lock()
-				{
-					faultHappenTime := util.GetNowTimeCustom()   // 获取当前故障发生时间
-					lastTimeWindow := entity.GetLastTimeWindow() // 获取最后一个时间窗口
-					var faultLabel string
-					for _, f := range masterConfig.RuleOfFaultInfo {
-						faultLabel = f(data)
-						if faultLabel != "" {
-							saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
-							break
-						}
+				faultHappenTime := util.GetNowTimeCustom()   // 获取当前故障发生时间
+				lastTimeWindow := entity.GetLastTimeWindow() // 获取最后一个时间窗口
+				var faultLabel string
+				for _, f := range masterConfig.RuleOfFaultInfo {
+					faultLabel = f(data)
+					if faultLabel != "" {
+						saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
+						break
 					}
 				}
 				subscriber3Mutex.Unlock()
 			}
-
+			entity.Subscriber3TimeMutex.Unlock()
 		}})
 	if err != nil {
 		c_log.GlobalLogger.Info("创建订阅者3发生故障:", err)

+ 35 - 50
kinglong/master/pkg/svc/produce_window.go

@@ -1,6 +1,7 @@
 package svc
 
 import (
+	"cicv-data-closedloop/common/config/c_log"
 	commonConfig "cicv-data-closedloop/kinglong/common/cfg"
 	"cicv-data-closedloop/kinglong/common/ent"
 	"cicv-data-closedloop/kinglong/common/global"
@@ -89,11 +90,9 @@ func PrepareTimeWindowProducerQueue() {
 				lastTimeWindow := util.GetLastTimeWindow() // 获取最后一个时间窗口
 				// 更新共享变量
 				m.RLock()
-				{
-					velocityX = data.VelocityX
-					velocityY = data.VelocityY
-					yaw = data.Yaw
-				}
+				velocityX = data.VelocityX
+				velocityY = data.VelocityY
+				yaw = data.Yaw
 				m.RUnlock()
 				var faultLabel string
 				for _, f := range masterConfig.RuleOfCicvLocation {
@@ -124,32 +123,27 @@ func PrepareTimeWindowProducerQueue() {
 			global.Subscriber2TimeMutex.Lock()
 			// 判断是否是连续故障码
 			gap := time.Since(global.Subscriber2Time).Seconds()
-			if gap < 10 {
-				global.Subscriber2TimeMutex.Unlock()
-				return
-			} else {
+			if gap > 1 {
 				// 2 不是连续故障码
-				global.Subscriber2Time = time.Now()
-				global.Subscriber2TimeMutex.Unlock()
 				subscriber2Mutex.Lock()
-				{
-					faultHappenTime := util.GetNowTimeCustom() // 获取当前故障发生时间
-					lastTimeWindow := util.GetLastTimeWindow() // 获取最后一个时间窗口
-					var faultLabel string
-					for _, f := range masterConfig.RuleOfTpperception {
-						faultLabel = f(data, velocityX, velocityY, yaw)
-						if faultLabel != "" {
-							saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
-							break
-						}
+				faultHappenTime := util.GetNowTimeCustom() // 获取当前故障发生时间
+				lastTimeWindow := util.GetLastTimeWindow() // 获取最后一个时间窗口
+				var faultLabel string
+				//log.GlobalLogger.Infof("TTC数据为:【velocityX】=%v,【velocityY】=%v", velocityX, velocityY)
+				for _, f := range masterConfig.RuleOfTpperception {
+					faultLabel = f(data, velocityX, velocityY, yaw)
+					if faultLabel != "" {
+						saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
+						global.Subscriber2Time = time.Now()
+						break
 					}
 				}
 				subscriber2Mutex.Unlock()
 			}
-
+			global.Subscriber2TimeMutex.Unlock()
 		}})
 	if err != nil {
-		log.GlobalLogger.Info("创建订阅者2发生故障:", err)
+		c_log.GlobalLogger.Info("创建订阅者2发生故障:", err)
 		os.Exit(-1)
 	}
 	// 创建订阅者3订阅主题 fault_info
@@ -165,30 +159,24 @@ func PrepareTimeWindowProducerQueue() {
 			global.Subscriber3TimeMutex.Lock()
 			// 判断是否是连续故障码
 			gap := time.Since(global.Subscriber3Time).Seconds()
-			if gap < 2 {
-				global.Subscriber3Time = time.Now()
-				global.Subscriber3TimeMutex.Unlock()
-				return
-			} else {
+			if gap > 2 {
 				// 2 不是连续故障码
 				global.Subscriber3Time = time.Now()
 				global.Subscriber3TimeMutex.Unlock()
 				subscriber3Mutex.Lock()
-				{
-					faultHappenTime := util.GetNowTimeCustom() // 获取当前故障发生时间
-					lastTimeWindow := util.GetLastTimeWindow() // 获取最后一个时间窗口
-					var faultLabel string
-					for _, f := range masterConfig.RuleOfFaultInfo {
-						faultLabel = f(data)
-						if faultLabel != "" {
-							saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
-							break
-						}
+				faultHappenTime := util.GetNowTimeCustom() // 获取当前故障发生时间
+				lastTimeWindow := util.GetLastTimeWindow() // 获取最后一个时间窗口
+				var faultLabel string
+				for _, f := range masterConfig.RuleOfFaultInfo {
+					faultLabel = f(data)
+					if faultLabel != "" {
+						saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
+						break
 					}
 				}
 				subscriber3Mutex.Unlock()
 			}
-
+			global.Subscriber3TimeMutex.Unlock()
 		}})
 	if err != nil {
 		log.GlobalLogger.Info("创建订阅者3发生故障:", err)
@@ -206,16 +194,14 @@ func PrepareTimeWindowProducerQueue() {
 				return
 			}
 			subscriber4Mutex.Lock()
-			{
-				faultHappenTime := util.GetNowTimeCustom() // 获取当前故障发生时间
-				lastTimeWindow := util.GetLastTimeWindow() // 获取最后一个时间窗口
-				var faultLabel string
-				for _, f := range masterConfig.RuleOfDataRead {
-					faultLabel = f(data)
-					if faultLabel != "" {
-						saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
-						break
-					}
+			faultHappenTime := util.GetNowTimeCustom() // 获取当前故障发生时间
+			lastTimeWindow := util.GetLastTimeWindow() // 获取最后一个时间窗口
+			var faultLabel string
+			for _, f := range masterConfig.RuleOfDataRead {
+				faultLabel = f(data)
+				if faultLabel != "" {
+					saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
+					break
 				}
 			}
 			subscriber4Mutex.Unlock()
@@ -254,7 +240,6 @@ func saveTimeWindow(faultLabel string, faultHappenTime string, lastTimeWindow *e
 			SlaveTopics:     slaveTopics,
 		}
 		log.GlobalLogger.Infof("不在旧故障窗口内,向生产者队列添加一个新窗口,【Lable】=%v,【FaultTime】=%v,【Length】=%v", newTimeWindow.Labels, newTimeWindow.FaultTime, newTimeWindow.Length)
-
 		util.AddTimeWindowToTimeWindowProducerQueue(newTimeWindow)
 	} else {
 		// 2-2 如果在旧故障窗口内