Provides access to LocoNet systems, along with a lot of Swing-based tools.
Initialization SequenceThis 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 DocumentationFor overviews, tutorials, examples, guides, and tool documentation, please see:
Interface Summary Interface Description LocoNetInterfaceLocoNetInterface defines the general connection to a LocoNet layout. LocoNetListenerLocoNetListener provides the call-back interface for notification when a new LocoNet message arrives from the layout. SlotListenerInterface for objects that want to be notified when a
Class Summary Class Description AbstractBoardProgPanelDisplay and modify an Digitrax board configuration. Bundle CsOpSwAccess Ib1ThrottleA specialization of the LocoNet Throttle for Intellibox-I foibles. Ib1ThrottleManagerSpecialization of a ThrottleManager for the Intellibox. Ib2ThrottleA specialization of the LocoNet Throttle for Intellibox-II foibles. Ib2ThrottleManagerSpecialization of a ThrottleManager for the Intellibox. LnCabSignalLn implementation of a Cab Signal Object, describing the state of the track ahead relative to a locomotive with a given address. LnCabSignalManagerLocoNet implementation of the
LnClockControlImplementation of the Hardware Fast Clock for LocoNet. LnConnectionTypeListGet a list of valid LocoNet Connection Types. LnConstantsConstants to represent values seen in LocoNet traffic. LNCPSignalMastExtend jmri.SignalMast for signals implemented by an LNCP. LncvDevicesManagerLocoNet LNCV Devices Manager A centralized resource to help identify LocoNet "LNCV Format" devices and "manage" them. LnDeferProgrammerProgrammer implementation for Programmer that uses a SlotManager (which is also an AbstractProgrammer) that might be provided later. LnLightImplementation of the Light Object for LocoNet LnLightManagerImplement LightManager for LocoNet systems. LnMessageManagerProvide access to throttle-messaging on a LocoNet. LnMeterInitTaskProvides for LocoNet "Meters" discovery query at connection start-up. LnNetworkPortControllerBase for classes representing a LocoNet communications port. LnOpsModeProgrammerProvide an Ops Mode Programmer via a wrapper that works with the LocoNet SlotManager object. LnPacketizerConverts Stream-based I/O to/from LocoNet messages. LnPacketizer.Echo LnPacketizerStrictConverts Stream-based I/O to/from LocoNet messages. LnPortControllerBase for classes representing a LocoNet communications port. LnPowerManagerPowerManager implementation for controlling layout power. LnPowerManager.LnTrackStatusUpdateThreadClass providing a thread to delay, then query slot 0. LnPr2ThrottleManagerLocoNet implementation of a ThrottleManager for the PR2. LnPredefinedMetersProvide access to current and voltage meter from some LocoNet command stations LnProgrammerManagerExtend DefaultProgrammerManager to provide programmers on LocoNet. LnReporterExtend jmri.AbstractIdTagReporter for LocoNet layouts. LnReporterManagerManage the LocoNet-specific Reporter implementation. LnSensorExtend jmri.AbstractSensor for LocoNet layouts. LnSensorAddressUtilities for handling LocoNet sensor addresses. LnSensorManagerManage the LocoNet-specific Sensor implementation. LnStringIOManagerManage the LocoNet-specific Sensor implementation. LnThrottleManagerLocoNet implementation of a ThrottleManager. LnThrottleManager.ThrottleRequest LnThrottleStringIOSend a message to the LocoNet throttles. LnTrafficControllerAbstract base class for implementations of LocoNetInterface. LnTrafficRouterImplements a LocoNetInterface by doing a scatter-gather to another, simpler implementation. LnTurnoutExtend jmri.AbstractTurnout for LocoNet layouts LnTurnoutManagerManage the LocoNet-specific Turnout implementation. LocoNetConsist LocoNetConsistManager LocoNetMessageRepresents a single command or response on the LocoNet. LocoNetSlotRepresents the contents of a single slot in the LocoNet command station. LocoNetSystemConnectionMemoLightweight class to denote that a system is active, and provide general information. LocoNetThrottleAn implementation of DccThrottle via AbstractThrottle with code specific to a LocoNet connection. LocoNetThrottledTransmitterDelay LocoNet messages that need to be throttled. LocoNetThrottledTransmitter.Memo Pr2ThrottleAn implementation of DccThrottle via AbstractThrottle with code specific to a PR2 connection. SE8cSignalHeadExtend jmri.SignalHead for signals implemented by an SE8C. SlotManagerControls a collection of slots, acting as the counter-part of a LocoNet command station. SlotManager.SlotMapEntryslotMapEntry - a from to pair of slot numbers defining a valid range of loco/system slots TODO add slottype, eg systemslot, std slot, expanded slot etc TranspondingTagConcrete implementation of the
IdTaginterface for the LocoNet based Transponding reports.
TranspondingTagManagerConcrete implementation for the Internal
IdTagManagerinterface that manages TranspondingTags.
UhlenbrockSlotExtends representation of a single slot for the Uhlenbrock IB command station. UhlenbrockSlotManagerOnly change compared to standard LocoNet SlotManager is CV programming.
Enum Summary Enum Description CsOpSwAccess.CmdStnOpSwStateType LnCommandStationTypeEnum to carry command-station specific information for LocoNet implementations. LnCommandStationType.IdleSupport LnCommandStationType.LocoResetSupport LnCommandStationType.MultiMeterSupport LnCommandStationType.ProgDepowersTrack LnCommandStationType.ReadsFromServiceModeTrack LncvDevicesManager.ProgrammingResult
Exception Summary Exception Description LocoNetExceptionLocoNet-specific exception LocoNetMessageExceptionException to indicate a problem assembling a LocoNet message.