Ejemplo n.º 1
0
        public void ResumeStreams()
        {
            LiveAudio.Play();
            //LiveIf.Play();

            FftAnalyzer.Start();
        }
Ejemplo n.º 2
0
        public RadioModel()
        {
            BasicRadioInfo basicRadioInfo = new BasicRadioInfo();

            var basicRadioInfos = Radio <G31DdcRadio> .Find().ListAll();

            bool b = basicRadioInfo.IsEmulatedDevice();

            if (basicRadioInfos.Count > 0)
            {
                basicRadioInfo = basicRadioInfos.First();
                // this.Title = "NMG31";
                // this.Title = String.Format("WR-G31DDC - {1}", basicRadioInfo.Name, basicRadioInfo.Serial);
            }

            Radio = basicRadioInfo.Open <G31DdcRadio>();

            Ddc2    = new Ddc2Model[3];
            Ddc2[0] = new Ddc2Model(Radio, 0);
            Ddc2[1] = new Ddc2Model(Radio, 1);
            Ddc2[2] = new Ddc2Model(Radio, 2);

            _ifProvider   = new G3XDdcIfProvider(Radio);
            _ddc1Provider = new G3XDdcDdc1StreamProvider(Radio.Ddc1());

            FftAnalyzerIf = new LiveFftAnalyzer(_ifProvider, IF_FFT);
            FftAnalyzerIf.Start();

            FftAnalyzerDdc1 = new LiveFftAnalyzer(_ddc1Provider, DDC1_FFT, false)
            {
                ForceInstantFft = false
            };
            FftAnalyzerDdc1.Start();
        }
Ejemplo n.º 3
0
        private void Execute()
        {
            var fftLength = FftLength();
            var garbage   = 0;

            var fft = new LiveFftAnalyzer(new G313IfProvider(_radio), fftLength);

            fft.FftCalculated += (s, e) =>
            {
                garbage++;
                if (garbage < _sweepParameters.FftWarmup)
                {
                    return;
                }

                fft.Stop();
                fft.Reset();
                SweepBins(e);
                garbage = 0;
                _fftLock.Set();
            };

            var start = _sweepParameters.From + _sweepParameters.SweepSpan;
            var end   = _sweepParameters.To - _sweepParameters.SweepSpan;

            for (var i = start; i < end; i += _sweepParameters.SweepSpan)
            {
                if (_stop)
                {
                    //OnSweepFinished();
                    fft.Stop();
                    return;
                }

                _fftLock.Reset();
                _radio.Frequency((uint)i);
                fft.Start();
                _fftLock.WaitOne();
            }

            //OnSweepFinished();
        }