U3D_TobaccoWarehouseISMDTSy.../Assets/Scripts/YL/Deviceinformation.cs

80 lines
2.9 KiB
C#

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<Deviceinformation>
{
public List<Allequipment> devices = new List<Allequipment>();
public List<Qcbd> qcbdequipments = new List<Qcbd>();
public List<Elvequipment> elvequipments = new List<Elvequipment>();
public List<Dpmequipment> dpmequipments = new List<Dpmequipment>();
public List<Convoyorequipment> convoyorequipments = new List<Convoyorequipment>();
public List<Carequipment> carequipments = new List<Carequipment>();
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<Allequipment>(message);
devices.Add(str);
string data = str.device.Substring(0, 3);
switch (data)
{
case "qcb":
Qcbd qcbd = JsonConvert.DeserializeObject<Qcbd>(str.message);
qcbdequipments.Add(qcbd);
Debug.Log(qcbd);
break;
case "elv":
Elvequipment elvequipment = JsonConvert.DeserializeObject<Elvequipment>(str.message);
elvequipments.Add(elvequipment);
Debug.Log(elvequipment);
break;
case "dpm":
Dpmequipment dpmequipment = JsonConvert.DeserializeObject<Dpmequipment>(str.message);
dpmequipments.Add(dpmequipment);
Debug.Log(dpmequipment);
break;
case "con":
Convoyorequipment convoyorequipment = JsonConvert.DeserializeObject<Convoyorequipment>(str.message);
convoyorequipments.Add(convoyorequipment);
Debug.Log(convoyorequipment);
break;
case "car":
Carequipment carequipment = JsonConvert.DeserializeObject<Carequipment>(str.message);
carequipments.Add(carequipment);
Debug.Log(carequipment);
break;
default:
break;
}
}
}
}
private void Datastructure(string str)
{
}
void Update()
{
}
}