Class EasyDccOpsModeProgrammer

All Implemented Interfaces:
EventListener, AddressedProgrammer, PropertyChangeFirer, PropertyChangeProvider, AbstractMRListener, EasyDccListener, Programmer

public class EasyDccOpsModeProgrammer
extends EasyDccProgrammer
implements AddressedProgrammer
Provide an Ops Mode Programmer via a wrapper that works with the EasyDccCommandStation object.

Functionally, this just creates packets to send via the Command Station.

See Also:
Programmer
  • Field Details

  • Constructor Details

  • Method Details

    • writeCV

      public void writeCV​(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:
      writeCV in interface Programmer
      Overrides:
      writeCV in class EasyDccProgrammer
      Parameters:
      CVname - the CV to write
      val - the value to write
      p - the listener that will be notified of the write
      Throws:
      ProgrammerException - if unable to communicate
    • readCV

      public void readCV​(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:
      readCV in interface Programmer
      Overrides:
      readCV in class EasyDccProgrammer
      Parameters:
      CVname - the CV to read
      p - the listener that will be notified of the read
      Throws:
      ProgrammerException - if unable to communicate
    • confirmCV

      public void confirmCV​(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:
      confirmCV in interface Programmer
      Overrides:
      confirmCV in class EasyDccProgrammer
      Parameters:
      CV - the CV to confirm
      val - the value to confirm
      p - the listener that will be notified of the confirmation
      Throws:
      ProgrammerException - if unable to communicate
    • getSupportedModes

      Get the list of ProgrammingMode supported by this Programmer. If the order is significant, earlier modes are better.
      Specified by:
      getSupportedModes in interface Programmer
      Overrides:
      getSupportedModes in class EasyDccProgrammer
      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:
      getCanRead in interface Programmer
      Overrides:
      getCanRead in class AbstractProgrammer
      Returns:
      always false for now
    • getLongAddress

      public boolean getLongAddress()
      Specified by:
      getLongAddress in interface AddressedProgrammer
    • getAddressNumber

      public int getAddressNumber()
      Specified by:
      getAddressNumber in interface AddressedProgrammer
    • getAddress

      public String getAddress()
      Specified by:
      getAddress in interface AddressedProgrammer
    • 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. 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:
      cleanup in class EasyDccProgrammer