From 22ff831583da8c6f1c015c1e294f0bc1ef70ac85 Mon Sep 17 00:00:00 2001
From: C3031 <shitiangui@lanpucloud.cn>
Date: 星期五, 30 一月 2026 09:23:14 +0800
Subject: [PATCH]
---
LB_SmartVision/VisionForm.cs | 68 ++++++++++++++++++++++++++++++++-
1 files changed, 65 insertions(+), 3 deletions(-)
diff --git a/LB_SmartVision/VisionForm.cs b/LB_SmartVision/VisionForm.cs
index 173b0fd..14f66c7 100644
--- a/LB_SmartVision/VisionForm.cs
+++ b/LB_SmartVision/VisionForm.cs
@@ -634,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))
@@ -700,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)
@@ -852,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";
@@ -1029,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"
@@ -1058,6 +1113,7 @@
string CommunicatorConnectionString = $"({ClassName})[{IP}][{PORT}]";
GlobalVar.allCommunicatorsConnectionString.TryAdd(item.Key, CommunicatorConnectionString);
}
+ GlobalVar.dicCommunicators[item.Key].ClassName = ClassName;
}
var settings = new JsonSerializerSettings
{
@@ -1082,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; }
@@ -1341,6 +1402,7 @@
GlobalVar.strProductName = com_ProductName.SelectedItem?.ToString();
foreach (BaseCamera camera in GlobalVar.dicCameras.Values)
{
+ camera.TriggerRunMessageReceived -= TriggerRunMessageReceived;
camera.Dispose();
}
GlobalVar.dicCameras.Clear();
--
Gitblit v1.9.3