TurnAround.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package main
  2. import (
  3. "cicv-data-closedloop/pjisuv_msgs"
  4. "fmt"
  5. "math"
  6. "sync"
  7. )
  8. // 记得在produce_window.go中将Yowslice的注释解除!!!
  9. var (
  10. count1 int = 0
  11. )
  12. func Topic() string {
  13. return "/cicv_location"
  14. }
  15. // 禁止存在下划线_
  16. func Label() string {
  17. return "TurnAround"
  18. }
  19. func IfTurnAround(Yowslice []float64) bool {
  20. diffangle := math.Abs(Yowslice[0] - Yowslice[len(Yowslice)-1])
  21. //fmt.Println(diffangle)
  22. if diffangle >= 110 {
  23. return true
  24. }
  25. return false
  26. }
  27. func Rule(shareVars *sync.Map, data *pjisuv_msgs.PerceptionLocalization) string {
  28. defer func() {
  29. if r := recover(); r != nil {
  30. fmt.Println("Recovered from panic:", r)
  31. }
  32. }()
  33. if count1%200 == 0 {
  34. OutsideWorkshopFlag, ok3 := shareVars.Load("OutsideWorkshopFlag")
  35. Yowslice, ok := shareVars.Load("Yowslice")
  36. if ok3 && ok && OutsideWorkshopFlag.(bool) {
  37. if IfTurnAround(Yowslice.([]float64)) {
  38. eventLabel := "TurnAround"
  39. fmt.Println(eventLabel)
  40. count1 = 1
  41. Yowslice = make([]float64, 0)
  42. shareVars.Store("Yowslice", Yowslice)
  43. return Label()
  44. }
  45. }
  46. count1 = 1
  47. }
  48. count1++
  49. return ""
  50. }