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:-
Interface Summary Interface Description 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 aLocoNetSlot
is modified. -
Class Summary Class Description AbstractBoardProgPanel Display and modify an Digitrax board configuration.Bundle CsOpSwAccess Ib1Throttle A specialization of the LocoNet Throttle for Intellibox-I foibles.Ib1ThrottleManager Specialization of a ThrottleManager for the Intellibox.Ib2Throttle A specialization of the LocoNet Throttle for Intellibox-II foibles.Ib2ThrottleManager Specialization of a ThrottleManager for the Intellibox.Ln7gAccyRoutesManager LnCabSignal Ln implementation of a Cab Signal Object, describing the state of the track ahead relative to a locomotive with a given address.LnCabSignalManager LocoNet implementation of theCabSignalManager
interface.LnClockControl Implementation of the Hardware Fast Clock for LocoNet.LnConnectionTypeList Get a list of valid LocoNet Connection Types.LnConstants Constants to represent values seen in LocoNet traffic.LNCPSignalMast Extend jmri.SignalMast for signals implemented by an LNCP.LncvDevicesManager LocoNet LNCV Devices Manager A centralized resource to help identify LocoNet "LNCV Format" devices and "manage" them.LnDeferProgrammer Programmer implementation for Programmer that uses a SlotManager (which is also an AbstractProgrammer) that might be provided later.LnLight Implementation of the Light Object for LocoNetLnLightManager Implement LightManager for LocoNet systems.LnMessageManager Provide access to throttle-messaging on a LocoNet.LnMeterInitTask Provides for LocoNet "Meters" discovery query at connection start-up.LnNetworkPortController Base for classes representing a LocoNet communications port.LnOpsModeProgrammer Provide an Ops Mode Programmer via a wrapper that works with the LocoNet SlotManager object.LnPacketizer Converts Stream-based I/O to/from LocoNet messages.LnPacketizer.Echo LnPacketizerStrict 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.LnPowerManager.LnTrackStatusUpdateThread Class providing a thread to delay, then query slot 0.LnPr2ThrottleManager LocoNet implementation of a ThrottleManager for the PR2.LnPredefinedMeters Provide access to current and voltage meter from some LocoNet command stationsLnProgrammerManager Extend DefaultProgrammerManager to provide programmers on LocoNet.LnReporter Extend jmri.AbstractIdTagReporter for LocoNet layouts.LnReporterManager Manage the LocoNet-specific Reporter implementation.LnSensor Extend jmri.AbstractSensor for LocoNet layouts.LnSensorAddress Utilities for handling LocoNet sensor addresses.LnSensorManager Manage the LocoNet-specific Sensor implementation.LnStringIOManager Manage the LocoNet-specific Sensor implementation.LnThrottleManager LocoNet implementation of a ThrottleManager.LnThrottleManager.ThrottleRequest LnThrottleStringIO Send a message to the LocoNet throttles.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 layoutsLnTurnoutManager Manage the LocoNet-specific Turnout implementation.LocoNetConsist LocoNetConsist.java This is the Consist definition for a consist on a LocoNet system.LocoNetConsistManager 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.LocoNetThrottledTransmitter.Memo Pr2Throttle An implementation of DccThrottle via AbstractThrottle with code specific to a PR2 connection.SE8cSignalHead Extend jmri.SignalHead for signals implemented by an SE8C.SlotManager Controls a collection of slots, acting as the counter-part of a LocoNet command station.SlotMapEntry 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 etcTranspondingTag Concrete implementation of theIdTag
interface for the LocoNet based Transponding reports.TranspondingTagManager Concrete implementation for the InternalIdTagManager
interface that manages TranspondingTags.UhlenbrockSlot Extends representation of a single slot for the Uhlenbrock IB command station.UhlenbrockSlotManager Only change compared to standard LocoNet SlotManager is CV programming. -
Enum Summary Enum Description CsOpSwAccess.CmdStnOpSwStateType LnCommandStationType Enum to carry command-station specific information for LocoNet implementations.LnCommandStationType.CommandStationClockFracType LnCommandStationType.IdleSupport LnCommandStationType.LocoResetSupport LnCommandStationType.MultiMeterSupport LnCommandStationType.ProgDepowersTrack LnCommandStationType.ReadsFromServiceModeTrack LnCommandStationType.SupportsSlot250 LncvDevicesManager.ProgrammingResult SlotMapEntry.SlotType -
Exception Summary Exception Description LocoNetException LocoNet-specific exceptionLocoNetMessageException Exception to indicate a problem assembling a LocoNet message.