package main import ( "cicv-data-closedloop/pjisuv_msgs" "cicv-data-closedloop/pjisuv_param" "fmt" "math" ) func Topic() string { return "/cicv_location" } // Label todo 禁止存在下划线_ func Label() string { return "LocationJump" } // 主进程的逻辑是先判断触发再缓存全局变量 func Rule(data *pjisuv_msgs.PerceptionLocalization, param *pjisuv_param.PjisuvParam) string { defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() if param.PositionXOfCicvLocation != 0 && param.PositionYOfCicvLocation != 0 { d := math.Sqrt((param.PositionXOfCicvLocation-data.PositionX)*(param.PositionXOfCicvLocation-data.PositionX) + (param.PositionYOfCicvLocation-data.PositionY)*(param.PositionYOfCicvLocation-data.PositionY)) if d >= 2 { eventLabel := "LocationJump" fmt.Println(eventLabel) return "LocationJump" } } return "" }