Class LnOpsModeProgrammer

    • Method Detail

      • writeCV

        public void writeCV​(java.lang.String CV,
                            int val,
                            ProgListener pL)
                     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:
        writeCV in interface Programmer
        Parameters:
        CV - the CV to write
        val - the value to write
        pL - the listener that will be notified of the write
        Throws:
        ProgrammerException - if unable to communicate
      • readCV

        public void readCV​(java.lang.String CV,
                           ProgListener pL)
                    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
        Parameters:
        CV - the CV to read, could be a composite string that is split in this method te pass eg. the module type
        pL - 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 pL)
                       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
        Parameters:
        CV - the CV to confirm
        val - the value to confirm
        pL - the listener that will be notified of the confirmation
        Throws:
        ProgrammerException - if unable to communicate
      • message

        public void message​(LocoNetMessage m)
        Member function that will be invoked by a LocoNetInterface implementation to forward a LocoNet message from the layout.
        Specified by:
        message in interface LocoNetListener
        Parameters:
        m - The received LocoNet message. Note that this same object may be presented to multiple users. It should not be modified here.
      • decodeCvNum

        int decodeCvNum​(java.lang.String CV)
      • getMode

        public final ProgrammingMode getMode()
        Get the current programming mode
        Specified by:
        getMode in interface Programmer
        Returns:
        the current mode or null if none is defined and no default mode is defined
      • getWriteConfirmMode

        @Nonnull
        public Programmer.WriteConfirmMode getWriteConfirmMode​(java.lang.String addr)
        Learn about whether the programmer does any kind of verification of write operations Confirmation mode by programming mode; not that this doesn't yet know whether BDL168 hardware is present to allow DecoderReply to function; that should be a preference eventually. See also DCS240...
        Specified by:
        getWriteConfirmMode in interface Programmer
        Parameters:
        addr - CV address ignored, as there's no variance with this in LocoNet
        Returns:
        depends on programming mode
      • getCanRead

        public boolean getCanRead()
        Checks the general read capability, regardless of mode Can this ops-mode programmer read back values? Yes, if transponding hardware is present and regular ops mode, or if in any other mode.
        Specified by:
        getCanRead in interface Programmer
        Returns:
        always true
      • getCanRead

        public boolean getCanRead​(java.lang.String addr)
        Checks the general read capability, regardless of mode, for a specific address
        Specified by:
        getCanRead in interface Programmer
        Parameters:
        addr - the address to read
        Returns:
        true if the address can be read; false otherwise
      • getCanWrite

        public boolean getCanWrite()
        Checks the general write capability, regardless of mode
        Specified by:
        getCanWrite in interface Programmer
        Returns:
        true if the programmer is capable of writing; false otherwise
      • getCanWrite

        public boolean getCanWrite​(java.lang.String addr)
        Checks the general write capability, regardless of mode, for a specific address
        Specified by:
        getCanWrite in interface Programmer
        Parameters:
        addr - the address to write to
        Returns:
        true if the address can be written to; false otherwise
      • dispose

        public void dispose()
        Description copied from interface: Programmer
        Free up system resources. Overriding classes should be capable of this being called multiple times as per the Disposable interface. Called when disposing of a disposable.

        Note there are no assurances this method will not be called multiple times against a single instance of this Disposable. It is the responsibility of this Disposable to protect itself and the application from ensuring that calling this method multiple times has no unwanted side effects.

        Specified by:
        dispose in interface Disposable
        Specified by:
        dispose in interface Programmer