Class TamsOpsModeProgrammer
- java.lang.Object
-
- jmri.beans.PropertyChangeSupport
-
- jmri.jmrix.AbstractProgrammer
-
- jmri.jmrix.tams.TamsProgrammer
-
- jmri.jmrix.tams.TamsOpsModeProgrammer
-
- All Implemented Interfaces:
java.util.EventListener,AddressedProgrammer,PropertyChangeFirer,PropertyChangeProvider,Disposable,AbstractMRListener,TamsListener,Programmer
public class TamsOpsModeProgrammer extends TamsProgrammer implements AddressedProgrammer
Provide an Ops Mode Programmer via a wrapper what works with the TAMS command station object.Functionally, this just creates packets to send via the command station.
- See Also:
Based on work by Bob Jacobsen
-
-
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) intmAddress(package private) booleanmLongAddr-
Fields inherited from class jmri.jmrix.tams.TamsProgrammer
_cv, _progRead, _val, COMMANDSENT, COMMANDSENT_2, NOTPROGRAMMING, progState, tc
-
Fields inherited from class jmri.jmrix.AbstractProgrammer
LONG_TIMEOUT, SHORT_TIMEOUT
-
Fields inherited from class jmri.beans.PropertyChangeSupport
propertyChangeSupport
-
-
Constructor Summary
Constructors Constructor Description TamsOpsModeProgrammer(TamsTrafficController tc, int pAddress, boolean pLongAddr)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidcleanup()Ops-mode programming doesn't put the command station in programming mode, so we don't have to send an exit-programming command at end.voidconfirmCV(java.lang.String CV, int val, ProgListener p)Confirm the value of a CV using the specified programming mode.java.lang.StringgetAddress()intgetAddressNumber()booleangetCanRead()Checks the general read capability, regardless of modebooleangetLongAddress()java.util.List<ProgrammingMode>getSupportedModes()Get the list ofProgrammingModesupported by this Programmer.protected voidnotifyProgListenerEnd(int value, int status)voidreadCV(java.lang.String CVname, ProgListener p)Perform a CV read in the system-specific manner, and using the specified programming mode.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.tams.TamsProgrammer
message, progTaskStart, reply, timeout, useProgrammer
-
Methods inherited from class jmri.jmrix.AbstractProgrammer
decodeErrorCode, getBestMode, 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, decodeErrorCode, dispose, getCanRead, getCanWrite, getCanWrite, getConfigurator, getMode, getWriteConfirmMode, notifyProgListenerEnd, readCV, removePropertyChangeListener, setMode
-
-
-
-
Constructor Detail
-
TamsOpsModeProgrammer
public TamsOpsModeProgrammer(TamsTrafficController tc, int pAddress, boolean pLongAddr)
-
-
Method Detail
-
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) Forward a write request to an ops-mode write operation
- Specified by:
writeCVin interfaceProgrammer- Overrides:
writeCVin classTamsProgrammer- 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
-
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- Overrides:
readCVin classTamsProgrammer- Parameters:
CVname- the CV to readp- the listener that will be notified of the read- 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- Overrides:
confirmCVin classTamsProgrammer- 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
-
notifyProgListenerEnd
protected void notifyProgListenerEnd(int value, int status)
- Overrides:
notifyProgListenerEndin classTamsProgrammer
-
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- Overrides:
getSupportedModesin classTamsProgrammer- Returns:
- the list of supported modes or an empty list
-
getCanRead
public boolean getCanRead()
Checks the general read capability, regardless of mode Basic implementation. Override this to turn reading on and off globally. Can this ops-mode programmer read back values? For now, no, but maybe later.- Specified by:
getCanReadin interfaceProgrammer- Overrides:
getCanReadin classAbstractProgrammer- Returns:
- always false for now
-
getLongAddress
public boolean getLongAddress()
- Specified by:
getLongAddressin interfaceAddressedProgrammer
-
getAddressNumber
public int getAddressNumber()
- Specified by:
getAddressNumberin interfaceAddressedProgrammer
-
getAddress
public java.lang.String getAddress()
- Specified by:
getAddressin interfaceAddressedProgrammer
-
cleanup
void cleanup()
Ops-mode programming doesn't put the command station in programming mode, so we don't have to send an exit-programming command at end. Therefore, this routine does nothing except to replace the parent routine that does something.- Overrides:
cleanupin classTamsProgrammer
-
-