/// <summary> /// 状态机运行 /// </summary> public void TrackRun() { while (!this.bSystemExit) { Thread.Sleep(20); CurStep?.Handler(this); } }
public void StartTrack() { if (TrackTask == null) { CurStep.CurState = TrackStep.State.Enter; TrackTask = Task.Factory.StartNew(() => { this.TrackRun(); }); } else { CurStep.ReActive(); } }
public void PauseTrack() { CurStep.Pasue(); }
/// <summary> /// 开始流程 /// </summary> public void Start() { if (FeederDefine.Instance.InstallFeederName[this.Module][Feeder.Right] == string.Empty && FeederDefine.Instance.InstallFeederName[this.Module][Feeder.Left] == string.Empty) { MessageBox.Show($"没有安装Feeder信息 请给该模组安装Feeder信息!!!"); return; } // 相机状态设置 for (Camera cam = Camera.Top; cam <= Camera.Bottom2; ++cam) { CameraDefine.Instance.Camera[this.Module][cam].StopGrab(); CameraDefine.Instance.Camera[this.Module][cam].StartGrab(); // 相机设置可采图 } for (Feeder feeder = Feeder.Left; feeder <= Feeder.Right; ++feeder) { FeederConfig left = null; if (FeederDefine.Instance.InstallFeederName[this.Module][feeder] != string.Empty) { string feederName = CommonHelper.GetEnumDescription(typeof(Feeder), feeder); left = FeederDefine.Instance[this.Module, feeder]; if (left == null) { MessageBox.Show($"找不到可{feederName} [{FeederDefine.Instance.InstallFeederName[this.Module][feeder]}] 请检查程式!!!"); return; } string loadrtn = VisionCalHelper.Instance.InstallVision(left.LabelName); if (!string.IsNullOrEmpty(loadrtn)) { MessageBox.Show($"{feederName} 视觉方法导入失败 [{left.LabelName}] 请检查视觉库!!!"); return; } } } // 安装视觉 string rtn = VisionCalHelper.Instance.InstallVision(this.Program.VisionList); if (rtn != string.Empty) { MessageBox.Show(rtn); return; } TrackManager.Instance.TrackStart((Config.Track) this.Module); if (CurStep == null) { CurStep = new SuckLabelStep(this, this.MachineEntiy); CurStep.CurState = FlowStep.State.Enter; this.RunData.Restet(this.Program); } else { CurStep.ReStart(); } if (FlowThd == null) { FlowThd = new Thread(Thread_Main); FlowThd.Start(); } this.MachineEntiy.MachineIO.StopBtnLight.SetIO(false); this.MachineEntiy.MachineIO.StartBtnLight.SetIO(true); this.Pasued = false; }