build enviroment
This commit is contained in:
@@ -16,8 +16,11 @@ namespace Simulator.Data.Transport
|
||||
public enum AGVDataType
|
||||
{
|
||||
Moving,
|
||||
Loading,
|
||||
UnLoading
|
||||
LoadingStart,
|
||||
LoadingEnd,
|
||||
UnLoadingStart,
|
||||
UnLoadingEnd,
|
||||
Idle
|
||||
}
|
||||
public class AGVManager : SingletonScene<AGVManager>
|
||||
{
|
||||
@@ -106,7 +109,10 @@ namespace Simulator.Data.Transport
|
||||
{
|
||||
["from_node"] = "",
|
||||
["to_node"] = "",
|
||||
["entity_ids"] = new List<string>(),
|
||||
["entity_ids"] = new DataMask()
|
||||
{
|
||||
["entity_id"] = ""
|
||||
}
|
||||
};
|
||||
|
||||
agvLoadMapper = new DataMapper(agvLoadDataMask);
|
||||
@@ -137,22 +143,32 @@ namespace Simulator.Data.Transport
|
||||
switch (type)
|
||||
{
|
||||
case "agv":
|
||||
if (data.initial_node == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var agv = agvPool.GetItem($"{data.name}");
|
||||
agv.data = data;
|
||||
agv.UpdatePosition(AGVNodeManager.Instance.GetNodePosition(data.initial_node));
|
||||
agvMap.Add(data.name, agv);
|
||||
agv.dataType = AGVDataType.Idle;
|
||||
PlayerPropertyDataBase.Instance.CollectSpawnAGV(agv);
|
||||
break;
|
||||
case "afl":
|
||||
var afl = aflPool.GetItem($"{data.name}");
|
||||
afl.data = data;
|
||||
afl.UpdatePosition(AGVNodeManager.Instance.GetNodePosition(data.initial_node));
|
||||
agvMap.Add(data.name, afl);
|
||||
afl.dataType = AGVDataType.Idle;
|
||||
PlayerPropertyDataBase.Instance.CollectSpawnAGV(afl);
|
||||
break;
|
||||
case "forklift":
|
||||
var forkLift = forkLiftPool.GetItem($"{data.name}");
|
||||
forkLift.data = data;
|
||||
forkLift.UpdatePosition(AGVNodeManager.Instance.GetNodePosition(data.initial_node));
|
||||
agvMap.Add(data.name, forkLift);
|
||||
forkLift.dataType = AGVDataType.Idle;
|
||||
PlayerPropertyDataBase.Instance.CollectSpawnAGV(forkLift);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -170,13 +186,23 @@ namespace Simulator.Data.Transport
|
||||
DataRepository.Instance.MqttReceiver.AddTopic($"simulation/{SimulationConfig.SimulationCode}/components/+/{data.name}/+/loading_end");
|
||||
var mqttConfigAGVLoading = new MqttSubscriptionConfig($"simulation/{SimulationConfig.SimulationCode}/components/+/{data.name}/+/loading_end");
|
||||
mqttConfigAGVLoading.SetDataMapper(agvLoadMapper);
|
||||
mqttConfigAGVLoading.SetHandler((value) => OnUpdateData(value, AGVDataType.Loading));
|
||||
mqttConfigAGVLoading.SetHandler((value) => OnUpdateData(value, AGVDataType.LoadingEnd));
|
||||
DataRepository.Instance.MqttReceiver.Add(mqttConfigAGVLoading);
|
||||
DataRepository.Instance.MqttReceiver.AddTopic($"simulation/{SimulationConfig.SimulationCode}/components/+/{data.name}/+/loading_start");
|
||||
var mqttConfigAGVLoadingStart = new MqttSubscriptionConfig($"simulation/{SimulationConfig.SimulationCode}/components/+/{data.name}/+/loading_start");
|
||||
mqttConfigAGVLoadingStart.SetDataMapper(agvLoadMapper);
|
||||
mqttConfigAGVLoadingStart.SetHandler((value) => OnUpdateData(value, AGVDataType.LoadingStart));
|
||||
DataRepository.Instance.MqttReceiver.Add(mqttConfigAGVLoading);
|
||||
DataRepository.Instance.MqttReceiver.AddTopic($"simulation/{SimulationConfig.SimulationCode}/components/+/{data.name}/+/unloading_end");
|
||||
var mqttConfigAGVUnLoading = new MqttSubscriptionConfig($"simulation/{SimulationConfig.SimulationCode}/components/+/{data.name}/+/unloading_end");
|
||||
mqttConfigAGVUnLoading.SetDataMapper(agvUnLoadMapper);
|
||||
mqttConfigAGVUnLoading.SetHandler((value) => OnUpdateData(value, AGVDataType.UnLoading));
|
||||
mqttConfigAGVUnLoading.SetHandler((value) => OnUpdateData(value, AGVDataType.UnLoadingEnd));
|
||||
DataRepository.Instance.MqttReceiver.Add(mqttConfigAGVUnLoading);
|
||||
DataRepository.Instance.MqttReceiver.AddTopic($"simulation/{SimulationConfig.SimulationCode}/components/+/{data.name}/+/unloading_start");
|
||||
var mqttConfigAGVUnLoadingStart = new MqttSubscriptionConfig($"simulation/{SimulationConfig.SimulationCode}/components/+/{data.name}/+/unloading_start");
|
||||
mqttConfigAGVUnLoadingStart.SetDataMapper(agvUnLoadMapper);
|
||||
mqttConfigAGVUnLoadingStart.SetHandler((value) => OnUpdateData(value, AGVDataType.UnLoadingStart));
|
||||
DataRepository.Instance.MqttReceiver.Add(mqttConfigAGVUnLoadingStart);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,31 +214,24 @@ namespace Simulator.Data.Transport
|
||||
if (obj == null) return;
|
||||
var componentName = obj.GetString("component_id");
|
||||
AGV agv = agvMap[componentName];
|
||||
/*
|
||||
Debug.Log(obj.GetString("component_id"));
|
||||
Debug.Log(obj.GetString("component_type"));
|
||||
switch (componenttype)
|
||||
{
|
||||
case "agv":
|
||||
agv = agvPool.GetItem(obj.GetString("component_id")!);
|
||||
break;
|
||||
case "afl":
|
||||
agv = aflPool.GetItem(obj.GetString("component_id")!);
|
||||
break;
|
||||
case "forklift":
|
||||
agv = forkLiftPool.GetItem(obj.GetString("component_id")!);
|
||||
break;
|
||||
}
|
||||
*/
|
||||
switch (type)
|
||||
{
|
||||
case AGVDataType.Moving:
|
||||
agv.SetTargetPosition(obj);
|
||||
agv.dataType = AGVDataType.Moving;
|
||||
break;
|
||||
case AGVDataType.Loading:
|
||||
case AGVDataType.LoadingEnd:
|
||||
agv.LoadEntity(obj);
|
||||
agv.dataType = AGVDataType.Idle;
|
||||
break;
|
||||
case AGVDataType.UnLoading:
|
||||
case AGVDataType.LoadingStart:
|
||||
agv.dataType = AGVDataType.LoadingStart;
|
||||
break;
|
||||
case AGVDataType.UnLoadingEnd:
|
||||
agv.dataType = AGVDataType.Idle;
|
||||
break;
|
||||
case AGVDataType.UnLoadingStart:
|
||||
agv.dataType = AGVDataType.UnLoadingStart;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user