private void AcquireImages() { if (requestNewFrame && zedReady) { /// call grab() to request a new frame sl.ERROR_CODE e = zedCamera.Grab(ref runtimeParameters); lock (grabLock) { if (e == sl.ERROR_CODE.CAMERA_NOT_DETECTED) { Debug.Log("Camera not detected or disconnected."); isDisconnected = true; Thread.Sleep(10); requestNewFrame = false; } else if (e == sl.ERROR_CODE.SUCCESS) { //Save the timestamp cameraTimeStamp = zedCamera.GetCameraTimeStamp(); #if UNITY_EDITOR float camera_fps = zedCamera.GetCameraFPS(); cameraFPS = camera_fps.ToString() + "Fps"; if (camera_fps <= FPS * 0.8) { cameraFPS += " WARNING: Low USB bandwidth detected"; } #endif //Get position of camera if (isTrackingEnable) { zedtrackingState = zedCamera.GetPosition(ref zedOrientation, ref zedPosition, ref rotationOffset, ref positionOffset); } else { zedtrackingState = sl.TRACKING_STATE.TRACKING_OFF; } // Indicate that a new frame is available and pause the thread until a new request is called newFrameAvailable = true; requestNewFrame = false; } } } else { //to avoid "overheat" Thread.Sleep(1); } }
private void AcquireImages() { if (requestNewFrame && zedReady) { sl.ERROR_CODE e = sl.ERROR_CODE.NOT_A_NEW_FRAME; // Live or SVO ? if SVO is in pause, don't need to call grab again since image will not change if (zedSVOManager == null) { e = zedCamera.Grab(ref runtimeParameters); } else { if (!zedSVOManager.pause) { e = zedCamera.Grab(ref runtimeParameters); } else { if (zedSVOManager.NeedNewFrameGrab) { e = zedCamera.Grab(ref runtimeParameters); zedSVOManager.NeedNewFrameGrab = false; } else { e = sl.ERROR_CODE.SUCCESS; } } } lock (grabLock) { if (e == sl.ERROR_CODE.CAMERA_NOT_DETECTED) { Debug.Log("Camera not detected or disconnected."); isDisconnected = true; Thread.Sleep(10); requestNewFrame = false; } else if (e == sl.ERROR_CODE.SUCCESS) { //Save the timestamp cameraTimeStamp = zedCamera.GetCameraTimeStamp(); #if UNITY_EDITOR float camera_fps = zedCamera.GetCameraFPS(); cameraFPS = camera_fps.ToString() + "Fps"; if (camera_fps <= FPS * 0.8) { cameraFPS += " WARNING: Low USB bandwidth detected"; } #endif //Get position of camera if (isTrackingEnable) { zedtrackingState = zedCamera.GetPosition(ref zedOrientation, ref zedPosition, sl.TRACKING_FRAME.LEFT_EYE); } else { zedtrackingState = sl.TRACKING_STATE.TRACKING_OFF; } // Indicate that a new frame is available and pause the thread until a new request is called newFrameAvailable = true; requestNewFrame = false; } else { Thread.Sleep(1); } } } else { //to avoid "overheat" Thread.Sleep(1); } }