Class OlcbTurnout

    • Constructor Detail

      • OlcbTurnout

        protected OlcbTurnout​(java.lang.String prefix,
                              java.lang.String address,
                              org.openlcb.OlcbInterface iface)
    • Method Detail

      • finishLoad

        public void finishLoad()
        Helper function that will be invoked after construction once the feedback type has been set. Used specifically for preventing double initialization when loading turnouts from XML.
      • getEventName

        public java.lang.String getEventName​(boolean isThrown)
        Computes the display name of a given event to be entered into the Event Table.
        Parameters:
        isThrown - true for thrown event, false for closed event
        Returns:
        user-visible string to represent this event.
      • getEventID

        public org.openlcb.EventID getEventID​(boolean isThrown)
      • setFeedbackMode

        public void setFeedbackMode​(int mode)
                             throws java.lang.IllegalArgumentException
        Description copied from class: AbstractTurnout
        On change, fires Property Change "feedbackchange". Set the feedback mode from a integer. This must be one of the bit values defined in a previous Turnout.getValidFeedbackTypes() call. Having more than one bit set is an error.
        Specified by:
        setFeedbackMode in interface Turnout
        Overrides:
        setFeedbackMode in class AbstractTurnout
        Parameters:
        mode - the feedback type to set
        Throws:
        java.lang.IllegalArgumentException - if mode is not valid
      • setProperty

        public void setProperty​(@Nonnull
                                java.lang.String key,
                                java.lang.Object value)
        Description copied from class: AbstractNamedBean
        Attach a key/value pair to the NamedBean, which can be retrieved later. These are not bound properties as yet, and don't throw events on modification. Key must not be null.

        Prior to JMRI 4.3, the key was of Object type. It was constrained to String to make these more like normal Java Beans.

        Specified by:
        setProperty in interface NamedBean
        Overrides:
        setProperty in class AbstractNamedBean
        Parameters:
        key - the property to set
        value - the value of the property
      • forwardCommandChangeToLayout

        protected void forwardCommandChangeToLayout​(int s)
        Handle a request to change state, typically by sending a message to the layout in some child class. Public version (used by TurnoutOperator) sends the current commanded state without changing it. Implementing classes will typically check the value of s and send a system specific sendMessage command. Sends an OpenLCB command
        Specified by:
        forwardCommandChangeToLayout in class AbstractTurnout
        Parameters:
        s - new state value
      • dispose

        public void dispose()
        Description copied from class: AbstractTurnout
        Deactivate this object, so that it releases as many resources as possible and no longer effects others.

        For example, if this object has listeners, after a call to this method it should no longer notify those listeners. Any native or system-wide resources it maintains should be released, including threads, files, etc.

        It is an error to invoke any other methods on this object once dispose() has been called. Note, however, that there is no guarantee about behavior in that case.

        Afterwards, references to this object may still exist elsewhere, preventing its garbage collection. But it's formally dead, and shouldn't be keeping any other objects alive. Therefore, this method should null out any references to other objects that this NamedBean contained.

        Specified by:
        dispose in interface NamedBean
        Overrides:
        dispose in class AbstractTurnout
      • setAuthoritative

        public void setAuthoritative​(boolean authoritative)
        Changes how the turnout reacts to inquire state events. With authoritative == false the state will always be reported as UNKNOWN to the layout when queried.
        Parameters:
        authoritative - whether we should respond true state or unknown to the layout event state inquiries.
      • isAuthoritative

        public boolean isAuthoritative()
        Returns:
        whether this producer/consumer is enabled to return state to the layout upon queries.
      • isListeningToStateMessages

        public boolean isListeningToStateMessages()
        Returns:
        whether this producer/consumer is always listening to state declaration messages.
      • setListeningToStateMessages

        public void setListeningToStateMessages​(boolean listen)
        Changes how the turnout reacts to state declaration messages. With listen == true state declarations will update local state at all times. With listen == false state declarations will update local state only if local state is unknown.
        Parameters:
        listen - whether we should always listen to state declaration messages.
      • compareSystemNameSuffix

        @CheckReturnValue
        public int compareSystemNameSuffix​(@Nonnull
                                           java.lang.String suffix1,
                                           @Nonnull
                                           java.lang.String suffix2,
                                           @Nonnull
                                           NamedBean n)
        Compare the suffix of this NamedBean's name with the suffix of the argument NamedBean's name for the NamedBean.compareTo(jmri.NamedBean) operation. This is intended to be a system-specific comparison that understands the various formats, etc. By default, does an alphanumeric-by-chunks comparison. Sorts by decoded EventID(s)
        Specified by:
        compareSystemNameSuffix in interface NamedBean
        Overrides:
        compareSystemNameSuffix in class AbstractNamedBean
        Parameters:
        suffix1 - The suffix for the 1st bean in the comparison
        suffix2 - The suffix for the 2nd bean in the comparison
        n - The other (second) NamedBean in the comparison
        Returns:
        -1,0,+1 for ordering if the names are well-formed; may not provide proper ordering if the names are not well-formed.