public void ResumeStreams() { LiveAudio.Play(); //LiveIf.Play(); FftAnalyzer.Start(); }
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(); }
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(); }