领胜LDS 键盘AOI检测项目
src/Bro.M071.Process/M071Process.cs
@@ -19,6 +19,7 @@
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -47,6 +48,7 @@
        public event Action<IShapeElement> OnElementUpdated;
        public event Action<MachineState> OnMachineStateChanged;
        public event Action OnFullResetDone;
        public event Action OnResetDone;
        #endregion
        string _precision = "f3";
@@ -196,7 +198,10 @@
        object productionLock = new object();
        List<ProductionMeasurement> productionList = new List<ProductionMeasurement>();
        bool _isdoing = false;
        [ProcessMethod("", "StartJob", "开始扫描", InvokeType.TestInvoke)]
        [MethodImpl(MethodImplOptions.Synchronized)]
        public ProcessResponse StartJob(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice)
        {
            if (!IsAllowedWork)
@@ -205,6 +210,7 @@
            }
            string hint = "";
            //if (MachineState != MachineState.Ready)
            //{
            //    hint = "机台未就绪,请勿开始测量";
@@ -219,6 +225,8 @@
                OnCheckHintUpload?.Invoke(hint, true);
                throw new ProcessException(hint);
            }
            _isdoing = true;
            MachineState = MachineState.Running;
@@ -315,6 +323,7 @@
                  });
            LogAsync(DateTime.Now, $"{pMeasure.Barcode}测量动作完成", "");
            _isdoing = false;
            GC.Collect(0, GCCollectionMode.Optimized);
@@ -328,8 +337,11 @@
            get => isLeftStart;
            set
            {
                isLeftStart = value;
                StartCheck();
                if (IsLeftStart != value)
                {
                    isLeftStart = value;
                    StartCheck();
                }
            }
        }
@@ -339,8 +351,11 @@
            get => isRightStart;
            set
            {
                isRightStart = value;
                StartCheck();
                if (isRightStart != value)
                {
                    isRightStart = value;
                    StartCheck();
                }
            }
        }
@@ -348,6 +363,11 @@
        {
            if (isRightStart && isLeftStart)
            {
                if (_isdoing)
                {
                    OnCheckHintUpload?.Invoke("设备运行中", false);
                    return;
                }
                StartJob(null, null, null);
            }
        }