JMRI: Signals Documentation
What are Signals?
Signals (or more formally SignalHeads) are how JMRI represents and controls signal heads on a layout. They are a specific kind of output device that can be set to various colors: Red, Yellow, Green, Flashing Yellow, etc.
The Signal Table
All the signals that JMRI knows about can be referenced
using the "Signal Table" tool in the Tools menu of most JMRI programs.
There are five columns in the table:
- The system name is assigned to the signal when it's created, and can't be changed.
- If you're interested in having your signals carry "human readable" names, you can click in the "user name" column and change that information to whatever you want.
- As the signal changes, for whatever reason, the current appearance will show in the table. You can also click on the appearance button to cycle through the avilable appearances: red, yellow, green, flashing red, flashing yellow, flashing green, and dark.
- The check box in the "Lit" column lets you control whether the signal head on the layout is lit (checked) or stays dark (unchecked).
- The check box in the "Held" column shows the "held" property of the signal, and allows you to change it. This property is used by e.g. CTC machine logic to say "Don't change this signal head from red, even if it would be safe to do so, because I want to hold a train here".
To define a new signal, click on the "Add.." button. It will prompt you for the type (run off turnout outputs; SE8c; etc), and whatever setup information is needed.
This information is saved with the configuration in an XML file, along
with control panel setup and similar stuff. For more information
on creating and displaying panels, including how to show signals
on your panels,
please see the
Panels pages.
Creating a Signal
To define a new signal, click on the Add New Signal button in the Signal Table.
It will
prompt you for the signal type (controlled by turnout outputs; SE8c; etc), and
whatever setup information is needed for your choice.
Once a signal has been defined, you currently can't change
it's type directly from the program.
This is a requested
capability, and someday somebody will probably write it.
In the meantime, you can just ignore signals that you've defined
and don't want to use; they don't hurt anything.
Or you can edit your saved configuration files to remove the entire
line containing the signal definition; look for the name of the signal
to locate the right line. Note that you need to remove the entire line, and
not leave any part of it, especially the opening and closing brackets. Save
a copy of the file as a backup first!
Editing an Existing Signal
Controlling a Signal
Saving and Reloading Configuration