124 lines
3.2 KiB
C#
124 lines
3.2 KiB
C#
using Simulator.Data.Transport;
|
|
using System;
|
|
using UnityEngine;
|
|
using UVC.Core;
|
|
using UVC.Data.Core;
|
|
|
|
public class PlayerPropertyDataBase : SingletonScene<PlayerPropertyDataBase>
|
|
{
|
|
public PlayPropertyData data=new PlayPropertyData();
|
|
public event Action<PlayPropertyData> onPlay;
|
|
public static bool isPlaying = false;
|
|
|
|
public void PlayFunc()
|
|
{
|
|
onPlay?.Invoke(data);
|
|
isPlaying = true;
|
|
}
|
|
|
|
public void GetMqttData(IDataObject data)
|
|
{
|
|
DataObject? obj = data as DataObject;
|
|
if (obj == null) return;
|
|
var datas = obj.GetDataObject("data");
|
|
if (datas == null) return;
|
|
CollectSimulationStateData(datas.GetString("status"));
|
|
}
|
|
|
|
public void CollectSimulationStateData(string state)
|
|
{
|
|
switch (state)
|
|
{
|
|
case "pending":
|
|
data.simulation_State = "시뮬레이션 실행 대기중";
|
|
break;
|
|
case "created":
|
|
data.simulation_State = "시뮬레이션 생성 됨";
|
|
break;
|
|
case "running":
|
|
data.simulation_State = "시뮬레이션 실행 중";
|
|
break;
|
|
case "completed":
|
|
data.simulation_State = "시뮬레이션 완료";
|
|
break;
|
|
case "failed":
|
|
data.simulation_State = "시뮬레이션 실행 실패";
|
|
break;
|
|
case "cancelled":
|
|
data.simulation_State = "시뮬레이션 취소 됨";
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void CollectGenerateData(int count)
|
|
{
|
|
data.total_Generate += count;
|
|
}
|
|
|
|
public void CollectUseData(int count)
|
|
{
|
|
data.total_Use += count;
|
|
}
|
|
|
|
public void CollectTotalAGVData(int count)
|
|
{
|
|
data.agv_Total += count;
|
|
}
|
|
|
|
public void CollectMovingAGVData(int count)
|
|
{
|
|
data.agv_Moving += count;
|
|
}
|
|
|
|
public void CollectIdleData(int count)
|
|
{
|
|
data.agv_Idle += count;
|
|
}
|
|
|
|
public void CollectLoadingData(int count)
|
|
{
|
|
data.agv_Loading += count;
|
|
}
|
|
|
|
public void CollectSpawnAGV(AGV agv)
|
|
{
|
|
CollectTotalAGVData(1);
|
|
CollectIdleData(1);
|
|
agv.onStateUpdated += CollectChangeAGVStateData;
|
|
}
|
|
|
|
public void CollectChangeAGVStateData(AGVDataType before, AGVDataType after)
|
|
{
|
|
switch (before)
|
|
{
|
|
case AGVDataType.Idle:
|
|
CollectIdleData(-1);
|
|
break;
|
|
case AGVDataType.LoadingStart:
|
|
CollectLoadingData(-1);
|
|
break;
|
|
case AGVDataType.UnLoadingStart:
|
|
CollectLoadingData(-1);
|
|
break;
|
|
case AGVDataType.Moving:
|
|
CollectMovingAGVData(-1);
|
|
break;
|
|
}
|
|
switch (after)
|
|
{
|
|
case AGVDataType.Idle:
|
|
CollectIdleData(1);
|
|
break;
|
|
case AGVDataType.LoadingStart:
|
|
CollectLoadingData(1);
|
|
break;
|
|
case AGVDataType.UnLoadingStart:
|
|
CollectLoadingData(1);
|
|
break;
|
|
case AGVDataType.Moving:
|
|
CollectMovingAGVData(1);
|
|
break;
|
|
}
|
|
}
|
|
}
|