Class EasyDccProgrammer
- java.lang.Object
 - 
- jmri.beans.PropertyChangeSupport
 - 
- jmri.jmrix.AbstractProgrammer
 - 
- jmri.jmrix.easydcc.EasyDccProgrammer
 
 
 
 
- 
- All Implemented Interfaces:
 java.util.EventListener,PropertyChangeFirer,PropertyChangeProvider,Disposable,AbstractMRListener,EasyDccListener,Programmer
- Direct Known Subclasses:
 EasyDccOpsModeProgrammer
public class EasyDccProgrammer extends AbstractProgrammer implements EasyDccListener
Implements the jmri.Programmer interface via commands for the EasyDCC powerstation. 
- 
- 
Nested Class Summary
- 
Nested classes/interfaces inherited from interface jmri.Programmer
Programmer.Configurator, Programmer.WriteConfirmMode 
 - 
 
- 
Field Summary
Fields Modifier and Type Field Description (package private) int_cv(package private) boolean_progRead(package private) int_val(package private) static intCOMMANDSENT(package private) static intNOTPROGRAMMING(package private) intprogStateprotected EasyDccTrafficControllertc- 
Fields inherited from class jmri.jmrix.AbstractProgrammer
LONG_TIMEOUT, SHORT_TIMEOUT 
- 
Fields inherited from class jmri.beans.PropertyChangeSupport
propertyChangeSupport 
 - 
 
- 
Constructor Summary
Constructors Constructor Description EasyDccProgrammer(EasyDccSystemConnectionMemo memo) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidcleanup()Internal method to send a cleanup message (if needed) on timeout.voidconfirmCV(java.lang.String CV, int val, ProgListener p)Confirm the value of a CV using the specified programming mode.java.util.List<ProgrammingMode>getSupportedModes()Get the list ofProgrammingModesupported by this Programmer.voidmessage(EasyDccMessage m)protected voidnotifyProgListenerEnd(int value, int status)protected EasyDccMessageprogTaskStart(ProgrammingMode mode, int val, int cvnum)Internal method to create the EasyDccMessage for programmer task start.voidreadCV(java.lang.String CVname, ProgListener p)Perform a CV read in the system-specific manner, and using the specified programming mode.voidreply(EasyDccReply m)protected voidtimeout()Internal routine to handle a timeout, should be synchronized!protected voiduseProgrammer(ProgListener p)voidwriteCV(java.lang.String CVname, int val, ProgListener p)Perform a CV write in the system-specific manner, and using the specified programming mode.- 
Methods inherited from class jmri.jmrix.AbstractProgrammer
decodeErrorCode, getBestMode, getCanRead, getCanRead, getCanWrite, getCanWrite, getMode, getWriteConfirmMode, registerFromCV, restartTimer, setMode, startLongTimer, startShortTimer, stopTimer 
- 
Methods inherited from class jmri.beans.PropertyChangeSupport
addPropertyChangeListener, addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener 
- 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
- 
Methods inherited from interface jmri.Programmer
addPropertyChangeListener, dispose, getConfigurator, notifyProgListenerEnd, readCV, removePropertyChangeListener 
 - 
 
 - 
 
- 
- 
Field Detail
- 
tc
protected EasyDccTrafficController tc
 
- 
progState
int progState
 
- 
NOTPROGRAMMING
static final int NOTPROGRAMMING
- See Also:
 - Constant Field Values
 
 
- 
COMMANDSENT
static final int COMMANDSENT
- See Also:
 - Constant Field Values
 
 
- 
_progRead
boolean _progRead
 
- 
_val
int _val
 
- 
_cv
int _cv
 
 - 
 
- 
Constructor Detail
- 
EasyDccProgrammer
public EasyDccProgrammer(EasyDccSystemConnectionMemo memo)
 
 - 
 
- 
Method Detail
- 
getSupportedModes
@Nonnull public java.util.List<ProgrammingMode> getSupportedModes()
Get the list ofProgrammingModesupported by this Programmer. If the order is significant, earlier modes are better.- Specified by:
 getSupportedModesin interfaceProgrammer- Specified by:
 getSupportedModesin classAbstractProgrammer- Returns:
 - the list of supported modes or an empty list
 
 
- 
writeCV
public void writeCV(java.lang.String CVname, int val, ProgListener p) throws ProgrammerException
Perform a CV write in the system-specific manner, and using the specified programming mode.Handles a general address space through a String address. Each programmer defines the acceptable formats.
Note that this returns before the write is complete; you have to provide a ProgListener to hear about completion. For simplicity, expect the return to be on the GUI thread.
Exceptions will only be thrown at the start, not during the actual programming sequence. A typical exception would be due to an invalid mode (though that should be prevented earlier)
- Specified by:
 writeCVin interfaceProgrammer- Specified by:
 writeCVin classAbstractProgrammer- Parameters:
 CVname- the CV to writeval- the value to writep- the listener that will be notified of the write- Throws:
 ProgrammerException- if unable to communicate
 
- 
confirmCV
public void confirmCV(java.lang.String CV, int val, ProgListener p) throws ProgrammerException
Confirm the value of a CV using the specified programming mode. On some systems, this is faster than a read.Handles a general address space through a String address. Each programmer defines the acceptable formats.
Note that this returns before the write is complete; you have to provide a ProgListener to hear about completion. For simplicity, expect the return to be on the GUI thread.
Exceptions will only be thrown at the start, not during the actual programming sequence. A typical exception would be due to an invalid mode (though that should be prevented earlier)
- Specified by:
 confirmCVin interfaceProgrammer- Specified by:
 confirmCVin classAbstractProgrammer- Parameters:
 CV- the CV to confirmval- the value to confirmp- the listener that will be notified of the confirmation- Throws:
 ProgrammerException- if unable to communicate
 
- 
readCV
public void readCV(java.lang.String CVname, ProgListener p) throws ProgrammerException
Perform a CV read in the system-specific manner, and using the specified programming mode.Handles a general address space through a String address. Each programmer defines the acceptable formats.
Note that this returns before the write is complete; you have to provide a ProgListener to hear about completion. For simplicity, expect the return to be on the GUI thread.
Exceptions will only be thrown at the start, not during the actual programming sequence. A typical exception would be due to an invalid mode (though that should be prevented earlier)
- Specified by:
 readCVin interfaceProgrammer- Specified by:
 readCVin classAbstractProgrammer- Parameters:
 CVname- the CV to readp- the listener that will be notified of the read- Throws:
 ProgrammerException- if unable to communicate
 
- 
useProgrammer
protected void useProgrammer(ProgListener p) throws ProgrammerException
- Throws:
 ProgrammerException
 
- 
progTaskStart
protected EasyDccMessage progTaskStart(ProgrammingMode mode, int val, int cvnum) throws ProgrammerException
Internal method to create the EasyDccMessage for programmer task start.- Parameters:
 mode- Programming mode to iniateval- Value to programcvnum- CV number to address- Returns:
 - formatted message for layout
 - Throws:
 ProgrammerException- if programmer or mode not available
 
- 
message
public void message(EasyDccMessage m)
- Specified by:
 messagein interfaceEasyDccListener
 
- 
reply
public void reply(EasyDccReply m)
- Specified by:
 replyin interfaceEasyDccListener
 
- 
timeout
protected void timeout()
Internal routine to handle a timeout, should be synchronized!- Specified by:
 timeoutin classAbstractProgrammer
 
- 
cleanup
void cleanup()
Internal method to send a cleanup message (if needed) on timeout.Here, it sends a request to exit from programming mode. But subclasses, e.g. ops mode, may redefine that.
 
- 
notifyProgListenerEnd
protected void notifyProgListenerEnd(int value, int status)
 
 - 
 
 -