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(); }
public void InitializeStreams() { LiveAudio = new LiveAudioPlayer(new G313AudioProvider(Radio), fftAnalysis: false, preBuffer: Settings.AudioBuffer); LiveIf = new LiveAudioPlayer(new G313IfProvider(Radio), fftAnalysis: false, preBuffer: Settings.AudioBuffer); RecordAudio = new LiveAudioRecorder(new G313AudioProvider(Radio)); RecordIf = new LiveAudioRecorder(new G313IfProvider(Radio)); RecordMp3Audio = new LiveMp3Recorder(new G313AudioProvider(Radio)); RecordMp3If = new LiveMp3Recorder(new G313IfProvider(Radio)); FftAnalyzer = new LiveFftAnalyzer(new G313IfProvider(Radio)); }
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(); }
public Ddc2Model(G31DdcRadio radio, uint index) { Radio = radio; Index = index; _ddc2Provider = new G3XDdcDdc2StreamProvider(Radio.Ddc2(Index)); _audioProvider = new G3XDdcAudioProvider(Radio.Ddc2(Index)) { UseFilteredDate = true }; _recordProvider = new G3XDdcAudioProvider(Radio.Ddc2(Index)) { UseFilteredDate = true }; FftAnalyzerDdc2 = new LiveFftAnalyzer(_ddc2Provider, RadioModel.DDC2_FFT, false) { ForceInstantFft = false }; }