领胜LDS 键盘AOI检测项目
patrick.xu
2021-02-20 78289c64a16dd02cc9fec595bf758a9e30a30926
gocator修改异步模式下图片获取操作
4个文件已修改
53 ■■■■■ 已修改文件
src/Bro.Device.Gocator/GocatorDriver.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M071.Process/M071Process.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M071.Process/M071Process_MES.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M071.Process/M071Process_MotionCard.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.Device.Gocator/GocatorDriver.cs
@@ -269,6 +269,8 @@
            GoDataSet dataSet = null;
            if (IIConfig.IsAsyncMode)
            {
                if (opConfig.IsSnapshotAction)
                {
                if (!IIConfig.IsHardwareTrigger)
                {
                    _snapFlag = true;
@@ -279,6 +281,11 @@
                    }
                    dataSet = _currentData;
                    }
                }
                else
                {
                    imgSet = null;
                }
            }
            else
@@ -342,12 +349,12 @@
                            Thread.Sleep(100);
                        }
                    } while (true);
                    sensor.Flush();
                    LogAsync(DateTime.Now, $"传感器关闭成功", "");
                }
            }
            sensor.Flush();
            if (dataSet != null)
            {
                HandleGoData(dataSet, imgSet);
src/Bro.M071.Process/M071Process.cs
@@ -199,9 +199,9 @@
        List<ProductionMeasurement> productionList = new List<ProductionMeasurement>();
        bool _isdoing = false;
        object _doingLock = new object();
        [ProcessMethod("", "StartJob", "开始扫描", InvokeType.TestInvoke)]
        [MethodImpl(MethodImplOptions.Synchronized)]
        public ProcessResponse StartJob(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice)
        {
            if (!IsAllowedWork)
@@ -226,7 +226,16 @@
                throw new ProcessException(hint);
            }
            lock (_doingLock)
            {
                if (_isdoing)
                {
                    LogAsync(DateTime.Now, "设备正在运行中", "");
                    return new ProcessResponse(true);
                }
            _isdoing = true;
            }
            MachineState = MachineState.Running;
@@ -272,6 +281,8 @@
            pMeasure.InitialMeasurementsPropertyChanged();
            pMeasure.PropertyChanged += MeasureProduction_PropertyChanged;
            try
            {
            Config.SnapshotPointCollection.Where(u => u.IsEnabled).ToList().ForEach(s =>
                  {
                      _pausedHandle.Wait();
@@ -321,26 +332,42 @@
                      RunImageHandle(s.CameraOp.OpConfig, set, s.Id, s.Name, pMeasure.Measurements);
                  });
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            LogAsync(DateTime.Now, $"{pMeasure.Barcode}测量动作完成", "");
            _isdoing = false;
            GC.Collect(0, GCCollectionMode.Optimized);
            }
            return new ProcessResponse(true);
        }
        #region 双手启动
        object _leftStartLock = new object();
        object _rightStartLock = new object();
        bool isLeftStart = false;
        bool IsLeftStart
        {
            get => isLeftStart;
            set
            {
                if (isLeftStart != value)
                {
                    lock (_leftStartLock)
                    {
                if (IsLeftStart != value)
                {
                    isLeftStart = value;
                    StartCheck();
                        }
                    }
                }
            }
        }
@@ -353,14 +380,21 @@
            {
                if (isRightStart != value)
                {
                    lock (_rightStartLock)
                    {
                        if (isRightStart != value)
                        {
                    isRightStart = value;
                    StartCheck();
                        }
                    }
                }
            }
        }
        private void StartCheck()
        {
            if (isRightStart && isLeftStart)
            {
                if (_isdoing)
src/Bro.M071.Process/M071Process_MES.cs
@@ -207,7 +207,7 @@
            if (Config.IsEnableMESLog)
            {
                LogAsync(DateTime.Now, $"{barcode}产品检测数据上传", JsonConvert.SerializeObject(paras));
                LogAsync(DateTime.Now, $"{pMeasure.Barcode}产品检测数据上传", JsonConvert.SerializeObject(paras));
            }
            var result = DataUploadMethod?.Invoke(DataUploadObj, paras).ToString();
src/Bro.M071.Process/M071Process_MotionCard.cs
@@ -250,6 +250,8 @@
            (invokeDevice as MotionCardBase).ResetAlarm();
            _isdoing = false;
            _pausedHandle.Set();
            RaisedAlarm("");
            OnCheckHintUpload?.Invoke("", false);