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();
//Turn on buffer reuse since we're simply profiling data flow/throughput
tuner.getTunerController().setReuseBuffers(true);
List<TunerChannel> tunerChannels = getTunerChannels(tuner);
List<TunerChannelSource> sources = new ArrayList<>();
@@ -424,5 +427,4 @@ public class ChannelizerViewer extends JFrame
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
* 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)
{
@@ -60,7 +60,6 @@ public class SampleGenerator
mOscillator = new LowPhaseNoiseOscillator(sampleRate, frequency);
mInterval = interval;
mSweepUpdateInterval = sweepUpdateRate;
mReuseBuffers = reuseBuffers;
updateSamplesPerInterval();
}
@@ -74,9 +73,24 @@ public class SampleGenerator
* @param frequency of the tone produced by the generator
* @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;
private SampleGenerator mSampleGenerator;
private boolean mReuseBuffers = true;
private long mFrequency = 100000000l;
/**
@@ -53,7 +52,7 @@ public class TestTunerController extends TunerController
int sweepRate = 0; //Hz per interval
long initialToneFrequency = SAMPLE_RATE / 2 + 100;
mSampleGenerator = new SampleGenerator(SAMPLE_RATE, initialToneFrequency, SAMPLE_GENERATION_INTERVAL,
sweepRate, mReuseBuffers);
sweepRate);
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
public void addComplexBufferListener(Listener<ComplexBuffer> listener)
{