Interfaces and implementations for system-specific code.
This package provides a few interfaces and abstract implementations for the system-specific code, and serves as the parent to the system-specific packages.
We intend that this will still compile and run with any of the system-specific subpackages missing. And that might even work.
Most of the system specific code is organized as follows:
- PortController classes handle the connection to the serial port or other communications link. That code is usually in the "SsssPortController" class in the "ssss.serialdriver" package
- TrafficController classes handle the sequencing and scheduling of messages and replies through a port. The intention is that a particular system use one (or few) traffic controllers with perhaps multiple port controllers for different connections
- System-specific tools are generally given their own sub-package under the system package
Interface Summary Interface Description AbstractMRListenerInterface (perhaps eventually abstract base) for Message/Reply protocol Listeners ConfiguringSystemConnectionMemo ConnectionConfigInterface for objects that handle configuring a layout connection. ConnectionTypeListDefinition of objects to handle configuring a layout connection. MessageBasic interface for messages to and from the layout hardware. NetworkPortAdapterEnables basic setup of a network interface for a jmrix implementation. PortAdapterEnables basic setup of a interface for a jmrix implementation. ProgrammingToolAn interface to allow for "callback" operations to open a symbolic programmer from connection tools. SerialPortAdapterEnable basic setup of a serial interface for a jmrix implementation. StreamConnectionConfigInterface for objects that handle configuring a layout connection.
Class Summary Class Description AbstractConnectionConfigAbstract base class for common implementation of the ConnectionConfig. AbstractConnectionConfig.Option AbstractLoaderPanePane for downloading .hex files and .dmf files to those LocoNet devices which support firmware updates via LocoNet IPL messages. AbstractMessageBase for various message implementations used by the various abstract TrafficController classes. AbstractMonFrameAbstract base class for Frames displaying communications monitor information. AbstractMonPaneAbstract base class for JPanels displaying communications monitor information. AbstractMRMessageAbstract base class for messages in a message/reply protocol. AbstractMRNodeTrafficControllerAbstract Traffic Controller base class for those implementations that track a set of nodes. AbstractMRReplyAbstract base class for replies in a message/reply protocol. AbstractMRTrafficControllerAbstract base for TrafficControllers in a Message/Reply protocol. AbstractMRTrafficController.RcvNotifierInternal class to remember the Reply object and destination listener with a reply is received. AbstractMRTrafficController.XmtNotifierInternal class to remember the Message object and destination listener when a message is queued for notification. AbstractNetworkConnectionConfigAbstract base class for common implementation of the NetworkConnectionConfig. AbstractNetworkPortControllerEnables basic setup of a network client interface for a jmrix implementation. AbstractNodeBasic implementation of a node for JMRI protocol support. AbstractPortControllerProvide an abstract base for *PortController classes. AbstractPortController.Option AbstractProgrammerCommon implementations for the Programmer interface. AbstractProgrammerFacadeCommon implementations of the Programmer interface for making Programmer facade classes. AbstractSerialConnectionConfigAbstract base class for common implementation of the SerialConnectionConfig. AbstractSerialPortControllerProvide an abstract base for *PortController classes. AbstractSimulatorConnectionConfigAbstract base class for common implementation of the Simulator ConnectionConfig. AbstractStreamConnectionConfigAbstract base class for common implementation of the Stream Port ConnectionConfig AbstractStreamPortControllerProvide an abstract implementation of a *StreamPortController for stream based ports. AbstractThrottleAn abstract implementation of DccThrottle. AbstractThrottleManagerAbstract implementation of a ThrottleManager. AbstractThrottleManager.AddressesThis subClass keeps track of which loco address have been requested and by whom. AbstractThrottleManager.WaitingThrottle AbstractUsbConnectionConfigAbstract base class for common implementation of the ConnectionConfig ActiveSystemsMenuCreate a "Systems" menu containing as submenus the JMRI system-specific menus for available systems. Bundle CaptiveSystemConnectionMemoFor historical reasons, some NamedBean types have out-of-pattern system prefixes: OBlocks use O (as in OB) RailCom tags use R Transponding tags use L This
SystemConnectionMemoimplementation is meant to handle these by providing connection memo services without being connected to a particular system instantiation.
ConnectionConfigManagerManager for ConnectionConfig objects. ConnectionStatusInterface for classes that wish to get notification when the connection to the layout changes. DefaultSystemConnectionMemoLightweight abstract class to denote that a system is active, and provide general information. JmrixConfigPaneProvide GUI to configure communications links. NetMessageRepresents a single general command or response. OtherConnectionTypeListReturn a list of valid Connection Types. ResourceBundleStartupActionFactoryCreate a factory of startup actions from a ResourceBundle. SystemConnectionMemoManagerManager for SystemConnectionMemos. UsbPortAdapterEnables basic setup of a USB interface for a jmrix implementation.
Enum Summary Enum Description AbstractPortController.Option.Type
Exception Summary Exception Description NetworkConfigExceptionRepresents a failure during the configuration of a serial port, typically via a NetworkPortAdapter interface. SerialConfigExceptionRepresents a failure during the configuration of a serial port, typically via a SerialPortAdapter interface.