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 abstract implementations of the JMRI layout management concepts.

 

Cross-system Tools
jmri.jmrit Various non-system-specific JMRI tools.
jmri.jmrit.analogclock  
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.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.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.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.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.roster  
jmri.jmrit.roster.configurexml  
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  
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.

 

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.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 CAN 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 Defines classes for interfacing to a CAN-USB CAN adapter
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 Defines classes for interfacing to a LAWICELL CANUSB adapter
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.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.monitor  
jmri.jmrix.ecos.swing.packetgen  
jmri.jmrix.ecos.swing.statusframe  
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.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.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.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  
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.throttlemsg A LocoNet-specific tool for sending messages to throttles.
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.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.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.nodeconfig  
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.update  
jmri.jmrix.srcp Implementation Notes Every SRCP message or reply ends in a 0x0A character, which is an "\n" character in Java.
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  

 

Utilities
jmri.util  
jmri.util.com.sun  
jmri.util.davidflanagan  
jmri.util.table  

 

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

 

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.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.

 

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

 

Other Packages
jmri.configurexml.turnoutoperations  
jmri.implementation Provides implementations of various JMRI interfaces.
jmri.implementation.swing Provides Swing-specific implementations of various JMRI interfaces.
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  

 

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 - 2008 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: SourceForge_Logo