JMRI Configuration
The principle software driving our layout is a combination of JMRI and our own
MRRM code bases. Of course additionaly there is embedded software in most the
circuit boards interfacing to the JMRI codebase. These include the Digitrax,
Team Digital, RRCirkits, and others.
We currently use Digitrax and Powerline control interfaces to JMRI as indicated
in the JMRI PanelPro screen below:
For this snapshot we show the Loconet Simulator Interface. For operations we use
a John Jabour Locobuffer or a RRCirkits Locobuffer II interface. We only use the
DIgitrax MS100 for some test rigs. For X10 Powerline we use a CM11, Insteon
2412S, or CP290 interface device.
Upon start-up, we run several scripts to properly set the state of all devices
and logical objects used by JMRI. First we declare and initialize the state of
each physical and virtual (Internal) sensor used. We also set up a number of
control buttons described later. Next we load our Configuration File. This file
declares the many logical objects used by our layout under JMRI. These include:
- Turnout system and user names are declared for each JMRI remote controlled
turnout. We also declare the few manually controlled turnouts for Layout Panel
completeness.
- Sensor user names are declared. Currently these are resistance triggered block
occupancy detectors from Digitrax (BDL168, Se8C, BD4 devices) or from
RR-CirKits.
- Reporter system and user names are declared. These Reporters are the Digitrax
proprietary transponder devices whereby a locomotive, having appropriate
functionality,will,when triggered, send its device address to the controlling
BDL168. The BDL168 then forwards that locomotive address to the JMRI program.
The comments field specifies the BDL circuit board and port address for the
reporter.
- Memory system names and user names are declared. Each memory object contains
persistent information written to or read from a logix or script created for the
layout.
- Internal sensor system names and user name are declared. These virtual sensors
are essentially binary variables made active or inactive via logix or scripts
created for the layout.
- Timebase is declared
- Block system names and user names are declared. Blocks describe a small part of
the layout topology and facilitate its management. Sensors within a Block are
identified. Turnouts with a Block are identified. Paths into and out of a Block
are specified. Blocks are used for JMRI dispatching and automated train running.
- Logix system names and user names are declared. The system name for each
Conditional logic is declared with its controlling Logix object.
- Conditional system names and user names are declared. The rules governing each
conditional are specified. A Logix and its Conditionals are used to control CTC
like controls on our Dispatcher panels, to respond to related sensor changes, to
change related turnout states and to change related signal aspects.
- Section system names and user names are declared. Sections are strings of
adjacent Blocks and are used to facilitate Dispatcher management of tracks and
turnouts.
- Signal Head system names and user names are declared. Virtual and physical
signal heads are declared. Turnout addresses associated with control of physical
signal heads are declared
- Transit system names and user names are declared. Transits specify a path within
the layout for running a train. Transits specify a sequence of Sections.
- Route system names and user names are declared
- Audio system names and user names are declared
- Layout Block system names and user names are declared. Related occupancy sensor
and memory objects are declared
- Signal Element system anmes and user names are declared. Related turnout,
signals and sensors are specified.
- Warrant system names and user names are declared. Warrants provide an
alternative JMRI dispatch management approach. Warrants specify a sequence of
blockOrder/block specifications which define a path within the layout.
- OBlock system names and user names are declared. An Oblock identifies details of
a track path and related senors, turnouts and signals. OBlocks are used by
Warrants.
Lastly, the configuration file contains three Layout Panel specifications for
the two Dispatcher screens and the Real-Time Status Display. These
specifications are automatically created in the process of making a Layout
Editor panel within the JMRI PanelPro program.
The control buttons we create are summarized here
- Block Table lists the Blocks used on the layout and its current occupany if any
- Logix Table lists the Logix used by the layout.
- Memory Table lists the Memory cells used by the layout and its current value
- OBlock Table lists the OBlocks used by the layout. Paths and Portals are
included
- Reporter Table lists the Reporters used by the layout and its current report
value if any
- Section Table lists the Scetions used by the layout. The first and last Block
are identified.
- Sensor Table lists the physical and virtual sensors used by the layout and its
current state
- Signal Table lists the Signals used by the layout and the current state of each
signalhead is shown.
- Transit Table lists the Transits used by the layout
- Turnout Table lists the Turnouts used by the layout. The latest command issued
to each turnout is shown.
- Reset Code IndiKators resets the Blinking Code light associated with Dispatcher
control of a turnout or associated signals.
- Set Turnouts and Signals synchronizes the JMRI turnout and signal states to a
prescribed initial hardware status.
- Set East Flow sets the traffic flow as West to East for all Signals - a test
case
- Set West Flow sets the traffic flow as East to West for all Signals - a test
case
- Set Go Flow sets the traffic flow to any for all signals - a test case
- Set Stop Flow sets the traffic flow to stop for all signals - a test case