领胜LDS 键盘AOI检测项目
src/Bro.M071.Process/M071Process.cs
@@ -10,6 +10,7 @@
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Bro.M071.Process
@@ -138,8 +139,6 @@
        //}
        #endregion
        //Dictionary<string, ProductionMeasurement> MeasureDict = new Dictionary<string, ProductionMeasurement>();
        private string barCode = "";
        public string BarCode
        {
@@ -168,17 +167,7 @@
            measurements.ForEach(m =>
            {
                m.InitialKeyUnitMeasureChanged();
                //m.KeyUnitCollection.ForEach(k => k.InitialMeasureValueDictPropertyChanged());
            });
            //MeasureDict[BarCode] = new ProductionMeasurement()
            //{
            //    Barcode = BarCode,
            //    Measurements = measurements,
            //};
            //MeasureDict[BarCode].InitialMeasurementsPropertyChanged();
            //MeasureDict[BarCode].PropertyChanged += MeasureProduction_PropertyChanged;
            var pMeasure = new ProductionMeasurement()
            {
@@ -191,6 +180,8 @@
            Config.SnapshotPointCollection.Where(u => u.IsEnabled).ToList().ForEach(s =>
                  {
                      _pauseHandle.WaitHandle.WaitOne();
                      IDevice device = DeviceCollection.FirstOrDefault(u => u.Id == s.MotionDevice);
                      if (device == null)
                          throw new ProcessException($"{s.Name}拍照点位未设置运动设备");
@@ -220,6 +211,39 @@
            return new ProcessResponse(true);
        }
        /// <summary>
        /// 暂停标志
        /// WaitHandle 暂停句柄  默认为非阻塞 可执行
        /// WaitResult 暂停标志 true 正常执行  false 暂停中
        /// </summary>
        ManualWaitConfirm _pauseHandle = new ManualWaitConfirm()
        {
            WaitHandle = new ManualResetEvent(true),
            WaitResult = true,
        };
        [ProcessMethod("", "PauseJob", "暂停流程", InvokeType.TestInvoke)]
        public ProcessResponse PauseJob(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice)
        {
            if (_pauseHandle.WaitResult)
            {
                #region 板卡暂停动作
                #endregion
                _pauseHandle.WaitHandle.Reset();
            }
            else
            {
                #region 板卡恢复动作
                #endregion
                _pauseHandle.WaitHandle.Set();
            }
            _pauseHandle.WaitResult = !_pauseHandle.WaitResult;
            return new ProcessResponse(_pauseHandle.WaitResult);
        }
        #region 私有方法
        private void MeasureProduction_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (sender is ProductionMeasurement pMeasure)
@@ -384,5 +408,6 @@
                     imgSet.HImage.Dispose();
             });
        }
        #endregion
    }
}