judge_local.go 957 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package pkg
  2. import (
  3. "cicv-data-closedloop/aarch64/pjibot_guide/common/config"
  4. "encoding/json"
  5. "fmt"
  6. "log"
  7. "time"
  8. )
  9. func GetLocalStatus(status *string, turnLength int) {
  10. // 轮询本地任务状态
  11. for {
  12. time.Sleep(time.Duration(turnLength) * time.Second)
  13. _, msg, err := config.WsConn.ReadMessage()
  14. if err != nil {
  15. log.Println("Error in receive:", err)
  16. break
  17. }
  18. log.Printf("Received: %s\n", msg)
  19. // 将响应字节解码为JSON
  20. var statusMessage config.StatusMessage
  21. err = json.Unmarshal(msg, &statusMessage)
  22. if err != nil {
  23. log.Println("Error in receive:", err)
  24. break
  25. }
  26. if statusMessage.Type == "push" && statusMessage.Topic == "robotStatus" {
  27. fmt.Println("statusMessage:", statusMessage)
  28. data := statusMessage.Data.(map[string]interface{})
  29. fmt.Println("statusMessage.Data", data)
  30. fmt.Println("statusMessage.Data[\"taskStatus\"]", data["taskStatus"])
  31. *status = data["taskStatus"].(string)
  32. }
  33. }
  34. }