public CameraModel GetCameraModel(IDslrCamera camera, string storePath) { _imageData = null; camera.ConnectCamera(); var model = camera.Model; camera.ImageReady += Camera_ImageReady; camera.StorePath = storePath; camera.Iso = 200; camera.ImageFormat = Enums.ImageFormat.RAW; camera.IsLiveViewMode = false; camera.StartExposure(1, true); oSignalEvent.WaitOne(60 * 1000); oSignalEvent.Reset(); CameraModel result = null; if (_imageData != null) { result = new CameraModel(); result.ImageWidth = _imageData.GetLength(0); result.ImageHeight = _imageData.GetLength(1); result.SensorWidth = 22.5; result.SensorHeight = 15; result.Name = model; } return(result); }
public CameraModel GetCameraModel(IDslrCamera camera, string storePath) { CameraModel result = null; _imageData = null; camera.ConnectCamera(); var model = camera.Model; camera.ImageReady += Camera_ImageReady; camera.ExposureFailed += Camera_ExposureFailed; camera.StorePath = storePath; camera.Iso = 200; camera.ImageFormat = Enums.ImageFormat.RAW; camera.IsLiveViewMode = false; boolCameraError = false; camera.StartExposure(1, true); // modified to checked if the signal was set as opposed to a timeout occured //TESTING without the if. Looks like it is working for Nikon without IF statement oSignalEvent.WaitOne(60 * 1000); oSignalEvent.Reset(); if (_imageData != null) { result = new CameraModel(); result.ImageWidth = _imageData.GetLength(0); result.ImageHeight = _imageData.GetLength(1); result.SensorWidth = 22.5; result.SensorHeight = 15; result.Name = model; } /*if (oSignalEvent.WaitOne(60 * 1000)) * { * oSignalEvent.Reset(); * * if (!boolCameraError && (_imageData != null)) * { * result = new CameraModel(); * result.ImageWidth = _imageData.GetLength(0); * result.ImageHeight = _imageData.GetLength(1); * result.SensorWidth = 22.5; * result.SensorHeight = 15; * result.Name = model; * } * else * { * Logger.WriteTraceMessage("CameraModelDetector.GetCameraModel: Camera Exposure failed, msg = " + exposureFailedEventArgs.Message + "'"); * * throw new DriverException("Camera Exposure failed, msg'" + exposureFailedEventArgs.Message + "'"); * } * } * else * { * // TODO: figure out how to handle this better.... This will just throw an exception to the user and close the app * Logger.WriteTraceMessage("CameraModelDetector.GetCameraModel: timeout waiting for setup exposure"); * * throw new DriverException("Timeout waiting for setup exposure"); * * }*/ return(result); }