1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package pkg
- import (
- "cicv-data-closedloop/aarch64/pjibot_guide/common/config"
- "encoding/json"
- "fmt"
- "log"
- "time"
- )
- // idle 空闲状态,此状态下机器人可进行任务下发
- // running 繁忙状态,此状态机器人不接受新任务
- // error 错误状态(硬件,不能正常工作的)
- func GetLocalStatus(localStatus *string, lastLocalStatus *string, turnLength int) {
- defer config.WsConn.Close()
- // 轮询本地任务状态
- for {
- time.Sleep(time.Duration(turnLength) * time.Second)
- *lastLocalStatus = *localStatus
- _, msg, err := config.WsConn.ReadMessage()
- if err != nil {
- log.Println("Error in receive:", err)
- break
- }
- //log.Printf("Received: %s\n", msg)
- // 将响应字节解码为JSON
- var statusMessage config.StatusMessage
- err = json.Unmarshal(msg, &statusMessage)
- if err != nil {
- log.Println("Error in receive:", err)
- break
- }
- if statusMessage.Type == "push" && statusMessage.Topic == "robotStatus" {
- //fmt.Println("statusMessage:", statusMessage)
- data := statusMessage.Data.(map[string]interface{})
- //fmt.Println("statusMessage.Data", data)
- fmt.Println("statusMessage.Data[\"status\"]", data["status"])
- *localStatus = data["status"].(string)
- }
- }
- }
|