com.pentec.adaq
Class Controller

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by com.pentec.gui.windows.AFrame
                          extended by com.pentec.gui.windows.NonTransientFrame
                              extended by com.pentec.gui.windows.NonTransientMenuFrame
                                  extended by com.pentec.adaq.Controller
All Implemented Interfaces:
AdaptWindow, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants
Direct Known Subclasses:
ColorimeterAdapter, DT1100, FIST, NightVision

public abstract class Controller
extends NonTransientMenuFrame

This class provides an abstact implementation of a generic hardware controller interface.

Author:
Pender Technology
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  java.lang.String $DiType
          Default header values
protected  java.lang.String $Sensor
           
protected  java.lang.String $SNSMatl
           
protected  java.lang.String $SNSTyp
           
 AcquisitionPanel acquisitionPanel
          A handle to the Acquisition panel embedded in the controller
protected  AOI aoi
          The AOI entry panel
protected  OneWireTemperaturePanel[] aOneWireTemperaturePanels
          Instrument temperature panels
protected  ASpinner aspinnerFrequency
           
protected  ASpinner aspinnerPeakVideo
           
protected  ASpinner aspinnerSpread
           
protected  ASpinner aspinnerStepSize
           
protected  ATabbedPane atp
          The set of tabbed panes embedded in this Controller
private  java.text.NumberFormat formatter2
           
private  java.text.NumberFormat formatter3
           
 Gain gain
          The gain control panel
 Integration integration
          The integration time control panel
private static int iOldHeight
           
private static int iOldLeft
           
private static int iOldTop
           
private static int iOldWidth
           
protected static boolean isRunning
          Flag indicating that the controller is running
private  javax.swing.JButton jbUpdate
          The controller Update button, currently used only by Night Vision controllers
private  javax.swing.JCheckBox jcbAutoIncrement
          Output file name AutoIncrement on/off switch
protected  javax.swing.JCheckBox jcbAutoRange
           
private  javax.swing.JLabel jlCamera
          The name and model of the camera
private  javax.swing.JLabel jlSN
          The camera serial number
private  javax.swing.JPanel jpIOControl
          I/O Control tab
protected  javax.swing.JPanel jpVideo
          Video setup panel
private  javax.swing.JTextField jtfHeaderTemplate
          Text field for header template filename input
protected  javax.swing.JTextField jtfOutputFile
          Text field for output filename input
 Offset offset
          The offset control panel
protected  SequenceSetup sequenceSetup
          The sequence setup panel
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
protected Controller(java.lang.String $FrameTitle)
           
protected Controller(java.lang.String $FrameTitle, java.lang.String $Camera)
           
 
Method Summary
protected  void addNote(Header header, java.lang.String $NotePrefix, java.lang.String $Note)
          Add a note to a header.
protected  void autoRange(AImage aimage)
           
protected  void autoRange(int iChannel, int iSpeed, double delta, double dSpread)
           
protected  boolean configureSequence(int iNumFrames, int iSkipCount)
           
protected  AcquisitionPanel createAcquisitionPanel()
           
protected  javax.swing.JPanel createAutoRangePanel()
           
protected  javax.swing.JPanel createAutoRangePanel(javax.swing.SpinnerNumberModel snmNominal, javax.swing.SpinnerNumberModel snmSpread, javax.swing.SpinnerNumberModel snmSpeed, javax.swing.SpinnerNumberModel snmDelay)
           
private  javax.swing.JPanel createCameraPanel()
           
protected  javax.swing.JPanel createFrameRatePanel()
           
private static javax.swing.JPanel createHorzPanel(int iSpace, javax.swing.JLabel jlabel)
           
protected  javax.swing.JPanel createIOControlPanel()
           
protected  javax.swing.JPanel createOtherPanel()
          Create a panel to hold GPS and weather station data
 void dispose()
           
protected  boolean doesExist(java.lang.String $Title)
          Determine if a controller tab exists or not
 java.awt.Rectangle getAoi()
           
 AOI getAOI()
           
 java.awt.Dimension getAoiMax()
           
protected  javax.swing.JPanel getCameraOptionsPanel()
          Camera options panel for the I/O Control tab.
protected abstract  double getFocus()
           
 java.lang.String getHeaderTemplate$()
           
protected abstract  double getIris()
           
 java.lang.String getOutputFile$()
           
protected  PanTiltPanel getPanTiltPanel()
          Get a handle to the Pan & Tilt control panel for the system corresponding to the connected camera
 java.lang.String getSettings$()
           
protected  javax.swing.JPanel getSpinnerPanel(ASpinner aspinner, java.lang.String $)
           
protected abstract  double getZoom()
           
static java.lang.String increment(java.lang.String $File)
           
static boolean isMonochromatorRunning()
           
static boolean isT10Running()
           
protected  boolean isValidMode()
           
protected abstract  java.awt.image.DataBuffer makeDataBuffer()
           
protected abstract  DataFrame makeFrame(boolean doIntegrate, boolean flagProcessINI, java.io.File file, java.awt.image.DataBuffer dataBuffer)
           
protected abstract  boolean open()
           
protected  boolean openAImaq()
           
 void saveCameraSettings()
          Save current camera settings to ini file.
protected abstract  void setFocus(double dFocus)
           
protected abstract  void setIris(double dIris)
           
 void setNewAoi(Endpoint endpoint)
          Set new AOI endpoints
 void setSize()
           
protected abstract  void setZoom(double dZoom)
           
protected  void updateHeader(DataFrame aframe)
           
protected  void verifyCameraSettings()
           
 
Methods inherited from class com.pentec.gui.windows.NonTransientMenuFrame
getNonTransientMenuFrames, onFrameClosing
 
Methods inherited from class com.pentec.gui.windows.AFrame
addToWindowList, getShortTitle, isInWindowList, removeFromWindowList, setIconImage, setTitle, setVisible, toString
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.pentec.gui.windows.AdaptWindow
getBounds, getContentPane, getIconImage, getRootPane, getTitle, toFront
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

$DiType

protected java.lang.String $DiType
Default header values


$Sensor

protected java.lang.String $Sensor

$SNSMatl

protected java.lang.String $SNSMatl

$SNSTyp

protected java.lang.String $SNSTyp

acquisitionPanel

public AcquisitionPanel acquisitionPanel
A handle to the Acquisition panel embedded in the controller


aoi

protected AOI aoi
The AOI entry panel


aOneWireTemperaturePanels

protected OneWireTemperaturePanel[] aOneWireTemperaturePanels
Instrument temperature panels


aspinnerFrequency

protected ASpinner aspinnerFrequency

aspinnerPeakVideo

protected ASpinner aspinnerPeakVideo

aspinnerSpread

protected ASpinner aspinnerSpread

aspinnerStepSize

protected ASpinner aspinnerStepSize

atp

protected ATabbedPane atp
The set of tabbed panes embedded in this Controller


formatter2

private final java.text.NumberFormat formatter2

formatter3

private final java.text.NumberFormat formatter3

gain

public Gain gain
The gain control panel


integration

public Integration integration
The integration time control panel


iOldHeight

private static int iOldHeight

iOldLeft

private static int iOldLeft

iOldTop

private static int iOldTop

iOldWidth

private static int iOldWidth

isRunning

protected static boolean isRunning
Flag indicating that the controller is running


jbUpdate

private javax.swing.JButton jbUpdate
The controller Update button, currently used only by Night Vision controllers


jcbAutoIncrement

private javax.swing.JCheckBox jcbAutoIncrement
Output file name AutoIncrement on/off switch


jcbAutoRange

protected javax.swing.JCheckBox jcbAutoRange

jlCamera

private javax.swing.JLabel jlCamera
The name and model of the camera


jlSN

private javax.swing.JLabel jlSN
The camera serial number


jpIOControl

private javax.swing.JPanel jpIOControl
I/O Control tab


jpVideo

protected javax.swing.JPanel jpVideo
Video setup panel


jtfHeaderTemplate

private javax.swing.JTextField jtfHeaderTemplate
Text field for header template filename input


jtfOutputFile

protected javax.swing.JTextField jtfOutputFile
Text field for output filename input


offset

public Offset offset
The offset control panel


sequenceSetup

protected SequenceSetup sequenceSetup
The sequence setup panel

Constructor Detail

Controller

protected Controller(java.lang.String $FrameTitle)

Controller

protected Controller(java.lang.String $FrameTitle,
                     java.lang.String $Camera)
Method Detail

addNote

protected void addNote(Header header,
                       java.lang.String $NotePrefix,
                       java.lang.String $Note)
Add a note to a header. If the note already exists, update the existing note.

Parameters:
header - the SAF header to add the note to
$NotePrefix - search string used to determine if the note exists or not
$Note - the note to add

autoRange

protected void autoRange(AImage aimage)

autoRange

protected void autoRange(int iChannel,
                         int iSpeed,
                         double delta,
                         double dSpread)

configureSequence

protected boolean configureSequence(int iNumFrames,
                                    int iSkipCount)

createAcquisitionPanel

protected AcquisitionPanel createAcquisitionPanel()

createAutoRangePanel

protected javax.swing.JPanel createAutoRangePanel()

createAutoRangePanel

protected javax.swing.JPanel createAutoRangePanel(javax.swing.SpinnerNumberModel snmNominal,
                                                  javax.swing.SpinnerNumberModel snmSpread,
                                                  javax.swing.SpinnerNumberModel snmSpeed,
                                                  javax.swing.SpinnerNumberModel snmDelay)

createCameraPanel

private javax.swing.JPanel createCameraPanel()

createFrameRatePanel

protected javax.swing.JPanel createFrameRatePanel()

createHorzPanel

private static javax.swing.JPanel createHorzPanel(int iSpace,
                                                  javax.swing.JLabel jlabel)

createIOControlPanel

protected javax.swing.JPanel createIOControlPanel()

createOtherPanel

protected javax.swing.JPanel createOtherPanel()
Create a panel to hold GPS and weather station data


dispose

public void dispose()
Specified by:
dispose in interface AdaptWindow
Overrides:
dispose in class NonTransientFrame

doesExist

protected boolean doesExist(java.lang.String $Title)
Determine if a controller tab exists or not


getAoi

public java.awt.Rectangle getAoi()

getAOI

public AOI getAOI()

getAoiMax

public java.awt.Dimension getAoiMax()

getCameraOptionsPanel

protected javax.swing.JPanel getCameraOptionsPanel()
Camera options panel for the I/O Control tab. Should be implemented by subclass if camera options are present.


getFocus

protected abstract double getFocus()

getHeaderTemplate$

public java.lang.String getHeaderTemplate$()

getIris

protected abstract double getIris()

getOutputFile$

public java.lang.String getOutputFile$()

getPanTiltPanel

protected PanTiltPanel getPanTiltPanel()
Get a handle to the Pan & Tilt control panel for the system corresponding to the connected camera

Returns:
the PanTiltPanel for the connected camera

getSettings$

public java.lang.String getSettings$()

getSpinnerPanel

protected javax.swing.JPanel getSpinnerPanel(ASpinner aspinner,
                                             java.lang.String $)

getZoom

protected abstract double getZoom()

increment

public static java.lang.String increment(java.lang.String $File)

isMonochromatorRunning

public static boolean isMonochromatorRunning()

isT10Running

public static boolean isT10Running()

isValidMode

protected boolean isValidMode()

makeDataBuffer

protected abstract java.awt.image.DataBuffer makeDataBuffer()

makeFrame

protected abstract DataFrame makeFrame(boolean doIntegrate,
                                       boolean flagProcessINI,
                                       java.io.File file,
                                       java.awt.image.DataBuffer dataBuffer)

open

protected abstract boolean open()

openAImaq

protected boolean openAImaq()

saveCameraSettings

public void saveCameraSettings()
Save current camera settings to ini file. Should be implemented by subclass.


setFocus

protected abstract void setFocus(double dFocus)

setIris

protected abstract void setIris(double dIris)

setNewAoi

public void setNewAoi(Endpoint endpoint)
Set new AOI endpoints


setSize

public void setSize()

setZoom

protected abstract void setZoom(double dZoom)

updateHeader

protected void updateHeader(DataFrame aframe)

verifyCameraSettings

protected void verifyCameraSettings()