领胜LDS 键盘AOI检测项目
patrick.xu
2021-04-28 96b6869bb20677f9b945f67c014a9b992ee05ac4
src/Bro.Common.Device/DeviceBase/CameraBase.cs
@@ -153,7 +153,7 @@
            set.IsOriginSaved = !set.ImageSaveOption.IsSaveOriginImage;
            set.IsFitSaved = !set.ImageSaveOption.IsSaveFitImage;
            set.IsAddtionalSaved = string.IsNullOrWhiteSpace(set.ImageSaveOption.AddtionalSaveType);
            set.OnImageSetTimeout += ImageSet_OnImageSetTimeout;
            //set.OnImageSetTimeout += ImageSet_OnImageSetTimeout;
            _imageSetList[set.Id] = set;
        }
@@ -183,7 +183,7 @@
            set.IsOriginSaved = !set.ImageSaveOption.IsSaveOriginImage;
            set.IsFitSaved = !set.ImageSaveOption.IsSaveFitImage;
            set.IsAddtionalSaved = string.IsNullOrWhiteSpace(set.ImageSaveOption.AddtionalSaveType);
            set.OnImageSetTimeout += ImageSet_OnImageSetTimeout;
            //set.OnImageSetTimeout += ImageSet_OnImageSetTimeout;
            _imageSetList[set.Id] = set;
        }
@@ -376,6 +376,8 @@
                //    && (!set.ImageSaveOption.IsSaveNGImage || set.IsNGSaved))
                if (set.IsOriginSaved && set.IsFitSaved && set.IsAddtionalSaved)
                {
                    set.Dispose();
                    _imageSetList.Remove(set.Id);
                    LogAsync(DateTime.Now, $"移除图片信息,当前缓存数量:{_imageSetList.Count}", "");
                }
@@ -395,17 +397,17 @@
            }
        }
        public void ClearImageSet(string imgSetId)
        {
            IImageSet set = _imageSetList[imgSetId];
            if (set != null)
                ClearImageSet(set);
        }
        //public void ClearImageSet(string imgSetId)
        //{
        //    IImageSet set = _imageSetList[imgSetId];
        //    if (set != null)
        //        ClearImageSet(set);
        //}
        private void ImageSet_OnImageSetTimeout(ImageSet set)
        {
            ClearImageSet(set);
        }
        //private void ImageSet_OnImageSetTimeout(ImageSet set)
        //{
        //    ClearImageSet(set);
        //}
        //private void ClearImageSetPeriodically()
        //{
@@ -543,7 +545,7 @@
        {
            await Task.Run(() =>
            {
                Thread.Sleep(1000);
                //Thread.Sleep(1000);
                int widthIn4 = (int)Math.Ceiling(width / 4.0) * 4;
                Bitmap bmp = new Bitmap(widthIn4, height, PixelFormat.Format48bppRgb);
@@ -783,7 +785,7 @@
        [Category("图片保存")]
        [Description("是否保存原始图片")]
        [DisplayName("保存原始图片")]
        public bool IsSaveOriginImage { get; set; } = true;
        public bool IsSaveOriginImage { get; set; } = false;
        [Category("图片保存")]
        [Description("图片保存格式")]
@@ -847,7 +849,7 @@
        bool IsFitSaved { get; set; }
        bool IsAddtionalSaved { get; set; }
        event Action<ImageSet> OnImageSetTimeout;
        //event Action<ImageSet> OnImageSetTimeout;
        /// <summary>
        /// 序列化操作的图像信息
@@ -894,15 +896,18 @@
        public virtual string ImageData { get; set; }
        public event Action<ImageSet> OnImageSetTimeout;
        private Timer autoDisposeTimer = null;
        //public event Action<ImageSet> OnImageSetTimeout;
        //private Timer autoDisposeTimer = null;
        public void Dispose(object state)
        {
            OnImageSetTimeout?.Invoke(this);
            //OnImageSetTimeout?.Invoke(this);
            autoDisposeTimer.Change(-1, -1);
            autoDisposeTimer.Dispose();
            //autoDisposeTimer.Change(-1, -1);
            //autoDisposeTimer.Dispose();
            Image?.Dispose();
            Image = null;
        }
        public virtual void Dispose()
@@ -912,7 +917,7 @@
        public ImageSet()
        {
            autoDisposeTimer = new Timer(Dispose, null, 10 * 1000, -1);
            //autoDisposeTimer = new Timer(Dispose, null, 10 * 1000, -1);
        }
        #endregion
    }