فهرست منبع

add HuaLong & Cadence trigger

zwh 9 ماه پیش
والد
کامیت
d536eadf9c

+ 4 - 0
aarch64/pjisuv/master/service/produce_window.go

@@ -34,6 +34,8 @@ var (
 	}
 	cicvLocationTime = time.Now()
 	// -----------------------------共享变量
+	//cicv_location
+	AccelXSlice = []float64{}
 	// /tpperception
 	ObjDicOfTpperception      = make(map[uint32][][]float32)
 	objTypeDicOfTpperception  = make(map[uint32]uint8)
@@ -599,6 +601,8 @@ func ProduceWindow() {
 						}
 						subscribersTimeMutexes[i].Unlock()
 						// 更新共享变量
+						AccelXSlice = append(AccelXSlice, data.AccelX)
+						shareVars.Store("AccelXSlice", AccelXSlice)
 						shareVars.Store("VelocityXOfCicvLocation", data.VelocityX)
 						shareVars.Store("VelocityYOfCicvLocation", data.VelocityY)
 						shareVars.Store("VelocityZOfCicvLocation", data.VelocityZ)

+ 86 - 0
trigger/pjisuv/cicv_ticker/Cadence/main/Cadence.go

@@ -0,0 +1,86 @@
+package main
+
+import (
+	"cicv-data-closedloop/pjisuv_ticker"
+	"fmt"
+	"sync"
+	"time"
+)
+
+var (
+	threshold float64 = 0.4
+)
+
+// 定时任务触发器固定的
+func Topic() string {
+	return pjisuv_ticker.TickerTopic
+}
+
+// ******* 禁止存在下划线_
+// 触发器标记
+
+func Label() string {
+	return "Cadence"
+}
+
+func Rule(shareVars *sync.Map) {
+	defer func() {
+		if r := recover(); r != nil {
+			fmt.Println("Recovered from panic:", r)
+		}
+	}()
+	// 1 使用goroutine
+	go func(shareVars *sync.Map) {
+		// 2 定义触发器的间隔时间
+		ticker := time.NewTicker(time.Duration(6) * time.Second)
+		defer ticker.Stop()
+		// 3 运行一个无限循环
+		for {
+			select {
+			// 定时器触发时执行的代码
+			case <-ticker.C:
+				FinalCallback(shareVars)
+
+			}
+		}
+	}(shareVars)
+}
+func countChanges(slice []float64) int {
+	count := 0
+lable1:
+	for i := 0; i < len(slice); {
+		if slice[i] <= -threshold || slice[i] > threshold {
+			for j := 0; j < len(slice)-i-1; j++ {
+				if (slice[i] <= -threshold && slice[1+i+j] >= threshold) || (slice[i] >= threshold && slice[1+i+j] <= -threshold) {
+					count++
+					i = i + j + 1
+					continue lable1
+				}
+			}
+			break lable1
+		} else {
+			i++
+		}
+
+	}
+	return count
+}
+
+func FinalCallback(shareVars *sync.Map) {
+	OutsideWorkshopFlag, ok := shareVars.Load("OutsideWorkshopFlag")
+	AccelXSlice, ok1 := shareVars.Load("AccelXSlice")
+
+	if ok && ok1 && OutsideWorkshopFlag.(bool) == true {
+		count := countChanges(AccelXSlice.([]float64))
+		if count >= 3 {
+			event_lable := "Cadence"
+			fmt.Println(event_lable)
+			pjisuv_ticker.TickerChan <- pjisuv_ticker.TickInfo{FaultLabel: Label(), FaultHappenTime: pjisuv_ticker.GetNowTimeCustom()}
+		}
+
+		AccelXSlice = []float64{}
+		shareVars.Store("AccelXSlice", AccelXSlice)
+
+	}
+
+}

+ 1 - 0
trigger/pjisuv/cicv_ticker/FrontVehicleBrake/main/FrontVehicleBrake.go

@@ -71,6 +71,7 @@ func FinalCallback(shareVars *sync.Map) {
 		}
 
 		ObjDicOfTpperception = make(map[uint32][][]float32)
+		shareVars.Store("ObjDicOfTpperception", ObjDicOfTpperception)
 	}
 
 }

+ 1 - 0
trigger/pjisuv/cicv_ticker/FrontVehicleCutInFar/main/FrontVehicleCutInFar.go

@@ -76,6 +76,7 @@ func FinalCallback(shareVars *sync.Map) {
 		}
 
 		ObjDicOfTpperception = make(map[uint32][][]float32)
+		shareVars.Store("ObjDicOfTpperception", ObjDicOfTpperception)
 	}
 
 }

+ 1 - 0
trigger/pjisuv/cicv_ticker/FrontVehicleCutInNear/main/FrontVehicleCutInNear.go

@@ -76,6 +76,7 @@ func FinalCallback(shareVars *sync.Map) {
 		}
 
 		ObjDicOfTpperception = make(map[uint32][][]float32)
+		shareVars.Store("ObjDicOfTpperception", ObjDicOfTpperception)
 	}
 
 }

+ 1 - 0
trigger/pjisuv/cicv_ticker/FrontVehicleCutOutFar/main/FrontVehicleCutOutFar.go

@@ -77,6 +77,7 @@ func FinalCallback(shareVars *sync.Map) {
 		}
 
 		ObjDicOfTpperception = make(map[uint32][][]float32)
+		shareVars.Store("ObjDicOfTpperception", ObjDicOfTpperception)
 	}
 
 }

+ 1 - 0
trigger/pjisuv/cicv_ticker/FrontVehicleCutOutNear/main/FrontVehicleCutOutNear.go

@@ -76,6 +76,7 @@ func FinalCallback(shareVars *sync.Map) {
 		}
 
 		ObjDicOfTpperception = make(map[uint32][][]float32)
+		shareVars.Store("ObjDicOfTpperception", ObjDicOfTpperception)
 	}
 
 }

+ 1 - 0
trigger/pjisuv/cicv_ticker/RearVehicleApproach/main/RearVehicleApproach.go

@@ -70,6 +70,7 @@ func FinalCallback(shareVars *sync.Map) {
 		}
 
 		ObjDicOfTpperception = make(map[uint32][][]float32)
+		shareVars.Store("ObjDicOfTpperception", ObjDicOfTpperception)
 	}
 
 }