Package jmri.jmrix.loconet
package jmri.jmrix.loconet
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.- jmri.jmrix.loconet.NN.configurexml.ConnectionConfigXml is invoked by the configurexml when the specific class is named in an XML input file.
- 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.
- More importantly, that getInstance()
- Later, after the port is (hopefully) up, AbstractConnectionConfigXml invokes the Adapter's configure() method.
- That Adapter configure() method does, in order:
- sets up Packetizer/port/etc as needed
- configureCommandStation() from LnPortController
- configureManagers() from LnPortController, but overridden in e.g. PR3Adapter.
- does any other initialization of it's own, e.g. startThreads()
At this point, the system is basically up and ready for operation.
- Finally, a jmri.jmrix.loconet.LocoNetSystemConnectionMemo object is created and registered with the InstanceManager.
- Later, jmri.jmrix.ActiveSystemsMenu wants to create user menus, and finds the LocoNetSystemConnectionMemo object in the InstanceManager
- 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.
- 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.
- Basic manager needs to have getSystemPrefix in addition to letter
- ProxyManager has to check for system prefix, not letter
Related Documentation
For overviews, tutorials, examples, guides, and tool documentation, please see:-
ClassDescriptionDisplay and modify an Digitrax board configuration.A specialization of the LocoNet Throttle for Intellibox-I foibles.Specialization of a ThrottleManager for the Intellibox.A specialization of the LocoNet Throttle for Intellibox-II foibles.Specialization of a ThrottleManager for the Intellibox.Ln implementation of a Cab Signal Object, describing the state of the track ahead relative to a locomotive with a given address.LocoNet implementation of the
CabSignalManagerinterface.Implementation of the Hardware Fast Clock for LocoNet.Enum to carry command-station specific information for LocoNet implementations.Get a list of valid LocoNet Connection Types.Constants to represent values seen in LocoNet traffic.Extend jmri.SignalMast for signals implemented by an LNCP.LocoNet LNCV Devices ManagerProgrammer implementation for Programmer that uses a SlotManager (which is also an AbstractProgrammer) that might be provided later.Implementation of the Light Object for LocoNetImplement LightManager for LocoNet systems.Provide access to throttle-messaging on a LocoNet.Provides for LocoNet "Meters" discovery query at connection start-up.Base for classes representing a LocoNet communications port.Provide an Ops Mode Programmer via a wrapper that works with the LocoNet SlotManager object.Converts Stream-based I/O to/from LocoNet messages.Converts Stream-based I/O to/from LocoNet messages.Base for classes representing a LocoNet communications port.PowerManager implementation for controlling layout power.Class providing a thread to delay, then query slot 0.LocoNet implementation of a ThrottleManager for the PR2.Provide access to current and voltage meter from some LocoNet command stationsExtend DefaultProgrammerManager to provide programmers on LocoNet.Extend jmri.AbstractIdTagReporter for LocoNet layouts.Manage the LocoNet-specific Reporter implementation.Extend jmri.AbstractSensor for LocoNet layouts.Utilities for handling LocoNet sensor addresses.Manage the LocoNet-specific Sensor implementation.Manage the LocoNet-specific Sensor implementation.LocoNet LNSV1 Devices ManagerLocoNet implementation of a ThrottleManager.Send a message to the LocoNet throttles.Abstract base class for implementations of LocoNetInterface.Implements a LocoNetInterface by doing a scatter-gather to another, simpler implementation.Extend jmri.AbstractTurnout for LocoNet layoutsManage the LocoNet-specific Turnout implementation.LocoNetConsist.java This is the Consist definition for a consist on a LocoNet system.LocoNet-specific exceptionLocoNetInterface defines the general connection to a LocoNet layout.LocoNetListener provides the call-back interface for notification when a new LocoNet message arrives from the layout.Represents a single command or response on the LocoNet.Exception to indicate a problem assembling a LocoNet message.Represents the contents of a single slot in the LocoNet command station.Lightweight class to denote that a system is active, and provide general information.An implementation of DccThrottle via AbstractThrottle with code specific to a LocoNet connection.Delay LocoNet messages that need to be throttled.An implementation of DccThrottle via AbstractThrottle with code specific to a PR2 connection.Extend jmri.SignalHead for signals implemented by an SE8C.Interface for objects that want to be notified when aLocoNetSlotis modified.Controls a collection of slots, acting as the counter-part of a LocoNet command station.slotMapEntry - a from to pair of slot numbers defining a valid range of loco/system slots TODO add slottype, eg systemslot, std slot, expanded slot etcConcrete implementation of theIdTaginterface for the LocoNet based Transponding reports.Concrete implementation for the InternalIdTagManagerinterface that manages TranspondingTags.Extends representation of a single slot for the Uhlenbrock IB command station.Only change compared to standard LocoNet SlotManager is CV programming.