private static unsafe void RTLSDR_SamplesAvailable(object sender, SDRSharp.RTLSDR.SamplesAvailableEventArgs inputbuffer) { if (_inputfifoBuffer == null) { _inputfifoBuffer = new ComplexFifoStream(BlockMode.None); } if (_inputfifoBuffer.Length < _SampleRate) { _inputfifoBuffer.Write(inputbuffer.Buffer, inputbuffer.Length); } }
public void Process(Complex *buffer, int length) { if (!_spectrumAnalyzer.Visible) { return; } if (_displayBeforeFilter) { if (_iqStream.Length < length * 4) { _iqStream.Write(buffer, length); } } if (_enableFilter) { if (_complexFilter == null) { var kernel = FilterBuilder.MakeComplexKernel(_sampleRate, DefaultFilterOrder, _filterbandwidth, _filterOffset, WindowType.BlackmanHarris7); _complexFilter = new ComplexFilter(kernel); } else if (_updateFilter) { var kernel = FilterBuilder.MakeComplexKernel(_sampleRate, DefaultFilterOrder, _filterbandwidth, _filterOffset, WindowType.BlackmanHarris7); _complexFilter.SetKernel(kernel); _updateFilter = false; } _complexFilter.Process(buffer, length); } if (!_displayBeforeFilter) { if (_iqStream.Length < length * 4) { _iqStream.Write(buffer, length); } } }
private static void Controller_SamplesAvailable(object sender, SamplesAvailableEventArgs samps) { // IF RX Mode if (iqStream == null) { iqStream = new ComplexFifoStream(BlockMode.None); } if (iqStream.Length < SampleRate) { iqStream.Write(samps.Buffer, samps.Length); } else { _droppedBuffers++; } if (iqStream != null) { iqStream.Read(_rxBufferPtr, (int)SampleRate); for (int i = 0; i < SampleRate; i++) { Console.WriteLine(String.Format("{0:0.000000}\t{1:0.000000}", _rxBufferPtr[i].Real, _rxBufferPtr[i].Imag)); //Console.WriteLine($"{_bufferPtr[i].Imag} {_bufferPtr[i].Real}"); } } // TO DO if TX Mode //if (TXmode) //{ // samps.Buffer = //} }