package main import ( "cicv-data-closedloop/pjisuv_msgs" "fmt" "sync" ) func Topic() string { return "/tpperception" } // 禁止存在下划线_ func Label() string { return "NumTargetsExceedThreshold" } func Rule(shareVars *sync.Map, data *pjisuv_msgs.PerceptionObjects) string { NumTargets := 0 defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() velocityXOfCicvLocation, ok := shareVars.Load("VelocityXOfCicvLocation") OutsideWorkshopFlag, ok1 := shareVars.Load("OutsideWorkshopFlag") OutsideWorkshopFlag = OutsideWorkshopFlag.(bool) if ok && ok1 { if velocityXOfCicvLocation.(float64) > 2.5 && len(data.Objs) > 6 && OutsideWorkshopFlag == true { for _, obj := range data.Objs { if obj.Type != 0 && obj.X >= 2 { NumTargets++ } } if NumTargets >= 5 { return Label() } } } return "" }