package main import ( "cicv-data-closedloop/pjisuv_msgs" "cicv-data-closedloop/pjisuv_param" "fmt" "math" ) func Topic() string { return "/tpperception" } // Label todo 禁止存在下划线_ func Label() string { return "TrafficCongestion" } func Rule(data *pjisuv_msgs.PerceptionObjects, param *pjisuv_param.PjisuvParam) string { NumTargets := 0 defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() if param.VelocityXOfCicvLocation < 3.5 && len(data.Objs) > 3 { for _, obj := range data.Objs { if (obj.Type == 2 || obj.Type == 3) && math.Abs(float64(obj.Y)) <= 2.5 && math.Abs(float64(obj.X)) <= 20 && obj.Speed <= 4 { NumTargets++ } } //fmt.Println(NumTargets) if NumTargets >= 3 { return "TrafficCongestion" } } return "" }