예제 #1
0
            public override IBullet Create(Vector where)
            {
                Decimator bullet = new Decimator(where, direction);

                ApplyDmgModifier(bullet);
                ApplyOnHits(bullet);
                return(bullet);
            }
예제 #2
0
        public void Decimate()
        {
            // TODO: write some better tests
            var input  = new List <ScreenPoint>();
            var output = new List <ScreenPoint>();
            int n      = 1000;

            for (int i = 0; i < n; i++)
            {
                input.Add(new ScreenPoint(Math.Round((double)i / n), Math.Sin(i)));
            }

            Decimator.Decimate(input, output);
            Assert.AreEqual(6, output.Count);
        }
예제 #3
0
        private unsafe void startButtonClick(object sender, EventArgs e)
        {
            rtlDevice                       = new Device(0);
            rtlDevice.Frequency             = frequency;
            rtlDevice.SamplesAvailable     += D_SamplesAvailable;
            mainSpectrumAnalyzer.Frequency  = rtlDevice.Frequency;
            mainSpectrumAnalyzer.SampleRate = rtlDevice.SampleRate;

            maxIqSamples = (int)(audioBufferInMs * rtlDevice.SampleRate / 1000);

            _fftStream          = new ComplexFifo(maxIqSamples);
            _fftStreamDecimator = new ComplexFifo(maxIqSamples);
            _fftStream.Open();
            _fftStreamDecimator.Open();

            decimator       = new Decimator(rtlDevice.SampleRate, (uint)decimatorRatio, (uint)fftBins);
            audioDecimator  = new InlineFloatDecimator(rtlDevice.SampleRate / decimatorRatio, (uint)decimatorRatio);
            audioSampleRate = (int)((rtlDevice.SampleRate / decimatorRatio) / decimatorRatio);
            audioBuffer     = DataBuffer.Create((audioBufferInMs * audioSampleRate / 1000), sizeof(float));
            audioPtr        = (float *)audioBuffer;
            fmLpf           = new FloatLPF(audioSampleRate, 22050, 127);
            _audioFifo      = new FloatFifo(16 * audioBufferInMs * audioSampleRate / 1000);
            _audioFifo.Open();
            _audioPlayer = new AudioPlayer(audioDeviceIdx, audioSampleRate, (uint)(audioBufferInMs * audioSampleRate / 1000), audioBufferNeeded);

            sFFTDecimator = new SFFT((int)(fftBins / audioDecimator.DecimationFactor));

            ifSpectrumAnalizer.Frequency  = rtlDevice.Frequency;
            ifSpectrumAnalizer.SampleRate = decimator.OutputSampleRate;
            decimator.SamplesAvailable   += Decimator_SamplesAvailable;
            rtlDevice.UseRtlAGC           = false;
            rtlDevice.UseTunerAGC         = false;
            rtlDevice.VGAGain             = vgaGain.Value = 3;
            rtlDevice.LNAGain             = lnaGain.Value = 7;
            rtlDevice.MixerGain           = mixerGain.Value = 3;
            rtlDevice.Start();
            dspHit     = true;
            _dspThread = new Thread(dspWork);
            _dspThread.Start();
            fftTimer.Enabled    = true;
            startButton.Enabled = false;
            stopButton.Enabled  = true;

            Console.WriteLine("Receiving Samples now.");
        }