孟令鑫 1 år sedan
förälder
incheckning
114d2ba3a5

+ 1 - 0
trigger/pjisuv/cicv_location/brake/main/brake.go

@@ -8,6 +8,7 @@ func Topic() string {
 	return "/cicv_location"
 }
 
+// Label todo 禁止存在下划线_
 func Label() string {
 	return "brake"
 }

+ 35 - 0
trigger/pjisuv/fault_info/errorcode/main/errorcode.go

@@ -0,0 +1,35 @@
+package main
+
+import (
+	"cicv-data-closedloop/pjisuv_msgs"
+	"fmt"
+)
+
+func Topic() string {
+	return "/fault_info"
+}
+
+// Label todo 禁止存在下划线_
+func Label() string {
+	return "errorcode"
+}
+
+func Rule(data *pjisuv_msgs.FaultVec) string {
+	errorcodeStr := ""
+	faultFlag := false
+	faultList := data.InfoVec
+	if len(faultList) > 0 {
+		for _, fault := range faultList {
+			errorcodeStr = errorcodeStr + toString(fault.ErrorCode)
+			faultFlag = true
+		}
+	}
+	if faultFlag {
+		return "errorcode"
+	}
+	return ""
+}
+
+func toString(value interface{}) string {
+	return fmt.Sprintf("%v", value)
+}

+ 58 - 0
trigger/pjisuv/pj_control_pub/CmdStrAngleUnstable/main/CmdStrAngleUnstable.go

@@ -0,0 +1,58 @@
+package main
+
+import (
+	"cicv-data-closedloop/pjisuv_msgs"
+	"math"
+	"time"
+)
+
+var (
+	cacheSlice       []float64
+	timeWindowLength = 3
+	timeWindowBegin  time.Time
+)
+
+func Topic() string {
+	return "/pj_control_pub"
+}
+
+// Label todo 禁止存在下划线_
+func Label() string {
+	return "CmdStrAngleUnstable"
+}
+
+func Rule(data *pjisuv_msgs.CommonVehicleCmd) string {
+	// 初始化第一次
+	if len(cacheSlice) == 0 {
+		cacheSlice = append(cacheSlice, data.ICPVCmdStrAngle)
+		timeWindowBegin = time.Now()
+		return ""
+	}
+	// 每3秒判断一次
+	if time.Since(timeWindowBegin).Seconds() > float64(timeWindowLength) {
+		numCount := countSignChange(cacheSlice)
+		if numCount > 3 {
+			return "CmdStrAngleUnstable"
+		}
+	}
+	return ""
+}
+
+func countSignChange(numbers []float64) int {
+	var prevSign bool
+	var prevValue float64
+	count := 0
+	if len(numbers) > 1 {
+		prevSign = numbers[0] >= 0.0 // 记录前一个数的正负符号
+		prevValue = numbers[0]
+	}
+	for _, num := range numbers[1:] {
+		currentSign := num >= 0 // 计算当前数的正负符号
+		currentValue := num
+		if prevSign != currentSign && (math.Abs(prevValue) > 10 || math.Abs(currentValue) > 10) {
+			count += 1
+		}
+		prevSign = currentSign
+	}
+	return count
+}

+ 2 - 2
trigger/pjisuv/tpperception/TTC/main/TTC.go

@@ -2,7 +2,6 @@ package main
 
 import (
 	"cicv-data-closedloop/pjisuv_msgs"
-	"fmt"
 	"math"
 )
 
@@ -10,6 +9,7 @@ func Topic() string {
 	return "/tpperception"
 }
 
+// Label todo 禁止存在下划线_
 func Label() string {
 	return "TTC"
 }
@@ -20,7 +20,7 @@ func Rule(data *pjisuv_msgs.PerceptionObjects, velocityX float64, velocityY floa
 			theta := DegreesToRadians(yaw)
 			vxrel := (float64(obj.Vxabs)-velocityX)*math.Cos(theta) + (float64(obj.Vyabs)-velocityY)*math.Sin(theta)
 			ttc := -((float64(obj.X) - 5.2) / (vxrel + 0.001))
-			fmt.Println("TTC值为:", ttc)
+			//fmt.Println("TTC值为:", ttc)
 			if ttc >= 0 && ttc <= 5 {
 				return "TTC"
 			}