From 0468353b5e2265935846b299afc38bb34ae23e24 Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期一, 19 一月 2026 16:49:49 +0800
Subject: [PATCH] 完善运动控制参数存储以及加载

---
 LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorsEditPage.cs |   48 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorsEditPage.cs b/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorsEditPage.cs
index 30de3e4..3a0a804 100644
--- a/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorsEditPage.cs
+++ b/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorsEditPage.cs
@@ -34,7 +34,9 @@
                 if (string.IsNullOrEmpty(ClassName) || string.IsNullOrEmpty(IP) || string.IsNullOrEmpty(PORT))
                     return;
 
-                string CommunicatorConnectionString = $"({ClassName}){IP}:{PORT}";
+                string DataType = item.Value.CommunicatorConnections.Contains("鏁版嵁绫诲瀷") ?
+                    item.Value.CommunicatorConnections["鏁版嵁绫诲瀷"].ToString() : "String";
+                string CommunicatorConnectionString = $"({ClassName}){IP}:{PORT} [{DataType}]";
 
                 UserItem flow = new UserItem(new string[] { "娴嬭瘯", "鍒锋柊", "绉婚櫎", "閲嶅懡鍚�" });
                 //flow.SetDPIScale();
@@ -69,7 +71,9 @@
                 if (string.IsNullOrEmpty(ClassName) || string.IsNullOrEmpty(IP) || string.IsNullOrEmpty(PORT))
                     return;
 
-                string CommunicatorConnectionString = $"({ClassName}){IP}:{PORT}";
+                string DataType = communicator.CommunicatorConnections.Contains("鏁版嵁绫诲瀷") ?
+                    communicator.CommunicatorConnections["鏁版嵁绫诲瀷"].ToString() : "String";
+                string CommunicatorConnectionString = $"({ClassName}){IP}:{PORT} [{DataType}]";
 
                 GlobalVar.dicCommunicators.TryAdd(Name, communicator);
                 communicator.CommunicatorName = Name;
@@ -126,8 +130,34 @@
 
                 if (GlobalVar.dicCommunicators.ContainsKey(name))
                 {
-                    CommunicatorForm cameraForm = new CommunicatorForm(GlobalVar.dicCommunicators[name], name);
-                    cameraForm.Show();
+                    CommunicatorForm communicatorFForm = new CommunicatorForm(GlobalVar.dicCommunicators[name], name);
+                    communicatorFForm.CommunicatorChanged += CommunicatorFForm_CommunicatorChanged;
+                    communicatorFForm.Show();
+                }
+            }
+        }
+
+        private void CommunicatorFForm_CommunicatorChanged(BaseCommunicator communicator)
+        {
+            if (this.InvokeRequired)
+            {
+                this.Invoke(new Action<BaseCommunicator>(CommunicatorFForm_CommunicatorChanged), communicator);
+                return;
+            }
+
+            for (int i = 0; i < uiFlowLayoutPanel1.Controls.Count; i++)
+            {
+                if (uiFlowLayoutPanel1.Controls[i] is UserItem flow && flow.Name == communicator.CommunicatorName)
+                {
+                    string ClassName = communicator.GetType().Name;
+                    string IP = communicator.CommunicatorConnections["鍦板潃"].ToString();
+                    string PORT = communicator.CommunicatorConnections["绔彛"].ToString();
+                    string DataType = communicator.CommunicatorConnections.Contains("鏁版嵁绫诲瀷") ?
+                        communicator.CommunicatorConnections["鏁版嵁绫诲瀷"].ToString() : "String";
+
+                    flow.Text = $"({ClassName}){IP}:{PORT} [{DataType}]";
+                    flow.Refresh();
+                    break;
                 }
             }
         }
@@ -176,6 +206,16 @@
 
                 if (GlobalVar.dicCommunicators.ContainsKey(oldName))
                     GlobalVar.dicCommunicators.TryRename(oldName, newName);
+                foreach (var item in GlobalVar.dicMotionControlData.Keys)
+                {
+                    foreach (var item1 in GlobalVar.dicMotionControlData[item].Keys)
+                    {
+                        if (GlobalVar.dicMotionControlData[item][item1].CommunicatorsName.Contains(oldName))
+                        {
+                            GlobalVar.dicMotionControlData[item][item1].CommunicatorsName = newName;
+                        }
+                    }
+                }
 
                 flow.Refresh();
             }

--
Gitblit v1.9.3