using System.Collections; using System.Collections.Generic; using UnityEngine; using DefaultNamespace; using static InterfaceManager; using System; using Newtonsoft; using Newtonsoft.Json; using System.Threading.Tasks; public class Deviceinformation : MonoSingleton { public List devices = new List(); public List qcbdequipments = new List(); public List elvequipments = new List(); public List dpmequipments = new List(); public List convoyorequipments = new List(); public List carequipments = new List(); void Start() { Task.Run(async () => await TraverseQueue()); } private async Task TraverseQueue() { await Task.Delay(5000); Debug.Log("开始调用"); if (MqttManager.Instance.messageQueue.Count > 0) { Debug.Log("队列里面有数据"); // 使用Dequeue方法来取出队列中的元素 while (MqttManager.Instance.messageQueue.TryDequeue(out string message)) { Allequipment str = JsonConvert.DeserializeObject(message); devices.Add(str); string data = str.device.Substring(0, 3); switch (data) { case "qcb": Qcbd qcbd = JsonConvert.DeserializeObject(str.message); qcbdequipments.Add(qcbd); Debug.Log(qcbd); break; case "elv": Elvequipment elvequipment = JsonConvert.DeserializeObject(str.message); elvequipments.Add(elvequipment); Debug.Log(elvequipment); break; case "dpm": Dpmequipment dpmequipment = JsonConvert.DeserializeObject(str.message); dpmequipments.Add(dpmequipment); Debug.Log(dpmequipment); break; case "con": Convoyorequipment convoyorequipment = JsonConvert.DeserializeObject(str.message); convoyorequipments.Add(convoyorequipment); Debug.Log(convoyorequipment); break; case "car": Carequipment carequipment = JsonConvert.DeserializeObject(str.message); carequipments.Add(carequipment); Debug.Log(carequipment); break; default: break; } } } } private void Datastructure(string str) { } void Update() { } }