package main import ( "cicv-data-closedloop/pjisuv_msgs" "fmt" "math" "sync" "time" ) var ( StartTime int64 IsFollow bool ) func Topic() string { return "/tpperception" } // 禁止存在下划线_ func Label() string { return "CBLA" } func Rule(shareVars *sync.Map, data *pjisuv_msgs.PerceptionObjects) string { defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() OutsideWorkshopFlag, ok3 := shareVars.Load("OutsideWorkshopFlag") AbsSpeed, ok2 := shareVars.Load("AbsSpeed") if ok3 && ok2 && OutsideWorkshopFlag.(bool) && AbsSpeed.(float64) > 1 { for _, obj := range data.Objs { if obj.Type == 4 && obj.X >= 2 && obj.X <= 20 && math.Abs(float64(obj.Y)) <= 1.2 { if StartTime == 0 { StartTime = time.Now().Unix() } // 判断是否持续超过一分钟 if time.Now().Unix()-StartTime > 5 { if !IsFollow { event_label := "CBLA" fmt.Println(event_label) IsFollow = true return Label() } } } else { StartTime = 0 IsFollow = false } } } return "" }