private void SpectrometerStatusChanged(object sender, SpectrometerStatusChangedEventHandlerArgs args)
        {
            var spectrometer = ((ISpectrometer)sender);

            if (args.IsSpectrometerReady)
            {
                //_spectrometer.StatusChanged -= SpectrometerStatusChanged;

                CallThreadSafe(() =>
                {
                    if (!_isAutamaticMeasurements)
                    {
                        IsWait = false;
                    }
                    CcdLevels = spectrometer.CcdLevels;
                    SetCcdLevelsCollectionValues();
                });
            }
            else
            {
                Task.Run(() =>
                {
                    Logger.Error(spectrometer.LastError);
                    CallThreadSafe(() =>
                    {
                        WaitMessage = StringResourceProvider.Instance[StringResourceProvider.Keys.SpectrometerFailedSeeLogForDetails].Value;
                    });
                    Thread.Sleep(3000);

                    CallThreadSafe(() =>
                    {
                        if (!_isAutamaticMeasurements)
                        {
                            IsWait = false;
                        }
                        IsRealTimeSpectrometerData = false;
                        Values = null;
                    });
                });
            }
        }
 protected virtual void OnStatusChanged(SpectrometerStatusChangedEventHandlerArgs e)
 {
     StatusChanged?.Invoke(this, e);
 }
        protected void NotifyStatusChanged(bool isReady)
        {
            var e = new SpectrometerStatusChangedEventHandlerArgs(isReady);

            OnStatusChanged(e);
        }