uavsim.flightdynamicsmodel.test
Class FDMBlackboxTest

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 uavsim.flightdynamicsmodel.test.FDMBlackboxTest
All Implemented Interfaces:
java.awt.event.KeyListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class FDMBlackboxTest
extends javax.swing.JFrame
implements java.awt.event.KeyListener

Defines a basic interactive graphical test of the model and instruments by simulating the instrument panel and accepting key inputs.

Author:
Dan Tappan [18.09.11]
See Also:
Serialized Form

Nested Class Summary
 class FDMBlackboxTest.Display
           
private  class FDMBlackboxTest.Updater
          Defines the updates that occur when the timer task executes.
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  AirspeedIndicator _airspeedIndicator
          the airspeed indicator
private  Altimeter _altimeter
          the altimeter
private  AttitudeIndicator _attitudeIndicator
          the attitude indicator
private  NavigationChart _chart
          the navigation chart for the GPS
private  ClockEnhanced _clock
          the clock
private  AircraftModelController _controller
          the model controller
private  DirectionalGyro _directionalGyro
          the directional gyro
private  FDMBlackboxTest.Display _display
          the display panel for the instruments
private  AircraftModel _model
          the aircraft model
private  java.io.BufferedWriter _outfile
          the log file
private  int _refreshCountdown
          the refresh countdown as a function of the timer rate
private  StallEnunciator _stallEnunciator
          the stall enunciator
private  Tachometer _tachometer
          the tachometer
private  java.util.Timer _timer
          the update timer
private  TurnCoordinator _turnCoordinator
          the turn coordinator
private  FDMBlackboxTest.Updater _updater
          the updater task run by the timer
private  VerticalSpeedIndicator _verticalSpeedIndicator
          the vertical speed indicator
private static boolean IS_LOGGING_ENABLED
          whether to write the model data to the log file
private static int REFRESH_COUNTDOWN
          the refresh rate as a function of the timer rate
private static int SIZE
          the instrument size
 
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
FDMBlackboxTest(java.lang.String outputFilename)
          Creates a test.
 
Method Summary
 void keyPressed(java.awt.event.KeyEvent event)
          Handles a key-pressed event.
 void keyReleased(java.awt.event.KeyEvent event)
          Handles a key-released event.
 void keyTyped(java.awt.event.KeyEvent event)
          Handles a key-typed event.
static void main(java.lang.String[] arguments)
          Executes the test.
private  void validateExecutionLease()
          Validates the availability of the test by checking a server lease.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

_airspeedIndicator

private final AirspeedIndicator _airspeedIndicator
the airspeed indicator


_altimeter

private final Altimeter _altimeter
the altimeter


_attitudeIndicator

private final AttitudeIndicator _attitudeIndicator
the attitude indicator


_chart

private final NavigationChart _chart
the navigation chart for the GPS


_clock

private final ClockEnhanced _clock
the clock


_controller

private final AircraftModelController _controller
the model controller


_directionalGyro

private final DirectionalGyro _directionalGyro
the directional gyro


_display

private final FDMBlackboxTest.Display _display
the display panel for the instruments


_model

private final AircraftModel _model
the aircraft model


_outfile

private final java.io.BufferedWriter _outfile
the log file


_refreshCountdown

private int _refreshCountdown
the refresh countdown as a function of the timer rate


_stallEnunciator

private final StallEnunciator _stallEnunciator
the stall enunciator


_tachometer

private final Tachometer _tachometer
the tachometer


_timer

private final java.util.Timer _timer
the update timer


_turnCoordinator

private final TurnCoordinator _turnCoordinator
the turn coordinator


_updater

private final FDMBlackboxTest.Updater _updater
the updater task run by the timer


_verticalSpeedIndicator

private final VerticalSpeedIndicator _verticalSpeedIndicator
the vertical speed indicator


IS_LOGGING_ENABLED

private static final boolean IS_LOGGING_ENABLED
whether to write the model data to the log file

See Also:
Constant Field Values

REFRESH_COUNTDOWN

private static final int REFRESH_COUNTDOWN
the refresh rate as a function of the timer rate

See Also:
Constant Field Values

SIZE

private static final int SIZE
the instrument size

See Also:
Constant Field Values
Constructor Detail

FDMBlackboxTest

public FDMBlackboxTest(java.lang.String outputFilename)
                throws java.io.IOException
Creates a test.

Parameters:
outputFilename - - the fully qualified output filename of the data log to generate
Throws:
java.io.IOException - - for any error with the log file
Method Detail

keyPressed

public void keyPressed(java.awt.event.KeyEvent event)
Handles a key-pressed event.

Specified by:
keyPressed in interface java.awt.event.KeyListener
Parameters:
event - - the event

keyReleased

public void keyReleased(java.awt.event.KeyEvent event)
Handles a key-released event.

Specified by:
keyReleased in interface java.awt.event.KeyListener
Parameters:
event - - the event

keyTyped

public void keyTyped(java.awt.event.KeyEvent event)
Handles a key-typed event.

Specified by:
keyTyped in interface java.awt.event.KeyListener
Parameters:
event - - the event

main

public static void main(java.lang.String[] arguments)
Executes the test.

Parameters:
arguments - - the fully qualified output filename of the data log to generate

validateExecutionLease

private void validateExecutionLease()
Validates the availability of the test by checking a server lease.