LocationJump.go 910 B

123456789101112131415161718192021222324252627282930313233343536
  1. package main
  2. import (
  3. "cicv-data-closedloop/pjisuv_msgs"
  4. "cicv-data-closedloop/pjisuv_param"
  5. "fmt"
  6. "math"
  7. )
  8. func Topic() string {
  9. return "/cicv_location"
  10. }
  11. // Label todo 禁止存在下划线_
  12. func Label() string {
  13. return "LocationJump"
  14. }
  15. // 主进程的逻辑是先判断触发再缓存全局变量
  16. func Rule(data *pjisuv_msgs.PerceptionLocalization, param *pjisuv_param.PjisuvParam) string {
  17. defer func() {
  18. if r := recover(); r != nil {
  19. fmt.Println("Recovered from panic:", r)
  20. }
  21. }()
  22. if param.PositionXOfCicvLocation != 0 && param.PositionYOfCicvLocation != 0 {
  23. d := math.Sqrt((param.PositionXOfCicvLocation-data.PositionX)*(param.PositionXOfCicvLocation-data.PositionX) + (param.PositionYOfCicvLocation-data.PositionY)*(param.PositionYOfCicvLocation-data.PositionY))
  24. if d >= 2 {
  25. eventLabel := "LocationJump"
  26. fmt.Println(eventLabel)
  27. return "LocationJump"
  28. }
  29. }
  30. return ""
  31. }