Преглед изворни кода

修复OPT相机采集图像时间久的问题

徐孝锋 пре 8 месеци
родитељ
комит
b40b5841bd
1 измењених фајлова са 15 додато и 4 уклоњено
  1. 15 4
      TeamAAS-VM/Core/Cameras/OptCamera.cs

+ 15 - 4
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,7 +386,13 @@ namespace TeamAAS_VP.Core.Cameras
             //_operationSemaphore.Wait();
             try
             {
-                mvCameraAcq.CloseDevice();
+                if (mvCameraAcq!=null)
+                {
+                    mvCameraAcq.StopGrabbing();
+                    mvCameraAcq.CloseDevice();
+                }
+                
+                
             }
             finally
             {
@@ -410,20 +420,21 @@ namespace TeamAAS_VP.Core.Cameras
                         {
                             OpenDevice();
                         }
-                        nReVal = mvCameraAcq.StartGrabbing();
+                        //nReVal = mvCameraAcq.StartGrabbing();
+                        mvCameraAcq.ClearPayloadBuffer();
                         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();