Package fftManager
Class PamFFTProcess
java.lang.Object
PamguardMVC.PamProcess
fftManager.PamFFTProcess
- All Implemented Interfaces:
PamObserver
,ProcessAnnotator
- Author:
- Doug Gillespie
PamFFTProcess is a extends the PamProcess superclass
Main processing class to calculate FFT data.
Modified October 13 2009 to correctly interleave data from > 1 channel rather then sending data out in chunks corresponding to individual input raw data which is packed as single channels
PamFFTProcess is then notified when new chunks of raw data have been generated (e.g. by reading from a file or taking input from a sound card). It then processes the data to produce blocks of overlapping FFT data which are used to create a new PamDataUnit that is sent to be included in a new PamDataBlock of type PamFFTDataBlock
-
Constructor Summary
ConstructorDescriptionPamFFTProcess
(PamFFTControl pamControlledUnit, PamDataBlock parentDataBlock) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Clear all temporary output stores.void
dumpBufferStatus
(String message, boolean sayEmpties) Say the status of any buffers, particularly in output buffers of data blocks, but can add bespoke info for other internal buffers for some processes.getAnnotation
(PamDataBlock pamDataBlock, int annotation) Get an Annotationint
A list of data block class types which are compatible as parent data blocks for the PamProcess.int
int
int
getNumAnnotations
(PamDataBlock pamDataBlock) long
void
void
newData
(PamObservable obs, PamDataUnit pamRawData) void
pamStart()
Called for each process to tell it to start (may not be necessary for processes which are listening for data anyway).void
pamStop()
Stops the process.void
Called for each process before any of them receive the PamStart commandvoid
setupFFT()
Methods inherited from class PamguardMVC.PamProcess
absMillisecondsToSamples, absSamplesToMilliseconds, addData, addMultiPlexDataBlock, addOutputDataBlock, changedThreading, clearOldData, createAnnotations, destroyProcess, flushDataBlockBuffers, getAncestorDataBlock, getChainPosition, getCpuPercent, getFrequencyRange, getLastSourceNotificationObject, getLastSourceNotificationType, getMuiltiplexDataBlock, getNumMuiltiplexDataBlocks, getNumOutputDataBlocks, getObserverName, getObserverObject, getOfflineData, getOfflineData, getOutputDataBlock, getOutputDataBlocks, getPamControlledUnit, getParentDataBlock, getParentDataBlocks, getParentProcess, getProcessCheck, getProcessName, getRawSourceDataBlock, getRawSourceDataBlock, getSampleRate, getSourceDataBlock, getSourceProcess, hasOutputDatablock, isCanMultiThread, isExternalProcess, isMultiplex, makePamProcess, masterClockUpdate, noteNewSettings, notifyModelChanged, prepareProcessOK, processNewBuoyData, receiveSourceNotification, relMillisecondsToSamples, relSamplesToMilliseconds, removeAllDataBlocks, removeAllMultiPlexDataBlocks, removeMultiPlexDataBlock, removeObservable, removeOutputDatablock, resetDataBlocks, saveViewerData, setCanMultiThread, setExternalProcess, setMultiplex, setParentDataBlock, setParentDataBlock, setProcessCheck, setProcessName, setSampleRate, setupProcess, toString, updateData
-
Constructor Details
-
PamFFTProcess
-
-
Method Details
-
setupFFT
public void setupFFT() -
getFftLength
public int getFftLength() -
getFftHop
public int getFftHop() -
getChannelMap
public int getChannelMap() -
newData
- Overrides:
newData
in classPamProcess
-
getRequiredDataHistory
- Specified by:
getRequiredDataHistory
in interfacePamObserver
- Overrides:
getRequiredDataHistory
in classPamProcess
- Parameters:
arg
- optional argument from PamObservable- Returns:
- time in milliseconds required by data held in PamObservable
-
pamStart
public void pamStart()Description copied from class:PamProcess
Called for each process to tell it to start (may not be necessary for processes which are listening for data anyway).- Specified by:
pamStart
in classPamProcess
-
prepareProcess
public void prepareProcess()Description copied from class:PamProcess
Called for each process before any of them receive the PamStart command- Overrides:
prepareProcess
in classPamProcess
-
pamStop
public void pamStop()Description copied from class:PamProcess
Stops the process.- Specified by:
pamStop
in classPamProcess
-
getOutputData
-
getAnnotation
Description copied from interface:ProcessAnnotator
Get an Annotation- Specified by:
getAnnotation
in interfaceProcessAnnotator
- Overrides:
getAnnotation
in classPamProcess
- Parameters:
pamDataBlock
- Annotated datablockannotation
- annotation number- Returns:
- Annotation
-
getNumAnnotations
- Specified by:
getNumAnnotations
in interfaceProcessAnnotator
- Overrides:
getNumAnnotations
in classPamProcess
- Parameters:
pamDataBlock
- Annotated datablock- Returns:
- the number of annotations
-
makeAnnotations
public void makeAnnotations() -
clearTempStores
public void clearTempStores()Clear all temporary output stores. -
getFftControl
-
getCompatibleDataUnits
Description copied from class:PamProcess
A list of data block class types which are compatible as parent data blocks for the PamProcess. This can return null, e.g. in the case of Acquisition process.- Overrides:
getCompatibleDataUnits
in classPamProcess
- Returns:
- a list of PamDataBlock sub class types which can be used as parent data blocks for the process.
-
dumpBufferStatus
Description copied from class:PamProcess
Say the status of any buffers, particularly in output buffers of data blocks, but can add bespoke info for other internal buffers for some processes.- Overrides:
dumpBufferStatus
in classPamProcess
- Parameters:
sayEmpties
- include info even if a buffer is empty.
-