轮胎外观检测添加思谋语义分割模型检测工具
LB_SmartVision/VisionForm.cs
@@ -1230,7 +1230,7 @@
                }
                if (camera is LBCamera phmCamera)
                {
                    if (GlobalVar.allLBCameras.ContainsKey(camera.SN))
                    if (GlobalVar.allLBCameras.ContainsKey(camera.SN) && phmCamera._isConnected)
                    {
                        phmCamera.UpdateSensorConfig(GlobalVar.allLBCameras[camera.SN]);
                    }
@@ -2422,32 +2422,38 @@
        private void btn_Run_Click(object sender, EventArgs e)
        {
            var matchedItems = GlobalVar.dicProcessSetting
                                        .Where(item =>
            //var matchedItems = GlobalVar.dicProcessSetting
            //                            .Where(item =>
            //                            {
            //                                var value = item.Value;
            //                                var triggerComm = value["触发通讯"];
            //                                var triggerChar = value["触发字符"];
            //                                return triggerComm != null && !triggerComm.Equals("无");
            //                                //return triggerComm != null && triggerComm.Equals(name) &&
            //                                //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
            //                                //        msg.StartsWith(triggerChar.ToString()));
            //                            })
            //                            .ToList(); // 避免重复字典访问和装箱操作
            //if (matchedItems.Count <= 0)
            //{
            //    return;
            //}
            //foreach (var item in matchedItems)
            //{
            //    Task.Factory.StartNew(() =>
            //    {
            //        TriggerRunMessageReceived(item.Value["触发通讯"], item.Value["触发字符"]);
            //    });
            //}
            foreach (var item in GlobalVar.dicCameras.Keys)
                                        {
                                            var value = item.Value;
                                            var triggerComm = value["触发通讯"];
                                            var triggerChar = value["触发字符"];
                                            return triggerComm != null && !triggerComm.Equals("无");
                                            //return triggerComm != null && triggerComm.Equals(name) &&
                                            //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
                                            //        msg.StartsWith(triggerChar.ToString()));
                                        })
                                        .ToList(); // 避免重复字典访问和装箱操作
            if (matchedItems.Count <= 0)
            {
                return;
            }
            foreach (var item in matchedItems)
            {
                Task.Factory.StartNew(() =>
                {
                    TriggerRunMessageReceived(item.Value["触发通讯"], item.Value["触发字符"]);
                });
                GlobalVar.dicCameras[item].StartSingleGrab();
            }
        }
        private void btn_RunContinuously_Click(object sender, EventArgs e)
        {
            if (this.ckbAllowRun.Checked)
        {
            if (btn_RunContinuously.Text.Equals("连续运行"))
            {
@@ -2459,41 +2465,48 @@
                btn_Login.Enabled = false;
                btn_SingleRun.Enabled = false;
                ckbAllowRun.Enabled = false;
                Task.Factory.StartNew(() =>
                    foreach (var item in GlobalVar.dicCameras.Keys)
                {
                    var matchedItems = GlobalVar.dicProcessSetting
                                                .Where(item =>
                                                {
                                                    var value = item.Value;
                                                    var triggerComm = value["触发通讯"];
                                                    var triggerChar = value["触发字符"];
                                                    return triggerComm != null && !triggerComm.Equals("无");
                                                    //return triggerComm != null && triggerComm.Equals(name) &&
                                                    //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
                                                    //        msg.StartsWith(triggerChar.ToString()));
                                                })
                                                .ToList(); // 避免重复字典访问和装箱操作
                    while (btn_RunContinuously.Text.Equals("暂停运行"))
                    {
                        foreach (var item in matchedItems)
                        {
                            Task.Factory.StartNew(() =>
                            {
                                TriggerRunMessageReceived(item.Value["触发通讯"], item.Value["触发字符"]);
                            });
                        GlobalVar.dicCameras[item].StartContinuousGrab();
                        }
                        //TriggerRunMessageReceived(matchedItems[0].Value["触发通讯"], matchedItems[0].Value["触发字符"]);
                        Thread.Sleep(3500);
                    }
                    //this.Invoke(() =>
                    //Task.Factory.StartNew(() =>
                    //{
                    //    var matchedItems = GlobalVar.dicProcessSetting
                    //                                .Where(item =>
                    //                                {
                    //                                    var value = item.Value;
                    //                                    var triggerComm = value["触发通讯"];
                    //                                    var triggerChar = value["触发字符"];
                    //                                    return triggerComm != null && !triggerComm.Equals("无");
                    //                                    //return triggerComm != null && triggerComm.Equals(name) &&
                    //                                    //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
                    //                                    //        msg.StartsWith(triggerChar.ToString()));
                    //                                })
                    //                                .ToList(); // 避免重复字典访问和装箱操作
                    //    while (btn_RunContinuously.Text.Equals("暂停运行"))
                    //    {
                    //        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(() =>
                    //    //{
                    //    //});
                    //});
            }
            else if (btn_RunContinuously.Text.Equals("暂停运行"))
            {
                btn_RunContinuously.Text = "连续运行";
                    foreach (var item in GlobalVar.dicCameras.Keys)
                    {
                        GlobalVar.dicCameras[item].StopGrabbing();
                    }
                // 启动使能
                UnSelectMainPage();
                btn_GlobalVar.Enabled = true;
@@ -2503,7 +2516,7 @@
                Thread.Sleep(100);
                _isTabSwitchAllowed = true;
            }
            }
        }
        private void cmbProduct_SelectedValueChanged(object sender, EventArgs e)