Class ClockMonPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- jmri.util.swing.JmriPanel
-
- jmri.jmrix.nce.swing.NcePanel
-
- jmri.jmrix.nce.clockmon.ClockMonPanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,AbstractMRListener
,NceListener
,NcePanelInterface
public class ClockMonPanel extends NcePanel implements NceListener
Frame displaying and programming a NCE clock monitor.Some of the message formats used in this class are Copyright NCE Inc. and used with permission as part of the JMRI project. That permission does not extend to uses in other software products. If you wish to use this code, algorithm or these message formats outside of JMRI, please contact NCE Inc for separate permission. Notes: 1. the commands for time don't include seconds so I had to use memory write to sync nce clock. 2. I tried fiddling with the internal nce clock loop values, didn't work. 3. to sync nce to internal clock: A. set an alarm about 5 seconds before next minute B. read nce clock C. compute error and record last X errors for correction calc D. adjust nce clock as needed E. reset alarm after next internal minute ticks 4. to sync internal to nce clock A. every so often, read nce clock and compare to internal B. compute error and record last X errors for correction calc C. adjust internal clock rate factor as needed 5. The clock message only seems to go out to the throttles on the tic of the minute. 6. The nce clock must be left running, or it doesn't tic and therefore doesn't go out over the bus.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ClockMonPanel.Default
Nested class to create one of these using old-style defaults-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description (package private) javax.swing.Timer
alarmSyncUpdate
(package private) javax.swing.JTextField
amPm
static int
CLOCKRATIO_MAX
static int
CLOCKRATIO_MIN
static int
CMD_CLOCK_SET_PARAM_SIZE
static int
CMD_CLOCK_SET_REPLY_SIZE
static int
CMD_CLOCK_SET_RUN_SIZE
static int
CMD_CLOCK_SET_TIME_SIZE
static int
CMD_MEM_SET_REPLY_SIZE
static int
CS_CLOCK_1224
static int
CS_CLOCK_AMPM
static int
CS_CLOCK_HOURS
static int
CS_CLOCK_MEM_SIZE
static int
CS_CLOCK_MINUTES
static int
CS_CLOCK_SCALE
static int
CS_CLOCK_SECONDS
static int
CS_CLOCK_STATUS
static int
CS_CLOCK_TICK
static double
DEFAULT_POLLING_INTERVAL
(package private) java.text.DecimalFormat
fiveDigits
(package private) java.text.DecimalFormat
fourDigits
(package private) javax.swing.JTextField
hours
(package private) Timebase
internalClock
(package private) javax.swing.JTextField
internalDisplayStatus
(package private) javax.swing.JTextField
intPidGainD
(package private) javax.swing.JTextField
intPidGainI
(package private) javax.swing.JTextField
intPidGainP
static int
MAX_ERROR_ARRAY
static double
MAX_POLLING_INTERVAL
static double
MIN_POLLING_INTERVAL
(package private) java.beans.PropertyChangeListener
minuteChangeListener
(package private) javax.swing.JTextField
minutes
(package private) javax.swing.JTextField
nceDisplayStatus
(package private) javax.swing.JTextField
ncePidGainD
(package private) javax.swing.JTextField
ncePidGainI
(package private) javax.swing.JTextField
ncePidGainP
(package private) javax.swing.JTextField
pollingSpeed
(package private) javax.swing.JTextField
rateNce
(package private) javax.swing.JButton
readButton
(package private) javax.swing.JTextField
seconds
(package private) javax.swing.JButton
set1224Button
(package private) javax.swing.JButton
setClockButton
(package private) javax.swing.JButton
setPidButton
(package private) javax.swing.JButton
setPollingSpeedButton
(package private) javax.swing.JButton
setRatioButton
(package private) javax.swing.JButton
setStartNceButton
(package private) javax.swing.JButton
setStopNceButton
(package private) javax.swing.JButton
setSyncButton
(package private) javax.swing.JRadioButton
setSyncModeInternalMaster
(package private) javax.swing.JRadioButton
setSyncModeNceMaster
(package private) javax.swing.JRadioButton
setSyncModeOff
(package private) javax.swing.JTextField
status
static int
SYNCMODE_INTERNAL_MASTER
static int
SYNCMODE_NCE_MASTER
static int
SYNCMODE_OFF
static double
TARGET_SYNC_DELAY
(package private) java.text.DecimalFormat
threeDigits
(package private) javax.swing.Timer
timerDisplayUpdate
(package private) javax.swing.JCheckBox
twentyFour
(package private) java.text.DecimalFormat
twoDigits
static int
WAIT_CMD_EXECUTION
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description ClockMonPanel()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dispose()
java.lang.String
getHelpTarget()
Provide a help target string which an enclosing frame can provide as a help reference.java.awt.Dimension
getMinimumDimension()
The minimum frame size for font size 16java.lang.String
getTitle()
Provide a recommended title for an enclosing frame.void
initComponents(NceSystemConnectionMemo m)
2nd stage of initialization, invoked after the constuctor is complete.void
initContext(java.lang.Object context)
3rd stage of initialization, invoked after Swing components exist.void
message(NceMessage m)
void
newInternalMinute()
Handles minute notifications for NCE Clock Monitor/Synchronizervoid
reply(NceReply r)
void
windowClosing(java.awt.event.WindowEvent e)
-
Methods inherited from class jmri.util.swing.JmriPanel
getMenus, getWindowInterface, initComponents, isMultipleInstances, setWindowInterface
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
CS_CLOCK_MEM_SIZE
public static final int CS_CLOCK_MEM_SIZE
- See Also:
- Constant Field Values
-
CS_CLOCK_SCALE
public static final int CS_CLOCK_SCALE
- See Also:
- Constant Field Values
-
CS_CLOCK_TICK
public static final int CS_CLOCK_TICK
- See Also:
- Constant Field Values
-
CS_CLOCK_SECONDS
public static final int CS_CLOCK_SECONDS
- See Also:
- Constant Field Values
-
CS_CLOCK_MINUTES
public static final int CS_CLOCK_MINUTES
- See Also:
- Constant Field Values
-
CS_CLOCK_HOURS
public static final int CS_CLOCK_HOURS
- See Also:
- Constant Field Values
-
CS_CLOCK_AMPM
public static final int CS_CLOCK_AMPM
- See Also:
- Constant Field Values
-
CS_CLOCK_1224
public static final int CS_CLOCK_1224
- See Also:
- Constant Field Values
-
CS_CLOCK_STATUS
public static final int CS_CLOCK_STATUS
- See Also:
- Constant Field Values
-
CMD_CLOCK_SET_TIME_SIZE
public static final int CMD_CLOCK_SET_TIME_SIZE
- See Also:
- Constant Field Values
-
CMD_CLOCK_SET_PARAM_SIZE
public static final int CMD_CLOCK_SET_PARAM_SIZE
- See Also:
- Constant Field Values
-
CMD_CLOCK_SET_RUN_SIZE
public static final int CMD_CLOCK_SET_RUN_SIZE
- See Also:
- Constant Field Values
-
CMD_CLOCK_SET_REPLY_SIZE
public static final int CMD_CLOCK_SET_REPLY_SIZE
- See Also:
- Constant Field Values
-
CMD_MEM_SET_REPLY_SIZE
public static final int CMD_MEM_SET_REPLY_SIZE
- See Also:
- Constant Field Values
-
MAX_ERROR_ARRAY
public static final int MAX_ERROR_ARRAY
- See Also:
- Constant Field Values
-
MIN_POLLING_INTERVAL
public static final double MIN_POLLING_INTERVAL
- See Also:
- Constant Field Values
-
MAX_POLLING_INTERVAL
public static final double MAX_POLLING_INTERVAL
- See Also:
- Constant Field Values
-
CLOCKRATIO_MIN
public static final int CLOCKRATIO_MIN
- See Also:
- Constant Field Values
-
CLOCKRATIO_MAX
public static final int CLOCKRATIO_MAX
- See Also:
- Constant Field Values
-
DEFAULT_POLLING_INTERVAL
public static final double DEFAULT_POLLING_INTERVAL
- See Also:
- Constant Field Values
-
TARGET_SYNC_DELAY
public static final double TARGET_SYNC_DELAY
- See Also:
- Constant Field Values
-
SYNCMODE_OFF
public static final int SYNCMODE_OFF
- See Also:
- Constant Field Values
-
SYNCMODE_NCE_MASTER
public static final int SYNCMODE_NCE_MASTER
- See Also:
- Constant Field Values
-
SYNCMODE_INTERNAL_MASTER
public static final int SYNCMODE_INTERNAL_MASTER
- See Also:
- Constant Field Values
-
WAIT_CMD_EXECUTION
public static final int WAIT_CMD_EXECUTION
- See Also:
- Constant Field Values
-
fiveDigits
java.text.DecimalFormat fiveDigits
-
fourDigits
java.text.DecimalFormat fourDigits
-
threeDigits
java.text.DecimalFormat threeDigits
-
twoDigits
java.text.DecimalFormat twoDigits
-
internalClock
Timebase internalClock
-
timerDisplayUpdate
javax.swing.Timer timerDisplayUpdate
-
alarmSyncUpdate
javax.swing.Timer alarmSyncUpdate
-
hours
javax.swing.JTextField hours
-
minutes
javax.swing.JTextField minutes
-
seconds
javax.swing.JTextField seconds
-
rateNce
javax.swing.JTextField rateNce
-
amPm
javax.swing.JTextField amPm
-
twentyFour
javax.swing.JCheckBox twentyFour
-
status
javax.swing.JTextField status
-
setSyncModeNceMaster
javax.swing.JRadioButton setSyncModeNceMaster
-
setSyncModeInternalMaster
javax.swing.JRadioButton setSyncModeInternalMaster
-
setSyncModeOff
javax.swing.JRadioButton setSyncModeOff
-
internalDisplayStatus
javax.swing.JTextField internalDisplayStatus
-
nceDisplayStatus
javax.swing.JTextField nceDisplayStatus
-
pollingSpeed
javax.swing.JTextField pollingSpeed
-
ncePidGainP
javax.swing.JTextField ncePidGainP
-
ncePidGainI
javax.swing.JTextField ncePidGainI
-
ncePidGainD
javax.swing.JTextField ncePidGainD
-
intPidGainP
javax.swing.JTextField intPidGainP
-
intPidGainI
javax.swing.JTextField intPidGainI
-
intPidGainD
javax.swing.JTextField intPidGainD
-
minuteChangeListener
transient java.beans.PropertyChangeListener minuteChangeListener
-
setSyncButton
javax.swing.JButton setSyncButton
-
setClockButton
javax.swing.JButton setClockButton
-
setRatioButton
javax.swing.JButton setRatioButton
-
set1224Button
javax.swing.JButton set1224Button
-
setStopNceButton
javax.swing.JButton setStopNceButton
-
setStartNceButton
javax.swing.JButton setStartNceButton
-
readButton
javax.swing.JButton readButton
-
setPollingSpeedButton
javax.swing.JButton setPollingSpeedButton
-
setPidButton
javax.swing.JButton setPidButton
-
-
Constructor Detail
-
ClockMonPanel
public ClockMonPanel()
-
-
Method Detail
-
initContext
public void initContext(java.lang.Object context)
3rd stage of initialization, invoked after Swing components exist.- Overrides:
initContext
in classNcePanel
- Parameters:
context
- the context that this panel may be initialized with
-
getHelpTarget
public java.lang.String getHelpTarget()
Provide a help target string which an enclosing frame can provide as a help reference.This automatically provides a reference to the usual place for JMRI window-specific help pages that are named for the implementing class, but note this is a Pane class, not a Frame class.
- Overrides:
getHelpTarget
in classJmriPanel
- Returns:
- the target String
-
getTitle
public java.lang.String getTitle()
Provide a recommended title for an enclosing frame.
-
getMinimumDimension
public java.awt.Dimension getMinimumDimension()
The minimum frame size for font size 16- Overrides:
getMinimumDimension
in classJmriPanel
-
initComponents
public void initComponents(NceSystemConnectionMemo m)
2nd stage of initialization, invoked after the constuctor is complete.This needs to be connected to the initContext() method in implementing classes.
- Specified by:
initComponents
in interfaceNcePanelInterface
- Overrides:
initComponents
in classNcePanel
- Parameters:
m
- the system connection memo for this connection
-
message
public void message(NceMessage m)
- Specified by:
message
in interfaceNceListener
-
reply
public void reply(NceReply r)
- Specified by:
reply
in interfaceNceListener
-
newInternalMinute
public void newInternalMinute()
Handles minute notifications for NCE Clock Monitor/Synchronizer
-
windowClosing
public void windowClosing(java.awt.event.WindowEvent e)
-
-