LingxinMeng před 11 měsíci
rodič
revize
15a9736dbb

+ 2 - 2
aarch64/pjisuv/master/config/master_trigger_config.go

@@ -175,7 +175,7 @@ var (
 
 	//39
 	TopicOfPjVehicleFdbPub = "/pj_vehicle_fdb_pub"
-	RuleOfPjVehicleFdbPub  []func(data *pjisuv_msgs.VehicleFdb, param entity.PjisuvParam) string
+	RuleOfPjVehicleFdbPub  []func(data *pjisuv_msgs.VehicleFdb, param *entity.PjisuvParam) string
 
 	LabelMapTriggerId sync.Map
 )
@@ -477,7 +477,7 @@ func InitTriggerConfig() {
 			}
 			RuleOfDataRead = append(RuleOfDataRead, f)
 		} else if TopicOfPjVehicleFdbPub == topic2 { //39
-			f, ok := rule.(func(data *pjisuv_msgs.VehicleFdb, param entity.PjisuvParam) string)
+			f, ok := rule.(func(data *pjisuv_msgs.VehicleFdb, param *entity.PjisuvParam) string)
 			if ok != true {
 				c_log.GlobalLogger.Error("插件", triggerLocalPath, "中的Topic方法必须是(func(data *pjisuv_msgs.VehicleFdb) string):", err)
 				continue

+ 1 - 7
aarch64/pjisuv/master/service/produce_window.go

@@ -1114,12 +1114,6 @@ func PrepareTimeWindowProducerQueue() {
 				Node:  commonConfig.RosNode,
 				Topic: topic,
 				Callback: func(data *pjisuv_msgs.VehicleFdb) {
-					// 更新共享变量
-					mutexOfPjControlPub.RLock()
-					{
-						pjisuvParam.AutomodeOfPjVehicleFdbPub = data.Automode
-					}
-					mutexOfPjControlPub.RUnlock()
 					subscribersTimeMutexes[i].Lock()
 					if time.Since(subscribersTimes[i]).Seconds() > 1 {
 						subscribersMutexes[i].Lock()
@@ -1127,7 +1121,7 @@ func PrepareTimeWindowProducerQueue() {
 						lastTimeWindow := commonEntity.GetLastTimeWindow() // 获取最后一个时间窗口
 						var faultLabel string
 						for _, f := range masterConfig.RuleOfPjVehicleFdbPub {
-							faultLabel = f(data, pjisuvParam)
+							faultLabel = f(data, &pjisuvParam)
 							if faultLabel != "" {
 								saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
 								subscribersTimes[i] = time.Now()

+ 5 - 4
trigger/pjisuv/pj_vehicle_fdb_pub/DriverTakeOver/main/DriverTakeOver.go

@@ -24,10 +24,11 @@ func Label() string {
 	return "DriverTakeOver"
 }
 
-func Rule(data *pjisuv_msgs.VehicleFdb, param entity.PjisuvParam) string {
+func Rule(data *pjisuv_msgs.VehicleFdb, param *entity.PjisuvParam) string {
+	label := ""
 	if data.Automode == 0 && param.AutomodeOfPjVehicleFdbPub == 1 {
-		return "DriverTakeOver"
-	} else {
-		return ""
+		label = "DriverTakeOver"
 	}
+	param.AutomodeOfPjVehicleFdbPub = data.Automode
+	return label
 }