Browse Source

图像采集时间长,及发现的bug修复

徐孝锋 8 months ago
parent
commit
46ee00245a

+ 8 - 3
TeamAAS-VM/Core/Cameras/OptCamera.cs

@@ -353,6 +353,10 @@ namespace TeamAAS_VP.Core.Cameras
                     CameraConnectChangedEvent?.Invoke(ID, true);
                 }
                 IsConnected = mvCameraAcq.IsDeviceOpen();
+                if (IsConnected) 
+                {
+                    mvCameraAcq.StartGrabbing();
+                }
                 return IsConnected;
             }
             finally
@@ -382,6 +386,7 @@ namespace TeamAAS_VP.Core.Cameras
             //_operationSemaphore.Wait();
             try
             {
+                mvCameraAcq.StopGrabbing();
                 mvCameraAcq.CloseDevice();
             }
             finally
@@ -410,20 +415,20 @@ namespace TeamAAS_VP.Core.Cameras
                         {
                             OpenDevice();
                         }
-                        nReVal = mvCameraAcq.StartGrabbing();
+                        //nReVal = mvCameraAcq.StartGrabbing();
                         nReVal = mvCameraAcq.Grab(ref payload);
                         if (nReVal == SciCam.SCI_CAMERA_OK)
                         {
                             Image = GetConvertedInfo(payload);
                             mvCameraAcq.FreePayload(payload);
-                            nReVal = mvCameraAcq.StopGrabbing();
+                            //nReVal = mvCameraAcq.StopGrabbing();
                             TotalTime = sw.Elapsed;
                             return Image;
                         }
                         else
                         {
                             nReVal = mvCameraAcq.FreePayload(payload);
-                            nReVal = mvCameraAcq.StopGrabbing();
+                            //nReVal = mvCameraAcq.StopGrabbing();
                             //_operationSemaphore.Release();
                             CloseDevice();
                             OpenDevice();

+ 3 - 1
TeamAAS-VM/Core/Robots/XYZU_Robot.cs

@@ -436,7 +436,9 @@ namespace TeamAAS_VP.Core.Robots
             if (!Go(currentPos)) return false;
             //×îºóZÖᵽĿ±ê¸ß¶È
             currentPos.Z = position.Z;
-            return Go(currentPos);
+            var isSucceed = Go(currentPos);
+            Thread.Sleep(150);
+            return isSucceed;
         }
         public Task<bool> CalibMotionAsync(RPoint position, double? LimZ) => Task.Run(() => CalibMotion(position, LimZ));
         public bool CalibOutIO(bool state) => false;

+ 2 - 2
TeamAAS-VM/Properties/AssemblyInfo.cs

@@ -51,5 +51,5 @@ using System.Windows;
 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
 //通过使用 "*",如下所示:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.2.0.1")]
-[assembly: AssemblyFileVersion("1.2.0.1")]
+[assembly: AssemblyVersion("1.2.0.2")]
+[assembly: AssemblyFileVersion("1.2.0.2")]

+ 8 - 1
TeamAAS-VM/ViewModels/Product/AutoCorrectLockPointViewModel.cs

@@ -95,6 +95,12 @@ namespace TeamAAS_VP.ViewModels.Product
             set { SetProperty(ref _Robot, value); }
         }
 
+        private ProductModel _SelectProduct;
+        public ProductModel SelectProduct
+        {
+            get { return _SelectProduct; }
+            set { SetProperty(ref _SelectProduct, value); }
+        }
         #endregion
 
         #region 命令
@@ -173,7 +179,7 @@ namespace TeamAAS_VP.ViewModels.Product
                     return;
                 }
                 //获取当前产品
-                var product = _productService.GetCurrentProduct();
+                var product = SelectProduct;
                 if (product == null)
                 {
                     _eventAggregator.GetEvent<SnackbarMessageNotification>().Publish(new MessageParameter() { Msg = "未选择产品,无法执行取料拍照点位矫正!", Duration = 1 });
@@ -377,6 +383,7 @@ namespace TeamAAS_VP.ViewModels.Product
         public void OnDialogOpened(IDialogParameters parameters)
         {
             Robot = parameters.GetValue<IRobot>("Robot");
+            SelectProduct=parameters.GetValue<ProductModel>("SelectProduct");
             AllScrewPoint = parameters.GetValue<List<PlcPoint>>("Points");
         }
 

+ 15 - 0
TeamAAS-VM/ViewModels/Product/PlcPointParamsViewModel.cs

@@ -1179,6 +1179,13 @@ namespace TeamAAS_VP.ViewModels.Product
         {
             try
             {
+                if (Camera != null)
+                {
+                    if (Camera.IsGrabbing)
+                    {
+                        ExecuteStopGrabbingCommand();
+                    }
+                }
                 //弹窗提示用户是否确认要通过相机自动矫正锁附点位
                 var resultConfirm = MessageBox.Show("确认要通过相机自动矫正锁附点位吗?", "确认", MessageBoxButton.YesNo, MessageBoxImage.Question);
                 if (resultConfirm != MessageBoxResult.Yes)
@@ -1224,6 +1231,7 @@ namespace TeamAAS_VP.ViewModels.Product
 
                 IDialogParameters parameters = new DialogParameters();
                 parameters.Add("Robot", Robot);
+                parameters.Add("SelectProduct", SelectProduct);
                 parameters.Add("Points", new List<PlcPoint>(SelectProduct.ScrewPoints.ToArray()));
                 _dialogService.Show("AutoCorrectLockPoint", parameters, rst =>
                 {
@@ -1266,6 +1274,13 @@ namespace TeamAAS_VP.ViewModels.Product
             Task<object> task;
             try
             {
+                if (Camera != null)
+                {
+                    if (Camera.IsGrabbing)
+                    {
+                        ExecuteStopGrabbingCommand();
+                    }
+                }
                 if (Robot == null || !Robot.IsConnected) return;
                 //弹窗提示用户是否确认要通过相机自动矫正锁附点位并执行该点位
                 var resultConfirm = MessageBox.Show($"确认要通过相机自动矫正锁附点位并执行点位 {point.Number} 吗?", "确认", MessageBoxButton.YesNo, MessageBoxImage.Question);