90 lines
3.7 KiB
C#
90 lines
3.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using Newtonsoft.Json;
|
|
using System.Reflection;
|
|
|
|
namespace XED.Machine
|
|
{
|
|
public class DataDistributer : MonoBehaviour
|
|
{
|
|
public event Action<string> onAMRDestinationDataReceived;
|
|
public event Action<string,ASRS_Lifter_Class> onLifterDataReceived;
|
|
public event Action<string,ASRS_StackerCrane_Class> onStackerDataReceived;
|
|
public event Action<string,ASRS_Class> onASRSDataReceived;
|
|
public event Action<string,Supplier_Class> onSupplierDataReceived;
|
|
public event Action<string,COBOT_Class> onCobotDataReceived;
|
|
public event Action<string,AMR_Class> onAMRDataReceived;
|
|
|
|
void Start()
|
|
{
|
|
FindObjectOfType<DataReader>().onMessageReceived += DataDistribute;
|
|
}
|
|
|
|
public void DataDistribute(string topic, string data)
|
|
{
|
|
AMR_Class amr;
|
|
ASRS_Lifter_Class lifter;
|
|
ASRS_StackerCrane_Class stacker;
|
|
ASRS_Class asrs;
|
|
Supplier_Class supplier;
|
|
COBOT_Class cobot;
|
|
switch (topic)
|
|
{
|
|
case "amr":
|
|
onAMRDestinationDataReceived?.Invoke(data);
|
|
break;
|
|
case "lifter":
|
|
lifter = JsonConvert.DeserializeObject<ASRS_Lifter_Class>(data);
|
|
onLifterDataReceived?.Invoke(topic, lifter);
|
|
break;
|
|
case "stacker":
|
|
stacker = JsonConvert.DeserializeObject<ASRS_StackerCrane_Class>(data);
|
|
onStackerDataReceived?.Invoke(topic, stacker);
|
|
break;
|
|
case "cargo":
|
|
asrs = JsonConvert.DeserializeObject<ASRS_Class>(data);
|
|
onASRSDataReceived?.Invoke(topic, asrs);
|
|
break;
|
|
case "supplier":
|
|
supplier = JsonConvert.DeserializeObject<Supplier_Class>(data);
|
|
onSupplierDataReceived?.Invoke(topic, supplier);
|
|
break;
|
|
case "H-ACS.PLC-SC_Cobot_Opc1":
|
|
cobot = JsonConvert.DeserializeObject<COBOT_Class>(data);
|
|
onCobotDataReceived?.Invoke(topic, cobot);
|
|
break;
|
|
case "H-ACS.PLC-SC_Cobot_Opc2":
|
|
cobot = JsonConvert.DeserializeObject<COBOT_Class>(data);
|
|
onCobotDataReceived?.Invoke(topic, cobot);
|
|
break;
|
|
case "H-ACS.PLC-SC_Cobot_Opc3":
|
|
cobot = JsonConvert.DeserializeObject<COBOT_Class>(data);
|
|
onCobotDataReceived?.Invoke(topic, cobot);
|
|
break;
|
|
case "H-ACS.PLC-SC_Cobot_Opc4":
|
|
cobot = JsonConvert.DeserializeObject<COBOT_Class>(data);
|
|
onCobotDataReceived?.Invoke(topic, cobot);
|
|
break;
|
|
case "R_137.ACS":
|
|
amr = JsonConvert.DeserializeObject<AMR_Class>(data);
|
|
onAMRDataReceived?.Invoke(topic, amr);
|
|
break;
|
|
case "R_147.ACS":
|
|
amr = JsonConvert.DeserializeObject<AMR_Class>(data);
|
|
onAMRDataReceived?.Invoke(topic, amr);
|
|
break;
|
|
case "R_153.ACS":
|
|
amr = JsonConvert.DeserializeObject<AMR_Class>(data);
|
|
onAMRDataReceived?.Invoke(topic, amr);
|
|
break;
|
|
case "R_156.ACS":
|
|
amr = JsonConvert.DeserializeObject<AMR_Class>(data);
|
|
onAMRDataReceived?.Invoke(topic, amr);
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|