AuLongStop.go 981 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package main
  2. import (
  3. "cicv-data-closedloop/pjisuv_msgs"
  4. "cicv-data-closedloop/pjisuv_param"
  5. "fmt"
  6. "time"
  7. )
  8. var (
  9. StartTime int64
  10. IsStopped bool
  11. )
  12. func Topic() string {
  13. return "/pj_vehicle_fdb_pub"
  14. }
  15. // Label todo 禁止存在下划线_
  16. func Label() string {
  17. return "AuLongStop"
  18. }
  19. func Rule(data *pjisuv_msgs.PerceptionLocalization, param pjisuv_param.PjisuvParam) string {
  20. if param.AutomodeOfPjVehicleFdbPub == 1 {
  21. if data.VelocityX < 0.5 {
  22. // 如果之前没有记录开始时间,记录当前时间
  23. if StartTime == 0 {
  24. StartTime = time.Now().Unix()
  25. }
  26. // 判断是否持续超过 50s
  27. if time.Now().Unix()-StartTime > 50 {
  28. if !IsStopped {
  29. event_label := "AuLongStop"
  30. fmt.Println(event_label)
  31. IsStopped = true
  32. return "AuLongStop"
  33. }
  34. }
  35. } else {
  36. // 如果速度大于 0.1,重置开始时间和停止标志
  37. StartTime = 0
  38. IsStopped = false
  39. }
  40. } else {
  41. StartTime = 0
  42. IsStopped = false
  43. }
  44. return ""
  45. }