/// <summary> /// Device-specific implementation of Connect. /// Connects the camera. /// </summary> /// <remarks>This method is implicitely called by <see cref="Camera.Connect"/> inside a camera lock.</remarks> /// <seealso cref="Camera.Connect"/> protected override void ConnectImpl() { SetConfigurationMode(true); string protocolVersion = device.GetParameter("PcicProtocolVersion"); for (int i = 1; i < 33; i++) { try { edit.DeleteApplication(i); log.Debug("Deleted application: " + i); } catch { /* empty */ } } applicationId = edit.CreateApplication(); edit.EditApplication(applicationId); triggeredMode = 1; app.SetParameter("TriggerMode", triggeredMode.ToString()); appImager.SetParameter("ExposureTime", exposureTime.ToString()); appImager.SetParameter("FrameRate", framerate.ToString()); int clippingTop = Convert.ToInt32(appImager.GetParameter("ClippingTop")); int clippingBottom = Convert.ToInt32(appImager.GetParameter("ClippingBottom")); int clippingLeft = Convert.ToInt32(appImager.GetParameter("ClippingLeft")); int clippingRight = Convert.ToInt32(appImager.GetParameter("ClippingRight")); width = clippingRight - clippingLeft + 1; // indices are zero based --> +1 height = clippingBottom - clippingTop + 1; app.Save(); edit.StopEditingApplication(); device.SetParameter("ActiveApplication", applicationId.ToString()); device.Save(); SetConfigurationMode(false); ActivateChannel(ChannelNames.Amplitude); ActivateChannel(ChannelNames.Distance); ActivateChannel(ChannelNames.Point3DImage); ActivateChannel(ChannelNames.ZImage); ActivateChannel(ChannelNames.ConfidenceMap); ActivateChannel(ChannelNames.RawConfidenceMap); SelectChannel(ChannelNames.Amplitude); clientSocket = ConnectSocket(CameraIP, ImageOutputPort); updateWorker.RunWorkerAsync(); }