JMRI Library API

JMRI consists of the jmri package of basic interfaces, the jmri.jmrix package of external layout interfaces, the jmri.jmrit package of system-independent tools, plus various utility and test packages.

See:
          Description

Core
jmri Provides basic interfaces and certain core implementations for the JMRI layout management concepts.

 

Cross-system Tools
jmri.jmrit Various non-system-specific JMRI tools.
jmri.jmrit.analogclock  
jmri.jmrit.audio Provides specific implementations of various audio systems
jmri.jmrit.audio.configurexml  
jmri.jmrit.audio.swing Provides Swing-specific implementations of various audio systems.
jmri.jmrit.automat Classes to ease creation of layout automation, particularly signaling.
jmri.jmrit.automat.monitor Classes to provide a GUI for manipulating the running Automat instances.
jmri.jmrit.beantable Provides table GUI for manipulating NamedBean objects: Turnouts, Sensors, SignalHeads.
jmri.jmrit.beantable.sensor  
jmri.jmrit.beantable.signalmast  
jmri.jmrit.beantable.usermessagepreferences  
jmri.jmrit.blockboss Provides a very simple vital signal logic for use in JMRI programs.
jmri.jmrit.blockboss.configurexml XML persistance for the jmrit.blockboss package.
jmri.jmrit.catalog Provides a tree-based catalog for browsing.
jmri.jmrit.catalog.configurexml  
jmri.jmrit.consisttool  
jmri.jmrit.decoderdefn Decoder definitions via XML, including the decoder index.
jmri.jmrit.dispatcher  
jmri.jmrit.display Control panel and visible icon classes.
jmri.jmrit.display.configurexml XML persistance for the jmri.jmrit.display package
jmri.jmrit.display.controlPanelEditor  
jmri.jmrit.display.controlPanelEditor.configurexml  
jmri.jmrit.display.layoutEditor  
jmri.jmrit.display.layoutEditor.configurexml  
jmri.jmrit.display.panelEditor  
jmri.jmrit.display.panelEditor.configurexml  
jmri.jmrit.dualdecoder  
jmri.jmrit.jython  
jmri.jmrit.lcdclock Provide a simple GUI for a clock that displays the time via LCD characters
jmri.jmrit.log  
jmri.jmrit.logix  
jmri.jmrit.logix.configurexml  
jmri.jmrit.mailreport Provides a tool for sending a formatted debugging information to a mailing list, which will archive/forward/process it
jmri.jmrit.mastbuilder  
jmri.jmrit.nixieclock Provide a simple GUI for a clock that displays the time via Nixie tubes
jmri.jmrit.operations  
jmri.jmrit.operations.locations  
jmri.jmrit.operations.rollingstock  
jmri.jmrit.operations.rollingstock.cars  
jmri.jmrit.operations.rollingstock.engines  
jmri.jmrit.operations.routes  
jmri.jmrit.operations.setup  
jmri.jmrit.operations.trains  
jmri.jmrit.powerpanel  
jmri.jmrit.progsupport Provides helpful panels and GUI widgets for working with JMRI Programmer and ProgrammerManager classes
jmri.jmrit.revhistory  
jmri.jmrit.revhistory.configurexml  
jmri.jmrit.revhistory.swing  
jmri.jmrit.roster  
jmri.jmrit.roster.configurexml  
jmri.jmrit.roster.swing  
jmri.jmrit.roster.swing.attributetable  
jmri.jmrit.roster.swing.rostergroup  
jmri.jmrit.sendpacket  
jmri.jmrit.sensorgroup  
jmri.jmrit.simpleclock Contains a simple FastClock implementation based on the computers clock.
jmri.jmrit.simpleclock.configurexml  
jmri.jmrit.simplelightctrl  
jmri.jmrit.simpleprog  
jmri.jmrit.simpleturnoutctrl  
jmri.jmrit.sound  
jmri.jmrit.speedometer  
jmri.jmrit.symbolicprog Basic support for advanced programming, primarily used by DecoderPro.
jmri.jmrit.symbolicprog.autospeed  
jmri.jmrit.symbolicprog.configurexml XML persistance for the jmri.jmrit.symbolicprog package
jmri.jmrit.symbolicprog.symbolicframe  
jmri.jmrit.symbolicprog.tabbedframe  
jmri.jmrit.throttle  
jmri.jmrit.tracker Provides support for tracking trains as they move around a layout.
jmri.jmrit.turnoutoperations  
jmri.jmrit.ussctc Tools for simulating a USS CTC panel.
jmri.jmrit.withrottle  

 

Applications
apps Provides application level support for JMRI; includes specific applications in subpackages.
apps.cornwall The Cornwall Railroad JMRI application.
apps.DecoderPro The DecoderPro JMRI application.
apps.DispatcherPro The DispatcherPro JMRI application.
apps.gui3 The gui3 package provides basic function for JMRI applications that use the new "Gui3" user interface (much more to follow as we develop this new interface) Related Documentation For overviews, tutorials, examples, guides, and tool documentation, please see: ##### REFER TO NON-SPEC DOCUMENTATION HERE #####
apps.gui3.demo3 First application using the new Gui3 user interface Related Documentation For overviews, tutorials, examples, guides, and tool documentation, please see: ##### REFER TO NON-SPEC DOCUMENTATION HERE #####
apps.gui3.mdi  
apps.gui3.paned  
apps.InstallTest The InstallTest JMRI application.
apps.JmriDemo The JmriDemo JMRI application.
apps.LocoTools The LocoTools JMRI application.
apps.PacketPro The PacketPro JMRI application.
apps.PacketScript The PacketScript JMRI application.
apps.PanelPro The PanelPro JMRI application.
apps.SignalPro The SignalPro JMRI application.
apps.SoundPro The SoundPro JMRI application.

 

Implementations
jmri.implementation Provides implementations of various JMRI interfaces.
jmri.layout Create and manage a tree of the JMRI objects representing a layout.
jmri.managers Provides implementations of various JMRI managers.
jmri.progdebugger A simple implementation of Programmer for debugging purposes.

 

Utilities
jmri.util  
jmri.util.com.sun  
jmri.util.davidflanagan  
jmri.util.docbook Provides classes and XML read/write support for DocBook, as used by JMRI.
jmri.util.docbook.configurexml  
jmri.util.exceptionhandler Provides general exception handlers that work with Log4J.
jmri.util.iharder.dnd  
jmri.util.javamail  
jmri.util.javaworld  
jmri.util.swing Tools and utilities for doing a systematic reworking of the JMRI GUI.
jmri.util.swing.mdi Tools and utilities for providing a multi-document interface for a JMRI application.
jmri.util.swing.multipane Tools and utilities for providing a multi-pane interface for a JMRI application.
jmri.util.swing.sdi Tools and utilities for providing the traditional "single document" interface for a JMRI application.
jmri.util.table  
jmri.util.zeroconf Provides utilities and classes for Zeroconf/Bonjour networking.

 

XML persistance
apps.configurexml  
jmri.configurexml Provides an XML-based mechanism for storing and restoring configurations.

 

Layout Connections
jmri.jmrix Interfaces and implementations for system-specific code.
jmri.jmrix.acela This package handles communications for the CTI Acela hardware.
jmri.jmrix.acela.acelamon  
jmri.jmrix.acela.configurexml  
jmri.jmrix.acela.nodeconfig  
jmri.jmrix.acela.packetgen  
jmri.jmrix.acela.serialdriver  
jmri.jmrix.acela.serialdriver.configurexml  
jmri.jmrix.bachrus  
jmri.jmrix.bachrus.serialdriver  
jmri.jmrix.bachrus.serialdriver.configurexml  
jmri.jmrix.can Defines classes for interfacing to a CAN-based model railway control bus.
jmri.jmrix.can.adapters.gridconnect Defines classes for communicating with the CAN network via hardware which uses the GridConnect format.
jmri.jmrix.can.adapters.gridconnect.canrs Defines classes for interfacing to a MERG CAN-RS or CAN-USB adapter.
jmri.jmrix.can.adapters.gridconnect.canrs.serialdriver Defines classes for interfacing to a MERG CAN-RS CAN adpater via an RS-232 line
jmri.jmrix.can.adapters.gridconnect.canrs.serialdriver.configurexml  
jmri.jmrix.can.adapters.gridconnect.canusb.serialdriver Defines classes for interfacing to a CAN-USB CAN adapter
jmri.jmrix.can.adapters.gridconnect.canusb.serialdriver.configurexml  
jmri.jmrix.can.adapters.lawicell Defines classes for communicating with the CAN network via hardware which uses the Lawicell format
jmri.jmrix.can.adapters.lawicell.canusb.serialdriver Defines classes for interfacing to a LAWICELL CAN-USB CAN adapter
jmri.jmrix.can.adapters.lawicell.canusb.serialdriver.configurexml  
jmri.jmrix.can.adapters.loopback Defines classes for simulating communication with a CAN network via loopback
jmri.jmrix.can.adapters.loopback.configurexml  
jmri.jmrix.can.cbus Defines classes for interfacing to a MERG CBUS network.
jmri.jmrix.can.cbus.configurexml  
jmri.jmrix.can.cbus.swing.configtool  
jmri.jmrix.can.cbus.swing.console Defines classes for a console utility to interact with a MERG CBUS network
jmri.jmrix.can.cbus.swing.eventtable Defines classes for implementing an event table to interact with a MERG CBUS network.
jmri.jmrix.can.nmranet Defines classes for interfacing to a NMRAnet network.
jmri.jmrix.can.swing.monitor  
jmri.jmrix.can.swing.send Provide a tool for sending CAN packets.
jmri.jmrix.cmri  
jmri.jmrix.cmri.serial  
jmri.jmrix.cmri.serial.assignment  
jmri.jmrix.cmri.serial.configurexml  
jmri.jmrix.cmri.serial.diagnostic  
jmri.jmrix.cmri.serial.nodeconfig  
jmri.jmrix.cmri.serial.packetgen  
jmri.jmrix.cmri.serial.serialdriver  
jmri.jmrix.cmri.serial.serialdriver.configurexml  
jmri.jmrix.cmri.serial.serialmon  
jmri.jmrix.cmri.serial.sim  
jmri.jmrix.cmri.serial.sim.configurexml  
jmri.jmrix.configurexml  
jmri.jmrix.debugthrottle  
jmri.jmrix.direct  
jmri.jmrix.direct.serial  
jmri.jmrix.direct.serial.configurexml  
jmri.jmrix.easydcc  
jmri.jmrix.easydcc.configurexml  
jmri.jmrix.easydcc.easydccmon  
jmri.jmrix.easydcc.networkdriver  
jmri.jmrix.easydcc.networkdriver.configurexml  
jmri.jmrix.easydcc.packetgen  
jmri.jmrix.easydcc.serialdriver  
jmri.jmrix.easydcc.serialdriver.configurexml  
jmri.jmrix.ecos Support for the ESU ECoS.
jmri.jmrix.ecos.configurexml  
jmri.jmrix.ecos.networkdriver  
jmri.jmrix.ecos.networkdriver.configurexml  
jmri.jmrix.ecos.swing.locodatabase  
jmri.jmrix.ecos.swing.monitor  
jmri.jmrix.ecos.swing.packetgen  
jmri.jmrix.ecos.swing.preferences  
jmri.jmrix.ecos.swing.statusframe  
jmri.jmrix.ecos.utilities  
jmri.jmrix.grapevine This package handles communications for the ProTrak Grapevine hardware.
jmri.jmrix.grapevine.configurexml  
jmri.jmrix.grapevine.nodeconfig  
jmri.jmrix.grapevine.nodetable  
jmri.jmrix.grapevine.packetgen  
jmri.jmrix.grapevine.serialdriver  
jmri.jmrix.grapevine.serialdriver.configurexml  
jmri.jmrix.grapevine.serialmon  
jmri.jmrix.internal  
jmri.jmrix.internal.configurexml  
jmri.jmrix.jinput Access to USB input devices via JInput.
jmri.jmrix.jinput.treecontrol GUI for controlling JInput access to USB devices.
jmri.jmrix.lenz  
jmri.jmrix.lenz.configurexml  
jmri.jmrix.lenz.hornbyelite  
jmri.jmrix.lenz.hornbyelite.configurexml  
jmri.jmrix.lenz.li100  
jmri.jmrix.lenz.li100.configurexml  
jmri.jmrix.lenz.li100f  
jmri.jmrix.lenz.li100f.configurexml  
jmri.jmrix.lenz.li101  
jmri.jmrix.lenz.li101.configurexml  
jmri.jmrix.lenz.liusb  
jmri.jmrix.lenz.liusb.configurexml  
jmri.jmrix.lenz.liusbserver  
jmri.jmrix.lenz.liusbserver.configurexml  
jmri.jmrix.lenz.lv102  
jmri.jmrix.lenz.lz100  
jmri.jmrix.lenz.lzv100  
jmri.jmrix.lenz.mon  
jmri.jmrix.lenz.packetgen  
jmri.jmrix.lenz.stackmon  
jmri.jmrix.lenz.systeminfo  
jmri.jmrix.lenz.xnetsimulator  
jmri.jmrix.lenz.xnetsimulator.configurexml  
jmri.jmrix.lenz.xntcp  
jmri.jmrix.lenz.xntcp.configurexml  
jmri.jmrix.lenz.ztc640  
jmri.jmrix.lenz.ztc640.configurexml  
jmri.jmrix.libusb Provides JMRI support for USB via the libusb library and libusb-java adapter.
jmri.jmrix.loconet Provides access to LocoNet systems, along with a lot of Swing-based tools.
jmri.jmrix.loconet.almbrowser  
jmri.jmrix.loconet.bdl16  
jmri.jmrix.loconet.clockmon  
jmri.jmrix.loconet.cmdstnconfig  
jmri.jmrix.loconet.configurexml  
jmri.jmrix.loconet.downloader  
jmri.jmrix.loconet.ds64  
jmri.jmrix.loconet.hexfile  
jmri.jmrix.loconet.hexfile.configurexml  
jmri.jmrix.loconet.Intellibox  
jmri.jmrix.loconet.Intellibox.configurexml  
jmri.jmrix.loconet.locobuffer  
jmri.jmrix.loconet.locobuffer.configurexml  
jmri.jmrix.loconet.locobufferii  
jmri.jmrix.loconet.locobufferii.configurexml  
jmri.jmrix.loconet.locobufferusb  
jmri.jmrix.loconet.locobufferusb.configurexml  
jmri.jmrix.loconet.locogen  
jmri.jmrix.loconet.locoid  
jmri.jmrix.loconet.locoio  
jmri.jmrix.loconet.locomon  
jmri.jmrix.loconet.loconetovertcp  
jmri.jmrix.loconet.loconetovertcp.configurexml  
jmri.jmrix.loconet.locormi  
jmri.jmrix.loconet.locormi.configurexml  
jmri.jmrix.loconet.locostats  
jmri.jmrix.loconet.ms100  
jmri.jmrix.loconet.ms100.configurexml  
jmri.jmrix.loconet.pm4  
jmri.jmrix.loconet.pr2  
jmri.jmrix.loconet.pr2.configurexml  
jmri.jmrix.loconet.pr3  
jmri.jmrix.loconet.pr3.configurexml  
jmri.jmrix.loconet.pr3.swing  
jmri.jmrix.loconet.sdf Support for reading and writing Digitrax SDF (Sound Definition Format) information, particularly in Digitrax Sound Definition Project (SDF) files.
jmri.jmrix.loconet.sdfeditor Provide GUI tools for editing an SDF file in memory.
jmri.jmrix.loconet.se8  
jmri.jmrix.loconet.slotmon  
jmri.jmrix.loconet.soundloader  
jmri.jmrix.loconet.spjfile Provides support for reading and writing of the Digitrax SPJ file format.
jmri.jmrix.loconet.swing  
jmri.jmrix.loconet.swing.throttlemsg A LocoNet-specific tool for sending messages to throttles.
jmri.jmrix.maple  
jmri.jmrix.maple.assignment  
jmri.jmrix.maple.configurexml  
jmri.jmrix.maple.nodeconfig  
jmri.jmrix.maple.packetgen  
jmri.jmrix.maple.serialdriver  
jmri.jmrix.maple.serialdriver.configurexml  
jmri.jmrix.maple.serialmon  
jmri.jmrix.mrc  
jmri.jmrix.mrc.mrcmon  
jmri.jmrix.mrc.serialdriver  
jmri.jmrix.mrc.serialdriver.configurexml  
jmri.jmrix.nce  
jmri.jmrix.nce.boosterprog  
jmri.jmrix.nce.cab  
jmri.jmrix.nce.clockmon  
jmri.jmrix.nce.configurexml  
jmri.jmrix.nce.consist  
jmri.jmrix.nce.macro  
jmri.jmrix.nce.ncemon  
jmri.jmrix.nce.networkdriver  
jmri.jmrix.nce.networkdriver.configurexml  
jmri.jmrix.nce.packetgen  
jmri.jmrix.nce.serialdriver  
jmri.jmrix.nce.serialdriver.configurexml  
jmri.jmrix.nce.simulator  
jmri.jmrix.nce.simulator.configurexml  
jmri.jmrix.nce.usbdriver  
jmri.jmrix.nce.usbdriver.configurexml  
jmri.jmrix.ncemonitor  
jmri.jmrix.oaktree  
jmri.jmrix.oaktree.configurexml  
jmri.jmrix.oaktree.nodeconfig  
jmri.jmrix.oaktree.packetgen  
jmri.jmrix.oaktree.serialdriver  
jmri.jmrix.oaktree.serialdriver.configurexml  
jmri.jmrix.oaktree.serialmon  
jmri.jmrix.powerline This package handles communications for powerline adapters, such as X10.
jmri.jmrix.powerline.cm11 This package handles communications for CM11 powerline adapters.
jmri.jmrix.powerline.cm11.configurexml  
jmri.jmrix.powerline.configurexml  
jmri.jmrix.powerline.cp290 This package handles communications for CP290 powerline adapters.
jmri.jmrix.powerline.cp290.configurexml  
jmri.jmrix.powerline.insteon2412s This package handles communications for Insteon 2412S adapters.
jmri.jmrix.powerline.insteon2412s.configurexml  
jmri.jmrix.powerline.packetgen  
jmri.jmrix.powerline.serialdriver  
jmri.jmrix.powerline.serialdriver.configurexml  
jmri.jmrix.powerline.serialmon  
jmri.jmrix.pricom  
jmri.jmrix.pricom.downloader  
jmri.jmrix.pricom.pockettester  
jmri.jmrix.qsi Connects to a QSI programmer unit.
jmri.jmrix.qsi.packetgen  
jmri.jmrix.qsi.qsimon  
jmri.jmrix.qsi.serialdriver  
jmri.jmrix.qsi.serialdriver.configurexml  
jmri.jmrix.rps This package contains software specific to the RPS system from NAC Services, Inc.
jmri.jmrix.rps.aligntable Provide access to alignment information via a table interface.
jmri.jmrix.rps.configurexml  
jmri.jmrix.rps.reversealign  
jmri.jmrix.rps.rpsmon  
jmri.jmrix.rps.serial  
jmri.jmrix.rps.serial.configurexml  
jmri.jmrix.rps.swing Contains Swing-dependent RPS tools.
jmri.jmrix.rps.swing.debugger Provides a GUI for various RPS debugging activities.
jmri.jmrix.rps.swing.polling Provides a control panel frame for operating the RPS support.
jmri.jmrix.rps.swing.soundset Provides a GUI for controlling an automatic sound calculation
jmri.jmrix.rps.trackingpanel This package creates the "Tracking Display" tool for RPS
jmri.jmrix.secsi This package handles communications for the TracTronics SECSI hardware.
jmri.jmrix.secsi.configurexml  
jmri.jmrix.secsi.nodeconfig  
jmri.jmrix.secsi.packetgen  
jmri.jmrix.secsi.serialdriver  
jmri.jmrix.secsi.serialdriver.configurexml  
jmri.jmrix.secsi.serialmon  
jmri.jmrix.serialsensor  
jmri.jmrix.sprog  
jmri.jmrix.sprog.configurexml  
jmri.jmrix.sprog.console  
jmri.jmrix.sprog.packetgen  
jmri.jmrix.sprog.serialdriver  
jmri.jmrix.sprog.serialdriver.configurexml  
jmri.jmrix.sprog.sprog  
jmri.jmrix.sprog.sprog.configurexml  
jmri.jmrix.sprog.sprogCS  
jmri.jmrix.sprog.sprogCS.configurexml  
jmri.jmrix.sprog.sprogmon  
jmri.jmrix.sprog.sprogslotmon  
jmri.jmrix.sprog.swing  
jmri.jmrix.sprog.update  
jmri.jmrix.srcp Provide a JMRI connection to an SRCP server.
jmri.jmrix.srcp.configurexml  
jmri.jmrix.srcp.networkdriver  
jmri.jmrix.srcp.networkdriver.configurexml  
jmri.jmrix.srcp.packetgen  
jmri.jmrix.srcp.srcpmon  
jmri.jmrix.tmcc  
jmri.jmrix.tmcc.configurexml  
jmri.jmrix.tmcc.packetgen  
jmri.jmrix.tmcc.serialdriver  
jmri.jmrix.tmcc.serialdriver.configurexml  
jmri.jmrix.tmcc.serialmon  
jmri.jmrix.wangrow Provides JMRI implementations for Wangrow DCC systems.
jmri.jmrix.wangrow.serialdriver  
jmri.jmrix.wangrow.serialdriver.configurexml  
jmri.jmrix.xpa  
jmri.jmrix.xpa.configurexml  
jmri.jmrix.xpa.packetgen  
jmri.jmrix.xpa.serialdriver  
jmri.jmrix.xpa.serialdriver.configurexml  
jmri.jmrix.xpa.xpaconfig  
jmri.jmrix.xpa.xpamon  
jmri.jmrix.zimo  
jmri.jmrix.zimo.mx1  
jmri.jmrix.zimo.mx1.configurexml  
jmri.jmrix.zimo.packetgen  
jmri.jmrix.zimo.zimomon  

 

Other Packages
jmri.configurexml.swing  
jmri.configurexml.turnoutoperations  
jmri.implementation.configurexml  
jmri.implementation.swing Provides Swing-specific implementations of various JMRI interfaces.
jmri.jmris  
jmri.jmris.simpleserver  
jmri.jmris.srcp  
jmri.managers.configurexml  
jmri.web.miniserver MiniServer is a small web server, the smallest scaffold possible for running simple servlets.
jmri.web.miniserver.servlet.echoservlet  
jmri.web.miniserver.servlet.fileservlet Property Files The "FileServletTypes.properties" properties file maps file suffixes to the MIME types used when serving them.
jmri.web.servlet.frameimage A servlet to provide access to any open JMRI window.
jmri.web.servlet.xmlio This package provides a Servlet implementation of the JMRI XML I/O protocol.
jmri.web.xmlio The JMRI XML I/O package allows communications to and from a running JMRI program through the exchange of XML-format information.

 

JMRI consists of the jmri package of basic interfaces, the jmri.jmrix package of external layout interfaces, the jmri.jmrit package of system-independent tools, plus various utility and test packages.

The primary JMRI concepts are defined by interfaces in the jmri package. Objects such as Turnouts, Sensors, and SignalHeads can be directly manipulated as analogs of items on the layout.

To get access to these objects, you ask for them from a manager, e.g. a TurnoutManager. The manager can provide an existing object, or create a new one of the needed concrete type.

To find the managers, you start with the static members in the InstanceManager class.



Copyright © 1997 - 2010 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