Package jmri.jmrix.loconet

Provides access to LocoNet systems, along with a lot of Swing-based tools.

See:
          Description

Interface Summary
LocoNetInterface LocoNetInterface defines the general connection to a LocoNet layout.
LocoNetListener LocoNetListener provides the call-back interface for notification when a new LocoNet message arrives from the layout.
SlotListener Interface for objects that want to be notified when a LocoNetSlot is modified.
 

Class Summary
AbstractAlmImplementation Provide an ALM that lives on the LocoNet.
AbstractBoardProgPanel Display and modify an Digitrax board configuration.
ActiveFlag Provide a flag to indicate that the system provided by this package is active.
AlmImplementation Provide an ALM that lives on the LocoNet.
AspectGenerator Test implementation of AspectGenerator, ala 1/8 of an SE8.
LnClockControl LnClockControl.java Implementation of the Hardware Fast Clock for Loconet This module is based on a GUI module developed by Bob Jacobsen and Alex Shepherd to correct the Loconet fast clock rate and synchronize it with the internal JMRI fast clock Timebase.
LnConnectionTypeList Returns a list of valid lenz XpressNet Connection Types
LnConstants LnConstants.java Description: Constants to represent values seen in LocoNet traffic
LnLight LnLight.java Implementation of the Light Object for Loconet Based in part on SerialLight.java
LnLightManager Implement light manager for loconet systems System names are "LLnnnnn", where nnnnn is the bit number without padding.
LnMessageManager Provide access to throttle-messaging on a LocoNet.
LnNetworkPortController Base for classes representing a LocoNet communications port
LnOpsModeProgrammer Provide an Ops Mode Programmer via a wrapper what works with the LocoNet SlotManager object.
LnPacketizer Converts Stream-based I/O to/from LocoNet messages.
LnPortController Base for classes representing a LocoNet communications port
LnPowerManager PowerManager implementation for controlling layout power Some of the message formats used in this class are Copyright Digitrax, Inc.
LnPr2ThrottleManager LocoNet implementation of a ThrottleManager for the PR2 Does direct "push" writes to the extended slot in the PR2.
LnProgrammerManager Extend DefaultProgrammerManager to provide ops mode programmers on LocoNet
LnReporter Extend jmri.AbstractReporter for LocoNet layouts This implementation reports transponding messages.
LnReporterManager LnReporterManager implements the ReporterManager.
LnSecurityElementManager Manager for SecurityElement objects, currently local to LocoNet implementations.
LnSensor Extend jmri.AbstractSensor for LocoNet layouts.
LnSensorAddress Utilities for handling LocoNet sensor addresses.
LnSensorManager Manage the LocoNet-specific Sensor implementation.
LnThrottleManager LocoNet implementation of a ThrottleManager.
LnTrafficController Abstract base class for implementations of LocoNetInterface.
LnTrafficRouter Implements a LocoNetInterface by doing a scatter-gather to another, simpler implementation.
LnTurnout Extend jmri.AbstractTurnout for LocoNet layouts This implementation implements the "SENT" feedback, where LocoNet messages originating on the layout can change both KnownState and CommandedState.
LnTurnoutManager LnTurnoutManager implements the TurnoutManager.
LocoNetAutomaton Deprecated. 2.9.4
LocoNetBundle Common access to the LocoNetBundle of properties.
LocoNetConsist  
LocoNetConsistManager  
LocoNetMenu Deprecated. 2.9.5
LocoNetMessage Represents a single command or response on the LocoNet.
LocoNetSlot Represents the contents of a single slot in the LocoNet command station.
LocoNetSystemConnectionMemo Lightweight class to denote that a system is active, and provide general information.
LocoNetThrottle An implementation of DccThrottle via AbstractThrottle with code specific to a LocoNet connection.
LocoNetThrottledTransmitter Delay LocoNet messages that need to be throttled.
Pr2Throttle An implementation of DccThrottle via AbstractThrottle with code specific to a PR2 connection.
Se8AlmImplementation ALM implementation for the SE8.
SE8cSignalHead Extend jmri.SignalHead for signals implemented by an SE8c This implementation writes out to the physical signal when it's commanded to change appearance, and updates its internal state when it hears commands from other places.
SecurityElement Test implementation of SecurityElement, ala 1/8 of an SE8.
SlotManager Controls a collection of slots, acting as the counter-part of a LocoNet command station.
 

Exception Summary
LocoNetException LocoNet-specific exception
LocoNetMessageException Exception to indicate a problem assembling a LocoNet message.
 

Package jmri.jmrix.loconet Description

Provides access to LocoNet systems, along with a lot of Swing-based tools.

Initialization Sequence

This section describes the LocoNet implementation of the new (2010) configuration system.
  1. jmri.jmrix.loconet.NN.configurexml.ConnectionConfigXml is invoked by the configurexml when the specific class is named in an XML input file.
  2. It is a child of the jmri.jmrix.configurexml.AbstractConnectionConfigXml, which invokes the getInstance() method of it (not a static method) in its load() method to load the "adapter" member variable with a specific *Adapter class, e.g. MS100Adapter.
  3. More importantly, that getInstance()
  4. Later, after the port is (hopefully) up, AbstractConnectionConfigXml invokes the Adapter's configure() method.
  5. That Adapter configure() method does, in order:
    1. sets up Packetizer/port/etc as needed
    2. configureCommandStation() from LnPortController
    3. configureManagers() from LnPortController, but overridden in e.g. PR3Adapter.
    4. does any other initialization of it's own, e.g. startThreads()

      At this point, the system is basically up and ready for operation.

    5. Finally, a jmri.jmrix.loconet.LocoNetSystemConnectionMemo object is created and registered with the InstanceManager.
  6. Later, jmri.jmrix.ActiveSystemsMenu and.or jmri.jmrix.SystemsMenu wants to create user menus, and finds the LocoNetSystemConnectionMemo object in the InstanceManager
  7. The menu code asks that specific SystemConnectionMemo object to create and return the menu. It does so, in the process connecting each Action to itself so that the individual tools will be able to connect to the proper e.g. TrafficController, SlotMonitor, etc.
  8. When an Action is fired later on, the invoked class(es) enquire of the LocoNetSystemConnectionMemo when they need a resource, instead of referring to an instance() method in the resource's class.
To adapt a type, e.g. Turnout:
  1. Basic manager needs to have getSystemPrefix in addition to letter
  2. ProxyManager has to check for system prefix, not letter

Related Documentation

For overviews, tutorials, examples, guides, and tool documentation, please see:



Copyright © 1997 - 2011 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads