C3204
2026-01-19 0468353b5e2265935846b299afc38bb34ae23e24
LB_SmartVision/VisionForm.cs
@@ -10,6 +10,7 @@
using LB_SmartVision.Forms.Pages.SettingPage;
using LB_SmartVision.Forms.Pages.UserManagementPage;
using LB_SmartVision.ProcessRun;
using LB_SmartVision.SQL;
using LB_SmartVision.Tool;
using LB_SmartVisionCommon;
using LB_SmartVisionLoginUI;
@@ -633,7 +634,15 @@
            {
                LogInfo("全局变量加载失败", LogInfoType.ERROR);
            }
            GlobalVar.dicMotionControlData.Clear();
            if (LoadMotionControlDatas(GlobalVar.allMotionControlDataPath))
            {
                LogInfo("运动控制参数加载成功", LogInfoType.PASS);
            }
            else
            {
                LogInfo("运动控制参数加载失败", LogInfoType.ERROR);
            }
            //加载流程
            GlobalVar.dicProcesses.Clear();
            if (LoadAllProcess(GlobalVar.allProcessConnectionStringPath))
@@ -687,6 +696,7 @@
            com_ProductName.Items.Add("新增");
            com_ProductName.Text = GlobalVar.strProductName;
            this.WindowState = FormWindowState.Maximized;
            DatabaseRecordProductDataHelper.InitializeDatabase();
        }
        public void SaveAllSetting()
@@ -698,6 +708,54 @@
            SaveAllProcessSetting();
            SaveAllLayout();
            SaveAllCsv();
            SaveMotionControlDatas();
        }
        public bool LoadMotionControlDatas(string alMotionControlDataPath)
        {
            try
            {
                GlobalVar.dicMotionControlData = ConfigManager<ConcurrentDictionary<string, ConcurrentDictionary<string, RecordMotionControlData>>>.LoadConfig<ConcurrentDictionary<string, ConcurrentDictionary<string, RecordMotionControlData>>>(alMotionControlDataPath);
            }
            catch
            {
                return false;
            }
            return true;
        }
        public bool SaveMotionControlDatas()
        {
            try
            {
                ConcurrentDictionary<string, List<string>> removeCameraSN = new ConcurrentDictionary<string, List<string>>();
                foreach (var item in GlobalVar.dicMotionControlData.Keys)
                {
                    List<string> list = new List<string>();
                    foreach (var itemSN in GlobalVar.dicMotionControlData[item].Keys)
                    {
                        if (!GlobalVar.dicCameras.Keys.Contains(itemSN))
                        {
                            list.Add(itemSN);
                        }
                    }
                    if (list.Count > 0)
                    {
                        removeCameraSN.TryAdd(item, list);
                    }
                }
                foreach (var item in removeCameraSN.Keys)
                {
                    foreach (var itemSN in removeCameraSN[item])
                    {
                        GlobalVar.dicMotionControlData[item].Keys.Remove(itemSN);
                    }
                }
                ConfigManager<ConcurrentDictionary<string, ConcurrentDictionary<string, RecordMotionControlData>>>.SaveConfig<ConcurrentDictionary<string, ConcurrentDictionary<string, RecordMotionControlData>>>(GlobalVar.dicMotionControlData, GlobalVar.allMotionControlDataPath);
            }
            catch
            {
                return false;
            }
            return true;
        }
        public bool LoadAllCameras(string allCamerasConnectionStringPath)
@@ -850,7 +908,7 @@
                            string ClassName = match.Groups["ClassName"].Value;   // "TCP"
                            string IP = match.Groups["IP"].Value;          // "127.0.0.1"
                            string Slot = match.Groups["Slot"].Value;        // "1111"
                            string CpuType= match.Groups["CpuType"].Value;
                            string CpuType = match.Groups["CpuType"].Value;
                            string PlcAddress = match.Groups["PlcAddress"].Value;
                            string DataType = match.Groups["DataType"].Success ? match.Groups["DataType"].Value : "String";
@@ -1027,7 +1085,6 @@
            {
                string strJson = string.Empty;
                GlobalVar.allCommunicatorsConnectionString = new ConcurrentDictionary<string, string>();
                foreach (var item in GlobalVar.dicCommunicators)
                {
                    string ClassName = item.Value.GetType().FullName;// "TCP"
@@ -1056,6 +1113,7 @@
                        string CommunicatorConnectionString = $"({ClassName})[{IP}][{PORT}]";
                        GlobalVar.allCommunicatorsConnectionString.TryAdd(item.Key, CommunicatorConnectionString);
                    }
                    GlobalVar.dicCommunicators[item.Key].ClassName = ClassName;
                }
                var settings = new JsonSerializerSettings
                {
@@ -1080,6 +1138,11 @@
                    { }
                }
                File.WriteAllText(GlobalVar.allCommunicatorsConnectionStringPath, strJson, Encoding.UTF8);
                foreach (var item in GlobalVar.dicCommunicators)
                {
                    string ClassName = item.Value.GetType().FullName;// "TCP"
                }
                ConfigManager<ObservableConcurrentDictionary<string, BaseCommunicator>>.SaveConfig<ObservableConcurrentDictionary<string, BaseCommunicator>>(GlobalVar.dicCommunicators, GlobalVar.strApplicationPath + "\\所有产品\\" + GlobalVar.strProductName + "\\dicCommunicators.json");
                return true;
            }
            catch { return false; }