/// <summary> /// Contructor of the main form /// </summary> public Form1() { InitializeComponent(); SdkInfoStruct sdkInfo = SeekwareDevice.GetSdkInfo(); sdkVersionTextBox.Text = string.Format("{0}.{1}", sdkInfo.sdk_version_major, sdkInfo.sdk_version_minor); // populate device list combo box mSeekDeviceList = SeekwareDevice.GetDeviceList(); foreach (var dev in mSeekDeviceList) { selectCameraComboBox.Items.Add(dev.SerialNumber); } // populate temperature units combo box tempUnitsComboBox.DataSource = Enum.GetValues(typeof(SeekwareDevice.SwTemperatureUnits)); tempUnitsComboBox.SelectedItem = SeekwareDevice.SwTemperatureUnits.Celsius; // populate the display lut lutComboBox.DataSource = Enum.GetValues(typeof(SeekwareDevice.SwDisplayLut)); lutComboBox.SelectedItem = SeekwareDevice.SwDisplayLut.Spectra; // set the initial state and start the find devices timer State = ControlStates.Closed; findDevicesTimer.Enabled = true; }
/// <summary> /// Get connected SeewareDevice list on the timer tick /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void findDevicesTimer_Tick(object sender, EventArgs e) { findDevicesTimer.Enabled = false; // gets a list of attached devices List <SeekwareDevice> newDevices = SeekwareDevice.GetDeviceList(); List <SeekwareDevice> addedDevices = new List <SeekwareDevice>(); List <SeekwareDevice> removedDevices = new List <SeekwareDevice>(); lock (mDeviceListLockObject) { // make a list of new devices that are not in our current list foreach (var dev in newDevices) { if (mSeekDeviceList.FindIndex(x => x.SerialNumber == dev.SerialNumber) < 0) { addedDevices.Add(dev); } } // make a list of devices that have been removed from our current list foreach (var dev in mSeekDeviceList) { if (newDevices.FindIndex(x => x.SerialNumber == dev.SerialNumber) < 0) { removedDevices.Add(dev); } } // add any new devices to the mSeekDeviceList and the device combobox foreach (var dev in addedDevices) { mSeekDeviceList.Add(dev); selectCameraComboBox.Items.Add(dev.SerialNumber); } // remove any devices that are no longer attached from the mSeekDeviceList and the device combobox foreach (var remove in removedDevices) { if (mActiveDevice != null && mActiveDevice.SerialNumber == remove.SerialNumber) { if (mActiveDevice.IsOpen) { Close(mActiveDevice); } } mSeekDeviceList.Remove(remove); selectCameraComboBox.Items.Remove(remove.SerialNumber); } } findDevicesTimer.Enabled = true; }