Ejemplo n.º 1
0
        public ObservableCollection <Camera.HSSpeed> hsspeeds; // this is set to either hsspeeds_EM or hsspeeds_Conv, depending whether EM Amp is used


        public CameraSettingsManager_ViewModel(Imager imager, WaveguideDB wgDB)
        {
            _imager = imager;
            _camera = _imager.m_camera;
            _wgDB   = wgDB;
            _camera.GetCameraCapabilities();

            _wgDB.GetAllCameraSettings();
            CameraSettingsList = _wgDB.m_cameraSettingsList;
            if (CameraSettingsList.Count > 0)
            {
                CurrentCameraSettings = CameraSettingsList.ElementAt(0);
            }
            else
            {
                CurrentCameraSettings = new CameraSettingsContainer();

                CurrentCameraSettings.CameraSettingID   = 0;
                CurrentCameraSettings.VSSIndex          = 0;
                CurrentCameraSettings.HSSIndex          = 0;
                CurrentCameraSettings.VertClockAmpIndex = 0;
                CurrentCameraSettings.UseEMAmp          = true;
                CurrentCameraSettings.UseFrameTransfer  = true;
                CurrentCameraSettings.Description       = "";
                CurrentCameraSettings.IsDefault         = true;

                CurrentCameraSettings.StartingExposure                   = 2;
                CurrentCameraSettings.ExposureLimit                      = 1000;
                CurrentCameraSettings.HighPixelThresholdPercent          = 80;
                CurrentCameraSettings.LowPixelThresholdPercent           = 10; // 60 if !IncreasingSignal (i.e. a decreasing signal)
                CurrentCameraSettings.MinPercentPixelsAboveLowThreshold  = 50;
                CurrentCameraSettings.MaxPercentPixelsAboveHighThreshold = 10;
                CurrentCameraSettings.IncreasingSignal                   = true;
                CurrentCameraSettings.StartingBinning                    = 1;
                CurrentCameraSettings.EMGainLimit = 300;
            }

            // set camera capabilities
            vsspeeds = _camera.VSSpeeds;
            vertClockVoltageAmplitudes = _camera.VertClockVoltageAmplitudes;
            hsspeeds_EM   = _camera.HSSpeeds_EM;
            hsspeeds_Conv = _camera.HSSpeeds_Conv;
            if (_currentCameraSettings.UseEMAmp)
            {
                hsspeeds = hsspeeds_EM;
            }
            else
            {
                hsspeeds = hsspeeds_Conv;
            }
            preAmpGains      = _camera.PreAmpGains;
            readModes        = _camera.ReadModes;
            acquisitionModes = _camera.AcquisitionModes;
            triggerModes     = _camera.TriggerModes;
            eMGainModes      = _camera.EMGainModes;
            adChannelOptions = _camera.ADChannelOptions;
            binningOptions   = _camera.BinningOptions;
        }
Ejemplo n.º 2
0
        private void SaveAsPB_Click(object sender, RoutedEventArgs e)
        {
            CameraSettingsContainer cs = vm.AddNew();

            if (cs != null)
            {
                dgCameraSettings.SelectedValue = cs;
            }
        }
Ejemplo n.º 3
0
        private void NewPB_Click(object sender, RoutedEventArgs e)
        {
            StringEntryDialog dlg = new StringEntryDialog("Add New Camera Settings Entry", "Enter Name:");

            dlg.ShowDialog();

            if (dlg.result == MessageBoxResult.OK)
            {
                CameraSettingsContainer cs = vm.AddNew(dlg.enteredString);
            }
        }
Ejemplo n.º 4
0
        private bool UpdateDatabase(CameraSettingsContainer cs)
        {
            bool success = _wgDB.UpdateCameraSettings(cs);

            if (!success)
            {
                string errMsg = _wgDB.GetLastErrorMsg();
                MessageBox.Show("Failed to Update Camera Settings: " + errMsg, "Database Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            return(success);
        }
Ejemplo n.º 5
0
        public CameraSettingsContainer DeleteCurrent()
        {
            if (CameraSettingsList.Count < 1)
            {
                MessageBox.Show("Cannot Delete the last Camera Settings Item", "Database Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                MessageBoxResult result = MessageBox.Show("Are you sure you want to delete: " +
                                                          CurrentCameraSettings.Description + "?", "Delete Camera Setting Item", MessageBoxButton.YesNo, MessageBoxImage.Question);

                if (result == MessageBoxResult.Yes)
                {
                    // save item to delete
                    bool needToResetDefault = false;
                    CameraSettingsContainer itemToDelete = CurrentCameraSettings;
                    if (itemToDelete.IsDefault)
                    {
                        needToResetDefault = true;
                    }

                    // find item to be the new current item
                    foreach (var cs in CameraSettingsList)
                    {
                        if (cs.CameraSettingID != itemToDelete.CameraSettingID)
                        {
                            bool success = _wgDB.DeleteCameraSettings(itemToDelete.CameraSettingID);
                            if (success)
                            {
                                CurrentCameraSettings = cs;
                                if (needToResetDefault)
                                {
                                    CurrentCameraSettings.IsDefault = true;
                                }
                                CameraSettingsList.Remove(itemToDelete);
                            }

                            break;
                        }
                    }
                }
            }

            return(CurrentCameraSettings);
        }
Ejemplo n.º 6
0
        /////////////////////////////
        // Private Constructor
        private ExperimentParams()
        {
            _numFoFrames                  = 5;
            _experimentPlate              = new PlateContainer();
            _experiment                   = new ExperimentContainer();
            _compoundPlateList            = new System.Collections.ObjectModel.ObservableCollection <ExperimentCompoundPlateContainer>();
            _controlSubtractionWellList   = new System.Collections.ObjectModel.ObservableCollection <Tuple <int, int> >();
            _indicatorList                = new System.Collections.ObjectModel.ObservableCollection <ExperimentIndicatorContainer>();
            _experimentRunPlateCount      = 2;
            _experimentCurrentPlateNumber = 0;

            _writeExcelReport     = true;
            _writeWaveguideReport = true;

            m_wgDB = new WaveguideDB();
            bool success = m_wgDB.GetCameraSettingsDefault(out _cameraSettings);

            if (!success)
            {
                _cameraSettings = new CameraSettingsContainer();
            }
        }
Ejemplo n.º 7
0
        public CameraSettingsContainer AddNew(string description)
        {
            CameraSettingsContainer cs = new CameraSettingsContainer();

            cs.Description               = description;
            cs.ExposureLimit             = CurrentCameraSettings.ExposureLimit;
            cs.HighPixelThresholdPercent = CurrentCameraSettings.HighPixelThresholdPercent;
            cs.HSSIndex                           = CurrentCameraSettings.HSSIndex;
            cs.IncreasingSignal                   = CurrentCameraSettings.IncreasingSignal;
            cs.IsDefault                          = false;
            cs.LowPixelThresholdPercent           = CurrentCameraSettings.LowPixelThresholdPercent;
            cs.MaxPercentPixelsAboveHighThreshold = CurrentCameraSettings.MaxPercentPixelsAboveHighThreshold;
            cs.MinPercentPixelsAboveLowThreshold  = CurrentCameraSettings.MinPercentPixelsAboveLowThreshold;
            cs.StartingExposure                   = CurrentCameraSettings.StartingExposure;
            cs.UseEMAmp                           = CurrentCameraSettings.UseEMAmp;
            cs.UseFrameTransfer                   = CurrentCameraSettings.UseFrameTransfer;
            cs.VertClockAmpIndex                  = CurrentCameraSettings.VertClockAmpIndex;
            cs.VSSIndex                           = CurrentCameraSettings.VSSIndex;
            cs.EMGainLimit                        = CurrentCameraSettings.EMGainLimit;
            cs.StartingBinning                    = CurrentCameraSettings.StartingBinning;


            bool success = myWgDB.InsertCameraSettings(ref cs);

            if (success)
            {
                CameraSettingsList.Add(cs);
                CurrentCameraSettings = cs;
            }
            else
            {
                string errMsg = myWgDB.GetLastErrorMsg();
                MessageBox.Show("Failed to Add new Camera Settings record to database: " + errMsg, "Database Error", MessageBoxButton.OK, MessageBoxImage.Error);
                cs = null;
            }

            return(cs);
        }
Ejemplo n.º 8
0
        private void DeletePB_Click(object sender, RoutedEventArgs e)
        {
            CameraSettingsContainer cs = vm.DeleteCurrent();

            dgCameraSettings.SelectedValue = cs;
        }
Ejemplo n.º 9
0
        //  Constructor
        public CameraSetupModel(Imager imager, WaveguideDB wgDB, bool AllowCameraConfiguration, bool _isManualMode)
        {
            if (imager == null)
            {
                return;
            }
            if (imager.m_camera == null)
            {
                return;
            }
            myImager = imager;
            myCamera = MyImager.m_camera;
            myWgDB   = wgDB;

            myCamera.GetCameraCapabilities(); // make sure camera properties are updated

            myWgDB.GetAllCameraSettings();    // make sure camera settings list in wgDB is populated
            cameraSettingsList = myWgDB.m_cameraSettingsList;
            if (CameraSettingsList.Count > 0)
            {
                CurrentCameraSettings = CameraSettingsList.ElementAt(0);
            }
            else
            {
                CurrentCameraSettings = new CameraSettingsContainer();

                CurrentCameraSettings.CameraSettingID   = 0;
                CurrentCameraSettings.VSSIndex          = 0;
                CurrentCameraSettings.HSSIndex          = 0;
                CurrentCameraSettings.VertClockAmpIndex = 0;
                CurrentCameraSettings.UseEMAmp          = true;
                CurrentCameraSettings.UseFrameTransfer  = true;
                CurrentCameraSettings.Description       = "";
                CurrentCameraSettings.IsDefault         = true;

                CurrentCameraSettings.StartingExposure                   = 2;
                CurrentCameraSettings.ExposureLimit                      = 1000;
                CurrentCameraSettings.HighPixelThresholdPercent          = 80;
                CurrentCameraSettings.LowPixelThresholdPercent           = 10; // 60 if !IncreasingSignal (i.e. a decreasing signal)
                CurrentCameraSettings.MinPercentPixelsAboveLowThreshold  = 50;
                CurrentCameraSettings.MaxPercentPixelsAboveHighThreshold = 10;
                CurrentCameraSettings.IncreasingSignal                   = true;
                CurrentCameraSettings.StartingBinning                    = 1;
                CurrentCameraSettings.EMGainLimit = 300;
            }

            cameraParams = MyCamera.m_cameraParams;
            acqParams    = MyCamera.m_acqParams;

            exposure     = 1;
            isOptimizing = false;

            // set camera capabilities
            vsspeeds = MyCamera.VSSpeeds;
            vertClockVoltageAmplitudes = MyCamera.VertClockVoltageAmplitudes;
            hsspeeds_EM   = MyCamera.HSSpeeds_EM;
            hsspeeds_Conv = MyCamera.HSSpeeds_Conv;
            if (cameraParams.UseEMAmp)
            {
                hsspeeds = hsspeeds_EM;
            }
            else
            {
                hsspeeds = hsspeeds_Conv;
            }
            emGain_LowLimit  = MyCamera.EMGain_LowLimit;
            emGain_HighLimit = MyCamera.EMGain_HighLimit;
            preAmpGains      = MyCamera.PreAmpGains;
            binningOptions   = MyCamera.BinningOptions;


            // get Camera Parameters
            cameraParams = MyCamera.m_cameraParams;


            // get Acquisition Parameters
            acqParams = MyCamera.m_acqParams;


            showConfigPanel = false;                    // start with configuration panel hidden
            enableConfig    = AllowCameraConfiguration; // if false, hides the configuration tab so that configuration cannot be performed
            isManualMode    = _isManualMode;
            applyMask       = true;


            myWgDB.GetAllExcitationFilters();
            exFilterList = new ObservableCollection <FilterContainer>();
            foreach (FilterContainer fc in myWgDB.m_filterList)
            {
                if (fc.FilterChanger == 1)
                {
                    exFilterList.Add(fc);
                }
            }
            exFilter = exFilterList[0];

            myWgDB.GetAllEmissionFilters();
            emFilterList = new ObservableCollection <FilterContainer>();
            foreach (FilterContainer fc in myWgDB.m_filterList)
            {
                if (fc.FilterChanger == 0)
                {
                    emFilterList.Add(fc);
                }
            }
            emFilter = emFilterList[0];

            sliderLowPosition  = 0.0;
            sliderHighPosition = 100.0;

            cycleTime    = 1;
            minCycleTime = 1;
            maxCycleTime = 10000;


            WellSelectionPBLabel = "";

            flatFieldCorrectionItems = new ObservableCollection <FlatFieldCorrectionItem>();
            flatFieldCorrectionItems.Add(new FlatFieldCorrectionItem("None", FLATFIELD_SELECT.NONE));
            flatFieldCorrectionItems.Add(new FlatFieldCorrectionItem("Fluorescent", FLATFIELD_SELECT.USE_FLUOR));
            flatFieldCorrectionItems.Add(new FlatFieldCorrectionItem("Luminescent", FLATFIELD_SELECT.USE_LUMI));

            flatFieldSelect = flatFieldCorrectionItems[0];
        }