From 8d10b502ab9f59d09fe0b224e98249ddd6927e5c Mon Sep 17 00:00:00 2001 From: denny Date: Sat, 27 Feb 2016 09:01:07 -0500 Subject: [PATCH] Merges master ca8406b - DFT processor queue backing up --- src/spectrum/DFTProcessor.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/spectrum/DFTProcessor.java b/src/spectrum/DFTProcessor.java index 7900626f..b055fd0f 100644 --- a/src/spectrum/DFTProcessor.java +++ b/src/spectrum/DFTProcessor.java @@ -20,6 +20,7 @@ package spectrum; import java.util.Arrays; import java.util.Iterator; import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.BlockingQueue; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -56,9 +57,13 @@ public class DFTProcessor implements Listener, private CopyOnWriteArrayList mListeners = new CopyOnWriteArrayList(); - private ArrayBlockingQueue mQueue = - new ArrayBlockingQueue( 200 ); - + //Fixed size sample queue. We set the size at 12 based on the highest + //sample rate tuner (10 MHz) producing 153 frames per second and the lowest + //DFT processing frame rate of 12 frames per second. This means that the + //maximum size needed is 153 / 12 = 11 frames per DFT processing iteration + //so we set it at 12. + private BlockingQueue mQueue = new ArrayBlockingQueue<>( 12 ); + private ScheduledExecutorService mScheduler = Executors .newScheduledThreadPool( 1, new NamingThreadFactory( "spectrum dft" ) );