轮胎外观检测添加思谋语义分割模型检测工具
LB_SmartVision/VisionForm.cs
@@ -14,6 +14,7 @@
using LB_SmartVision.ProcessRun;
using LB_SmartVision.SQL;
using LB_SmartVision.Tool;
using LB_SmartVisionCameraDevice.PHM6000;
using LB_SmartVisionCommon;
using LB_SmartVisionLoginUI;
using LB_VisionProcesses;
@@ -755,6 +756,15 @@
            LB_SmartVision.Tool.Tool.ReadStringConfig("User ID", out string User_ID);
            LB_SmartVision.Tool.Tool.ReadStringConfig("Password", out string Password);
            GlobalVar.strProductName = DateBaseName;
            //加载LB相机参数
            if (LoadAllLBCameras(GlobalVar.allCamerasLBPath))
            {
                LogInfo("LB3D相机配置文件加载成功!", LogInfoType.PASS);
            }
            else
            {
                LogInfo("LB3D相机配置文件加载失败", LogInfoType.ERROR);
            }
            //加载通讯
            foreach (BaseCommunicator com in GlobalVar.dicCommunicators.Values)
            {
@@ -1218,7 +1228,13 @@
                        camera.isGrabbing = false;
                    }
                }
                if (camera is LBCamera phmCamera)
                {
                    if (GlobalVar.allLBCameras.ContainsKey(camera.SN))
                    {
                        phmCamera.UpdateSensorConfig(GlobalVar.allLBCameras[camera.SN]);
                    }
                }
                GlobalVar.dicCameras.TryAdd(CameraConnectionString.Key, camera);
            }
@@ -1555,6 +1571,47 @@
                return true;
            }
            catch { return false; }
        }
        public bool LoadAllLBCameras(string allLBCamerasPath)
        {
            try
            {
                if (!File.Exists(allLBCamerasPath))
                {
                    Debug.WriteLine("文件不存在创建空文件");
                    // 获取不带文件名的目录路径
                    string directoryPath = Path.GetDirectoryName(allLBCamerasPath);
                    SaveAllLBCameras();
                    return true;
                }
                GlobalVar.allLBCameras = ConfigManager<ConcurrentDictionary<string, PHM6000SensorConfig>>.LoadConfig<ConcurrentDictionary<string, PHM6000SensorConfig>>(GlobalVar.allCamerasLBPath);
            }
            catch
            {
                return false;
            }
            return true;
        }
        public bool SaveAllLBCameras()
        {
            try
            {
                if (GlobalVar.allLBCameras.Count >= 0)
                {
                    ConfigManager<ConcurrentDictionary<string, PHM6000SensorConfig>>.SaveConfig<ConcurrentDictionary<string, PHM6000SensorConfig>>(GlobalVar.allLBCameras, GlobalVar.allCamerasLBPath);
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
            return true;
        }
        public bool LoadAllProcess(string allProcessConnectionStringPath)
@@ -2371,7 +2428,7 @@
                                            var value = item.Value;
                                            var triggerComm = value["触发通讯"];
                                            var triggerChar = value["触发字符"];
                                            return triggerComm != null;
                                            return triggerComm != null && !triggerComm.Equals("无");
                                            //return triggerComm != null && triggerComm.Equals(name) &&
                                            //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
                                            //        msg.StartsWith(triggerChar.ToString()));
@@ -2381,7 +2438,13 @@
            {
                return;
            }
            TriggerRunMessageReceived(matchedItems[0].Value["触发通讯"], matchedItems[0].Value["触发字符"]);
            foreach (var item in matchedItems)
            {
                Task.Factory.StartNew(() =>
                {
                    TriggerRunMessageReceived(item.Value["触发通讯"], item.Value["触发字符"]);
                });
            }
        }
        private void btn_RunContinuously_Click(object sender, EventArgs e)
@@ -2404,7 +2467,7 @@
                                                    var value = item.Value;
                                                    var triggerComm = value["触发通讯"];
                                                    var triggerChar = value["触发字符"];
                                                    return triggerComm != null;
                                                    return triggerComm != null && !triggerComm.Equals("无");
                                                    //return triggerComm != null && triggerComm.Equals(name) &&
                                                    //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
                                                    //        msg.StartsWith(triggerChar.ToString()));
@@ -2412,8 +2475,14 @@
                                                .ToList(); // 避免重复字典访问和装箱操作
                    while (btn_RunContinuously.Text.Equals("暂停运行"))
                    {
                        TriggerRunMessageReceived(matchedItems[0].Value["触发通讯"], matchedItems[0].Value["触发字符"]);
                        foreach (var item in matchedItems)
                        {
                            Task.Factory.StartNew(() =>
                            {
                                TriggerRunMessageReceived(item.Value["触发通讯"], item.Value["触发字符"]);
                            });
                        }
                        //TriggerRunMessageReceived(matchedItems[0].Value["触发通讯"], matchedItems[0].Value["触发字符"]);
                        Thread.Sleep(3500);
                    }
                    //this.Invoke(() =>