Exemple #1
0
        /// <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();
        }