Updates test tuner to cleanup the buffer reuse settings

This commit is contained in:
Denny
2018-01-20 04:26:53 -05:00
parent b6f282a85a
commit 0cf964fa98
3 changed files with 33 additions and 7 deletions

View File

@@ -381,6 +381,9 @@ public class ChannelizerViewer extends JFrame
{ {
TestTuner tuner = new TestTuner(); TestTuner tuner = new TestTuner();
//Turn on buffer reuse since we're simply profiling data flow/throughput
tuner.getTunerController().setReuseBuffers(true);
List<TunerChannel> tunerChannels = getTunerChannels(tuner); List<TunerChannel> tunerChannels = getTunerChannels(tuner);
List<TunerChannelSource> sources = new ArrayList<>(); List<TunerChannelSource> sources = new ArrayList<>();
@@ -424,5 +427,4 @@ public class ChannelizerViewer extends JFrame
while(true); while(true);
} }
} }
} }

View File

@@ -50,7 +50,7 @@ public class SampleGenerator
* @param sweepUpdateRate to turn on sweeping of the tone frequency where the frequency is incremented by the * @param sweepUpdateRate to turn on sweeping of the tone frequency where the frequency is incremented by the
* rate specified at each interval, resetting to 1 Hz after reaching/exceeding the highest frequency. * rate specified at each interval, resetting to 1 Hz after reaching/exceeding the highest frequency.
*/ */
public SampleGenerator(int sampleRate, long frequency, long interval, int sweepUpdateRate, boolean reuseBuffers) public SampleGenerator(int sampleRate, long frequency, long interval, int sweepUpdateRate)
{ {
if(Math.abs(sweepUpdateRate) >= sampleRate) if(Math.abs(sweepUpdateRate) >= sampleRate)
{ {
@@ -60,7 +60,6 @@ public class SampleGenerator
mOscillator = new LowPhaseNoiseOscillator(sampleRate, frequency); mOscillator = new LowPhaseNoiseOscillator(sampleRate, frequency);
mInterval = interval; mInterval = interval;
mSweepUpdateInterval = sweepUpdateRate; mSweepUpdateInterval = sweepUpdateRate;
mReuseBuffers = reuseBuffers;
updateSamplesPerInterval(); updateSamplesPerInterval();
} }
@@ -74,9 +73,24 @@ public class SampleGenerator
* @param frequency of the tone produced by the generator * @param frequency of the tone produced by the generator
* @param interval in milliseconds for generating samples * @param interval in milliseconds for generating samples
*/ */
public SampleGenerator(int sampleRate, long frequency, long interval, boolean reuseBuffers) public SampleGenerator(int sampleRate, long frequency, long interval)
{ {
this(sampleRate, frequency, interval, 0, reuseBuffers); this(sampleRate, frequency, interval, 0);
}
/**
* Instructs the sample generator to reuse the same sample buffer each time instead of generating new samples for
* each and every buffer. This is useful when you simply want to generate data to test or profile data flows and
* are not concerned about the content of the buffers.
*
* The generator will create a new buffer of data each time that it detects that the sample size changes or when
* the tone frequency changes.
*
* @param reuseBuffers set to true to turn on buffer reuse
*/
public void setReuseBuffers(boolean reuseBuffers)
{
mReuseBuffers = reuseBuffers;
} }
/** /**

View File

@@ -40,7 +40,6 @@ public class TestTunerController extends TunerController
public static final long SAMPLE_GENERATION_INTERVAL = 1000 / SPECTRAL_FRAME_RATE; public static final long SAMPLE_GENERATION_INTERVAL = 1000 / SPECTRAL_FRAME_RATE;
private SampleGenerator mSampleGenerator; private SampleGenerator mSampleGenerator;
private boolean mReuseBuffers = true;
private long mFrequency = 100000000l; private long mFrequency = 100000000l;
/** /**
@@ -53,7 +52,7 @@ public class TestTunerController extends TunerController
int sweepRate = 0; //Hz per interval int sweepRate = 0; //Hz per interval
long initialToneFrequency = SAMPLE_RATE / 2 + 100; long initialToneFrequency = SAMPLE_RATE / 2 + 100;
mSampleGenerator = new SampleGenerator(SAMPLE_RATE, initialToneFrequency, SAMPLE_GENERATION_INTERVAL, mSampleGenerator = new SampleGenerator(SAMPLE_RATE, initialToneFrequency, SAMPLE_GENERATION_INTERVAL,
sweepRate, mReuseBuffers); sweepRate);
try try
{ {
@@ -66,6 +65,17 @@ public class TestTunerController extends TunerController
} }
} }
/**
* Sets the sample generator to reuse buffers instead of generating new buffers each time. Enable this setting
* when you simply want to test/profile buffer data flows for consumer processes.
*
* @param reuseBuffers set to true to turn on buffer reuse
*/
public void setReuseBuffers(boolean reuseBuffers)
{
mSampleGenerator.setReuseBuffers(reuseBuffers);
}
@Override @Override
public void addComplexBufferListener(Listener<ComplexBuffer> listener) public void addComplexBufferListener(Listener<ComplexBuffer> listener)
{ {