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 } fmt.Println("websocket:", config.WsConn) fmt.Println("statusMessage:", statusMessage) 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) } } }