This is the home
page for the Computer Automated Traffic System (CATS), a suite of open
source programs that provide signal logic on a model railroad. To
download the software, scroll down on this page to the Code section.
Click on the software link and read the license. Then scroll to the
bottom of that page for links to the software, collected into zip
files.
The release zip file should be placed in the same folder as JMRI.
It contains user documentation.
The impetus for this software was to implement CTC signaling on Pat
Lana's Cedar River and Iowa Central Railway (not affiliated with the
Cedar Rapids and Iowa City Railway in any way). Pat's Crandic is an N
scale model railroad, a bridge route between Kansas City and the
mythical town of Pammelia, Iowa, with connections to Minneapolis/St.
Paul and Chicago. Though the date is August, 1968, the railroad
mangement has invested in a futuristic computer system using CRTs for
dispatching traffic on the railroad. This program is the result of that
investment.
Video of the Cedar River and Iowa Central, its CEO, and crew can be
found at
Dan's video page.
A high speed
Internet connection is needed because some of these are large. They are
viewed through Quicktime, a free plugin from Apple Computer. The
official Cedar River and Iowa Central home page is at
Bob's
page.
What is CATS?
CATS is open source
software, written in Java and built on the work of the JMRI programmers
(JMRI home page).
CATS is a JMRI
application and not part of the JMRI toolset, so JMRI (and a Java
Runtime Environment) are needed to run CATS.
CATS is
a modern
looking, "point and click" dispatcher panel
is a suite
of programs, including a GUI editor for creating the panel
supports
full interlocking of routes
handles
complex interlocking plants through a graphical description
supports
ABS, APB, DTC, and CTC signal disciplines
was
developed by a model railroader interested in operations for model
railroaders, so assists in the paperwork of an operating session
train
labels follow block occupancy reports
drop down
menus for trains, crews, and jobs can be customized
maintains a
crew callboard and records assignments
tracks
crew hours on the job
records
train movements, with timestamps
uses JMRI,
so can work with many different kinds of model railroad control systems
supports
full connectivity (signals, occupancy, turnout feedback) to a layout
works as a
"magnet board" (no connection to the layout)
works with
partial connection to the layout
is written
in Java, so runs on many kinds of computers
supports
user defined aspects for indications based on 2 block/4 speed signaling
The following
screen capture is from the program used to create a dispatcher panel.
The next screen
capture is the Crandic dispatcher panel in operation.
One more screen
capture shows the train lineup pulldown.
Train Status Client
A third member in the CATS suite of programs for supporting operations
is a Train Status Client (TrainStat). It summarizes the information
on the operating session trains in a tabular form, for use by yard
masters or traffic managers. It is a separate Java application, run on
the computer running CATS or networked computers.
Requirements
Java Swing
(tested
with Java 1.6.0-11)
Release2007 works with
JMRI 2.x through 2.5.3. Release2008 (and later) work with JMRI 2.5.4 and later.
Quick Start
To get started using CATS, download the release zip file into a folder containing JMRI and unzip it. The distribution
contains Word documents on how to install and use CATS.
Important Note to Current
Users:
CATS 2.15 (Release2007) is compatible
with JMRI versions 2.0-2.5.3. It is not compatible with older versions
of
JMRI or with version 2.5.4 or later. CATS 2.16 (Release2008) and later is compatible with JMRI
versions 2.5.4 and later.
The highlights of the changes for Release2009
are:
Enhanced the fine control on colors and fonts so that stations need not be the same color; labels on the panel need not all have the same color, size, or emphasis; the color of trains is sent to TrainStat.
Used more Java 1.5 constructs for more compatibility with the Java 1.5 (and later) compilers.
Bug fixes - see the release notes.
Code
Latest versions:
CATS 2.17
designer
2.07
TrainStatus 1.03
Layout files generated by previous releases are compatible with this release.
To download the latest
software, you will need to scroll to the bottom of the license to find
the links to the software.
I have some
complimentary programs written, which will be posted here when I get
them polished some more:
Under
development
a
transformation for converting the operating session log into a Comma
Separated Value (CSV) file for import into a spreadsheet or data base
a program
to take the results of the conversion program and generate a string
chart of the operating session.
Contact
are - r
oh - o
dee - d
in - n
ee - e
wye - y
bee - b
el - l
eh - a
see - c
kay - k
two - 2
zero - 0
zero - 0
zero - 0
at - @
wye - y
eh - a
ach - h
oh - o
oh - o
dot - .
see - c
oh - o
em - m
I am sharing these
programs for the enjoyment of the model railroading community. If you
find them useful, then great. However, I know they are not perfect -
there are over 30,000 lines of Java code in each. There are more things
I would like them to do, as well. But, I am the only person supporting
the programs, the documents, and this web site and this is not my day
job. So, I welcome bug reports and enhancement suggestions, but will
get to them when time permits.
Acknowlegements
I have to thank Pat
Lana for being the test bed for this code. His Cedar River and Iowa
Central is large enough and has enough variety to give this a good
workout. I also thank my core beta testers -
Bruce
Faulkner's CSXT Shenandoah Division, andJohn
Parker's BNSF Fall River Division
, for their
suggestions and patience working through the "features". Bob Jacobson,
Paul Bender, Dick Bronson, and the rest of the JMRI developers merit
special recognition because they provide the glue between the
dispatcher panel and the layout.
The phrase "JMRI"
belongs to the JMRI development organization. "Java" is a registered
trademark of Sun Microsystems.