From e86848aa0e7b1e08ad209528bee171e693f632cb Mon Sep 17 00:00:00 2001 From: lwj Date: Thu, 29 May 2025 11:36:41 +0900 Subject: [PATCH] fix conv --- Assets/Resources/Models/AssemblyLine.prefab | 135 +++++++++++++++++- .../Resources/Models/AssemblyLine.prefab.meta | 2 +- .../SimulationModelConveyor.cs | 48 ++++++- Assets/WorkSpace/LH/MQTTDataBase.cs | 2 +- Assets/WorkSpace/LWJ/SaveLoadmanager.cs | 87 +++++++++++ 5 files changed, 262 insertions(+), 12 deletions(-) diff --git a/Assets/Resources/Models/AssemblyLine.prefab b/Assets/Resources/Models/AssemblyLine.prefab index a3cd414b..26632a19 100644 --- a/Assets/Resources/Models/AssemblyLine.prefab +++ b/Assets/Resources/Models/AssemblyLine.prefab @@ -9,7 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 6630605483932097968} - - component: {fileID: 5171047144740992173} + - component: {fileID: -8728010719361298920} m_Layer: 0 m_Name: AssemblyLine m_TagString: Untagged @@ -31,9 +31,12 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2351775973713354599} + - {fileID: 150297742223292913} + - {fileID: 5944348266847543735} + - {fileID: 2251514371132152866} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &5171047144740992173 +--- !u!114 &-8728010719361298920 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -46,9 +49,71 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: modelName: AssemblyLine - modelType: Move + modelType: Conveyor modelID: nodeID: +--- !u!1 &2840629559553155426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5944348266847543735} + m_Layer: 0 + m_Name: startPosition + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5944348266847543735 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2840629559553155426} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.781, y: 1.24, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6630605483932097968} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7132286700177672932 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2251514371132152866} + m_Layer: 0 + m_Name: endPosition + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2251514371132152866 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7132286700177672932} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.762, y: 1.24, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6630605483932097968} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1510943800273267816 PrefabInstance: m_ObjectHideFlags: 0 @@ -63,7 +128,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: -1.275 objectReference: {fileID: 0} - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} propertyPath: m_LocalPosition.y @@ -111,3 +176,65 @@ Transform: m_CorrespondingSourceObject: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} m_PrefabInstance: {fileID: 1510943800273267816} m_PrefabAsset: {fileID: 0} +--- !u!1001 &3909453952984632062 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6630605483932097968} + m_Modifications: + - target: {fileID: 3656036082104082164, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_Name + value: SM_AssemblyLine01 (1) + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalPosition.x + value: 1.16 + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} +--- !u!4 &150297742223292913 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3770881403112551183, guid: 69e0d0d3b9856f540a0447f967fce8d9, type: 3} + m_PrefabInstance: {fileID: 3909453952984632062} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Resources/Models/AssemblyLine.prefab.meta b/Assets/Resources/Models/AssemblyLine.prefab.meta index a241db9c..eab19974 100644 --- a/Assets/Resources/Models/AssemblyLine.prefab.meta +++ b/Assets/Resources/Models/AssemblyLine.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f50ce1ac65401334c86e29646a5d9e9a +guid: 99c413344ba89024c93c3be296b85fcf PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Scripts/SimulationModels/SimulationModelConveyor.cs b/Assets/Scripts/SimulationModels/SimulationModelConveyor.cs index 3a5424a5..c036c2fe 100644 --- a/Assets/Scripts/SimulationModels/SimulationModelConveyor.cs +++ b/Assets/Scripts/SimulationModels/SimulationModelConveyor.cs @@ -18,6 +18,7 @@ public class SimulationModelConveyor : SimulationModel int transportTime; float elapseTime; string inputQueueID; + string inputStoreID; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { @@ -78,7 +79,19 @@ public class SimulationModelConveyor : SimulationModel //var tmpModel = Resources.Load(string.Format("{0}/{1}", resourcePath, "Box_Pallet")); //targetCargo = Instantiate(tmpModel); - SimulationModel model = DataManager.I.GetModel(inputQueueID); + + + SimulationModel model = new SimulationModel(); + + if (!string.IsNullOrEmpty(inputQueueID)) + { + model = DataManager.I.GetModel(inputQueueID); + } + else if (!string.IsNullOrEmpty(inputStoreID)) + { + model = DataManager.I.GetModel(inputStoreID); + } + SimulationModelStore storeModel = (SimulationModelStore)model; if ( targetCargo == null) @@ -102,15 +115,24 @@ public class SimulationModelConveyor : SimulationModel if ( rawData.Contains("conveyor_started")) { - string[] transportTimeparseKey = { "data", "move_time" }; - - - ConveyorStartedEventMessage startDataMessage = JsonConvert.DeserializeObject(rawData); + Debug.Log(startDataMessage.Data.InputQueues.ToString() + this.name); + transportTime = (int)startDataMessage.Data.MoveTime; - inputQueueID = startDataMessage.Data.InputQueues[0].Queue; + + if ( startDataMessage.Data.InputQueues.Count != 0) + { + inputQueueID = startDataMessage.Data.InputQueues[0].Queue; + } + + if ( startDataMessage.Data.InputStores.Count != 0) + { + inputStoreID = startDataMessage.Data.InputStores[0].Queue; + } + + } @@ -415,6 +437,9 @@ public class ConveyorStartedData [JsonProperty("input_queues")] public List? InputQueues { get; set; } + [JsonProperty("input_stores")] + public List? InputStores { get; set; } + [JsonProperty("output_queue")] public string? OutputQueue { get; set; } @@ -439,6 +464,17 @@ public class InputQueue } +[Serializable] +public class InputStore +{ + [JsonProperty("store")] + public string? Queue { get; set; } + + [JsonProperty("required_items")] + public int? RequiredItems { get; set; } +} + + [Serializable] public class ConveyorLoadingEventMessage { diff --git a/Assets/WorkSpace/LH/MQTTDataBase.cs b/Assets/WorkSpace/LH/MQTTDataBase.cs index 3b7624cf..c40f7d78 100644 --- a/Assets/WorkSpace/LH/MQTTDataBase.cs +++ b/Assets/WorkSpace/LH/MQTTDataBase.cs @@ -18,7 +18,7 @@ public class MQTTDataBase : MonoBehaviour public void AddDict(string key, string value) { - //Debug.Log("#### : " + key + " : " + value); + Debug.Log("#### : " + key + " : " + value); JObject json = JObject.Parse(value); var queue = mqttData.GetOrAdd(key, _ => new ConcurrentQueue()); queue.Enqueue(json); diff --git a/Assets/WorkSpace/LWJ/SaveLoadmanager.cs b/Assets/WorkSpace/LWJ/SaveLoadmanager.cs index 533d9f80..121772d6 100644 --- a/Assets/WorkSpace/LWJ/SaveLoadmanager.cs +++ b/Assets/WorkSpace/LWJ/SaveLoadmanager.cs @@ -18,6 +18,93 @@ public class SaveLoadmanager : MonoBehaviour // Update is called once per frame void Update() { + if ( Input.GetKey(KeyCode.K)) + { + Onclick_Save_Local(); + } + + if ( Input.GetKey(KeyCode.L)) + { + Onclick_Load_Local(); + } + + } + + + public void Onclick_Save_Local() + { + var path = StandaloneFileBrowser.SaveFilePanel("Save Layout", "", "", ""); + var simulationModels = FindObjectsByType(FindObjectsSortMode.None); + + List saveInfos = new List(); + + + foreach (var item in simulationModels) + { + var tmpSimulationModelInfo = new SimulationModelInfo(); + + tmpSimulationModelInfo.prefabName = item.gameObject.name.Replace("(Clone)", ""); + tmpSimulationModelInfo.modelName = item.modelName; + tmpSimulationModelInfo.modelType = item.modelType; + tmpSimulationModelInfo.modelID = item.modelID; + tmpSimulationModelInfo.nodeID = item.nodeID; + tmpSimulationModelInfo.position = item.transform.position.ToString(); + tmpSimulationModelInfo.rotation = item.transform.rotation.ToString(); + tmpSimulationModelInfo.scale = item.transform.localScale.ToString(); + + saveInfos.Add(tmpSimulationModelInfo); + } + + string jsonObject = JsonConvert.SerializeObject(saveInfos, Formatting.Indented); + + FileStream fileStream = new FileStream(string.Format("{0}.json", path), FileMode.Create); + + byte[] buffer = Encoding.UTF8.GetBytes(jsonObject); + fileStream.Write(buffer, 0, buffer.Length); + fileStream.Close(); + + } + + public void Onclick_Load_Local() + { + var path = StandaloneFileBrowser.OpenFilePanel("Open Layout", "", "", false); + + FileStream fileStream = new FileStream(string.Format("{0}", path), FileMode.Open); + byte[] data = new byte[fileStream.Length]; + fileStream.Read(data, 0, data.Length); + fileStream.Close(); + + string jsonData = Encoding.UTF8.GetString(data); + + List loadInfos = new List(); + + loadInfos = JsonConvert.DeserializeObject>(jsonData); + + + string resourcePath = "Models"; + + Dictionary loadModels = new Dictionary(); + + foreach (var item in loadInfos) + { + + var simulationModel = Resources.Load(string.Format("{0}/{1}", resourcePath, item.prefabName)); + var spawnItem = Instantiate(simulationModel).GetComponent(); + + spawnItem.modelName = item.modelName; + spawnItem.modelType = item.modelType; + spawnItem.modelID = item.modelID; + spawnItem.nodeID = item.nodeID; + + spawnItem.gameObject.transform.position = ParseVector3(item.position); + spawnItem.gameObject.transform.localScale = ParseVector3(item.scale); + spawnItem.gameObject.transform.rotation = ParseQuaternion(item.rotation); + + if (!string.IsNullOrEmpty(item.nodeID)) + loadModels.Add(item.nodeID, spawnItem); + } + + LogicMappingDataBase.LoadDataBase(loadModels); } public void Onclick_Save()