public FormConfiguration(CameraSummary summary) { this.summary = summary; InitializeComponent(); tbAlias.AutoSize = false; tbAlias.Height = 20; tbAlias.Text = summary.Alias; lblSystemName.Text = summary.Name; btnIcon.BackgroundImage = summary.Icon; SpecificInfo specific = summary.Specific as SpecificInfo; if (specific == null || specific.Handle == null || !specific.Handle.IsValid) { return; } deviceHandle = specific.Handle; cameraProperties = CameraPropertyManager.Read(specific.Handle, summary.Identifier); if (cameraProperties.Count != specific.CameraProperties.Count) { specificChanged = true; } Populate(); }
private void Open() { if (grabbing) { Stop(); } try { deviceHandle = Pylon.CreateDeviceByIndex(deviceIndex); imageProvider.Open(deviceHandle); } catch (Exception e) { log.Error("Could not open Basler device."); LogError(e, imageProvider.GetLastErrorMessage()); return; } if (!deviceHandle.IsValid) { return; } SpecificInfo specific = summary.Specific as SpecificInfo; if (specific == null) { return; } // Store the handle into the specific info so that we can retrieve device informations from the configuration dialog. specific.Handle = deviceHandle; GenApiEnum currentStreamFormat = PylonHelper.ReadEnumCurrentValue(deviceHandle, "PixelFormat"); if (!string.IsNullOrEmpty(specific.StreamFormat) && specific.StreamFormat != currentStreamFormat.Symbol) { PylonHelper.WriteEnum(deviceHandle, "PixelFormat", specific.StreamFormat); } // The bayer conversion mode will be set during Prepare(). if (firstOpen) { // Restore camera parameters from the XML blurb. // Regular properties, including image size. // First we read the current properties from the API to get fully formed properties. // We merge the values saved in the XML into the properties. // (The restoration from the XML doesn't create fully formed properties, it just contains the values). // Then commit the properties to the camera. Dictionary <string, CameraProperty> cameraProperties = CameraPropertyManager.Read(deviceHandle, summary.Identifier); CameraPropertyManager.MergeProperties(cameraProperties, specific.CameraProperties); specific.CameraProperties = cameraProperties; CameraPropertyManager.WriteCriticalProperties(deviceHandle, specific.CameraProperties); } else { CameraPropertyManager.WriteCriticalProperties(deviceHandle, specific.CameraProperties); } }
private void BtnReconnect_Click(object sender, EventArgs e) { if (SelectedStreamFormat == null) { // This happens when we load the config window and the camera isn't connected. return; } SpecificInfo info = summary.Specific as SpecificInfo; if (info == null) { return; } info.StreamFormat = this.SelectedStreamFormat.Symbol; info.Bayer8Conversion = this.Bayer8Conversion; info.CameraProperties = this.CameraProperties; summary.UpdateDisplayRectangle(Rectangle.Empty); CameraTypeManager.UpdatedCameraSummary(summary); disconnect(); connect(); SpecificInfo specific = summary.Specific as SpecificInfo; if (specific == null || specific.Handle == null || !specific.Handle.IsValid) { return; } deviceHandle = specific.Handle; cameraProperties = CameraPropertyManager.Read(specific.Handle, summary.Identifier); RemoveCameraControls(); PopulateCameraControls(); UpdateResultingFramerate(); }
public FormConfiguration(CameraSummary summary, Action disconnect, Action connect) { this.summary = summary; this.disconnect = disconnect; this.connect = connect; InitializeComponent(); tbAlias.AutoSize = false; tbAlias.Height = 20; tbAlias.Text = summary.Alias; lblSystemName.Text = summary.Name; btnIcon.BackgroundImage = summary.Icon; btnReconnect.Text = CameraLang.FormConfiguration_Reconnect; SpecificInfo specific = summary.Specific as SpecificInfo; if (specific == null || specific.Handle == null || !specific.Handle.IsValid) { return; } deviceHandle = specific.Handle; cameraProperties = CameraPropertyManager.Read(specific.Handle, summary.Identifier); if (cameraProperties.Count != specific.CameraProperties.Count) { specificChanged = true; } bayer8Conversion = specific.Bayer8Conversion; Populate(); this.Text = CameraLang.FormConfiguration_Title; btnApply.Text = CameraLang.Generic_Apply; UpdateResultingFramerate(); }