예제 #1
0
        void imager_m_imagerEvent(object sender, ImagerEventArgs e)
        {
            // use invoke here to make sure the code below runs on UI thread (sometimes this event is raised from non-UI threads)
            Application.Current.Dispatcher.Invoke(() =>
            {
                switch (e.State)
                {
                case ImagerState.Idle:
                    QuitPB.IsEnabled = true;
                    break;

                case ImagerState.Error:
                    QuitPB.IsEnabled = true;
                    break;

                case ImagerState.Busy:
                    QuitPB.IsEnabled = false;
                    break;
                }
            }); // END Invoke
        }
예제 #2
0
        void m_imager_m_imagerEvent(object sender, ImagerEventArgs e)
        {
            // use invoke here to make sure the code below runs on UI thread (sometimes this event is raised from non-UI threads)
            Application.Current.Dispatcher.Invoke(() =>
            {
                switch (e.State)
                {
                case ImagerState.Idle:
                    if (vm.IsOptimizing)
                    {
                        ImageGrid.Children.Remove(m_spinner);
                        vm.IsOptimizing = false;
                        if (m_imager.OptimizationResult_Success)
                        {
                            vm.Exposure        = m_imager.OptimizationResult_Exposure;
                            vm.EMGain          = m_imager.m_camera.m_cameraParams.EMGain;
                            vm.PreAmpGainIndex = m_imager.m_camera.m_cameraParams.PreAmpGainIndex;
                            vm.Binning         = m_imager.m_camera.m_acqParams.HBin;
                            CalculateTimings();
                        }
                        else
                        {
                            MessageBox.Show("Optimization Failed");
                        }

                        TakePicturePB_Click(null, null);
                    }

                    TakePicturePB.IsEnabled         = true;
                    OptimizePB.IsEnabled            = true;
                    ExcitationFilterCB.IsEnabled    = true;
                    EmissionFilterCB.IsEnabled      = true;
                    BinningCB.IsEnabled             = true;
                    CycleTime.IsEnabled             = true;
                    PreAmpGainCombo.IsEnabled       = true;
                    Exposure.IsEnabled              = true;
                    EMGain.IsEnabled                = true;
                    ApplyMaskCkBx.IsEnabled         = true;
                    SignalTypeGroupBox.IsEnabled    = true;
                    CameraSettingsCB.IsEnabled      = true;
                    StartVideoPB.IsEnabled          = true;
                    StartVideoPB.Content            = "Start Video";
                    OptimizePB.Content              = "Optimize";
                    SaveImagePB.IsEnabled           = true;
                    FlatFieldCorrectionCB.IsEnabled = true;
                    WellSelectionPB.IsEnabled       = true;


                    m_imager.m_kineticImagingON = false;

                    ErrorText.Text       = "Ready";
                    ErrorText.Foreground = new SolidColorBrush(Colors.Green);
                    break;

                case ImagerState.Error:
                    ErrorText.Text       = e.Message;
                    ErrorText.Foreground = new SolidColorBrush(Colors.Red);
                    break;

                case ImagerState.Busy:
                    ErrorText.Text       = "Busy";
                    ErrorText.Foreground = new SolidColorBrush(Colors.Green);
                    break;
                }
            }); // END Invoke
        }