Beispiel #1
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();
        }
Beispiel #2
0
        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));
        }
Beispiel #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();
        }
Beispiel #4
0
        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
            };
        }