| Date |
Version |
Designer |
Comments |
| May 28, 2004 |
0.7 |
0.7 |
- ABS and CTC signals
- detection
- train roster
- crew
- used at RMR convention
- copy to Patrick Tillery
- copy with Pat to NMRA national in Seattle
|
| July 10, 2004 |
0.8 |
0.7 |
- send decoder commands to move turnouts
- send decoder commands to control lock/unlock lights
- converted text to JLabels
- train labels occupy/unoccupy blocks in dark territory
- copy to Patrick Tillery
- copy to Bob Jacobson
|
| July 24, 2004 |
0.9 |
0.7 |
- added Routes
- fixed up coloring of occupied dark blocks
- added complexity to Indications
|
| August 10, 2004 |
0.10 |
0.8 |
- added Version identification in XML files
|
| September 9, 2004 |
0.11 |
0.8 |
- converted crew list to an array for call to JListDialog so that the JDialog
would be smaller
- added another JListDialog for an array of fixed strings - I couldn't get
ToolTips to work right without redoing mouse handling
- can double click on JListDialog pop-ups
- reworked recording train movements. Record by block name, then Section
information. Record position and drag and drop movements.
- fixed bug in logger where LThread was not created
|
| September 11, 2004 |
0.12 |
0.8 |
- put block name on title bar of block menu pop up
- removed mouse release debug message in Screen
- added a menu item to refresh the signals on the layout
- slowed down the rate messages were sent during startup
|
| October 4, 2004 |
0.13 |
0.9 |
- activated speed indications
- reworked turnout route messages (made only commands a list)
- added support for local turnout requests and reports
- sent to John Parker
|
| November 24, 2004 |
0.14 |
0.9 |
- fixed bug in placing pop up Dialogs so they stay on the screen.
- added signal test
- fixed bug where screen size was computed from wrong component.
- added APB.
- added train tracking.
|
| December 23, 2004 |
0.15 |
0.9 |
- fixed null pointer bugs in expectingTrain and notExpecting Train.
- added test in automatically moving a train when two occupied reports
are received for a block without an intervening unoccupied. Without this,
the train label would move backwards.
|
| January 23, 2005 |
0.16 |
0.10 |
- fixed a bug in designer where Block definitions were not propagating
completely
- added the concept of a crossing to designer so any section with both
a horizontal and vertical track contains a crossing.
- copy to Patrick Tillery
- copy to Pat Lana
|
| February 20, 2005 |
0.17 |
0.10 |
- fixed CATS to set the blocks on a crossing correctly.
- changed title of JMRI Panel to "JMRI Panel".
- copy to John Parker
|
| February 27, 2005 |
0.18 |
0.11 |
- fixed bug where Track and Time was being superceded by other blocking
conditions.
- completed crossings, single slips, and double slips.
- fixed bug in arrow heads on vertical lines.
- copies to John Parker, Patrick Tillery, and Bruce Faulkner.
|
| May 6, 2005 |
0.19 |
0.12 |
- generalized I/O specifications to include recognized JMRI system
names.
|
| May 17, 2005 |
0.20 |
0.13 |
- cleaned up IOSpecs for generalized JMRI system names.
|
| May 29, 2005 |
0.21 |
0.13 |
- The sense of LnLight was backwards. "Closed" should generate the
same Loconet message as "ON".
- The LightMonitor was looking at the old value, not the new.
|
| June 17, 2005 |
0.22 |
0.14 |
- replaced custom XML writer with XMLOutputter so special characters
are handled properly.
- added separate callboards.
- added separate lineups.
- batched up screen updates to fix delayed painting problems.
- implemented fleeting.
- enabled train tracking as a default.
- changing the appearance of something (except tile size) does an
automatic screen refresh.
- CTC signal icons without physical signals are colored "dark" to
distinguish them from those with physical signals.
- default for "dark" is grey, not dark grey.
- accepted APPROACH as an AspectMap attribute.
|
| July 1, 2005 |
0.23 |
0.14 |
- opened a gap on the current route through a turnout while waiting
for the selected report.
- increased the sleep value when refreshing the layout.
- added an error popup in CPEdge when a reservation could not be made.
- added a factory for creating trace flags.
- added a factory for creating numeric variables that can be set from
the menu bar.
- made the delay between sending commands when refreshing the layout
to be variable.
|
| July 29, 2005 |
0.24 |
0.15 |
- added job positions to the XML file.
- checked XML file format version and pop up a warning if CATS cannot
handle the format.
- created a metered interface to the Loconet.
- restored the Loconet message distributor.
- added creation of jobs screens.
|
| September 8, 2005 |
0.25 |
0.16 |
- added turn off for an IOSpec.
- disabled LOCKOFFCMD and UNLOCKOFFCMD because they are handled by the
above fix.
- added PropertyChangeSupport to Adjuster.
- reworked Logger so that it timestamps when it is created; it has
a method for asking if it is enabled; it has some global tags for
identifying what is being saved.
- hid the LogQue, so all queuing goes through timestamp, which
timestamps the message.
- added support for job assignments.
- made the metered devices defaults when no JMRI prefix is seen.
- refresh screen also restores the default cursor.
- made the file menus start in the directory the command is invoked
in.
- added XML file name filter for those file choosers requiring an
XML file.
- added DTC.
- added a fast clock selection option in appearances for logging using
the fast clock timestamp.
- fixed a bug in receiving Loconet messages where CATS was looking at
the old value in a property change event.
- Rocky Ops 2005.
|
| November 11, 2005 |
0.26 |
0.17 |
- removed the artificial LL prefix and replaced it with LH.
- added an indeterminate state for turnouts.
- reworked JTable menus so that headings could be changed, fields could
be reordered, fields could be hidden, and fields could be added.
- changed default value on Loconet governor from 0 to 10.
- made all visible signals a control point under DTC.
- removed track reservations on a block when the layout reported that a
turnout in the block moved.
- beefed up train tracking by looking at the reservation state of the block
edge, as well as the reservation state of the adjoining block edge.
|
| November 20, 2005 |
0.27 |
0.18 |
- CrewStore was not being written in saving file.
- added a time on duty field to the Crew record.
- added routines for computing minutes after midnight.
- added Crew Hours support.
- saved under CVS and distributed
|
| February 5, 2006 |
0.28 |
0.19 |
- scrubbed through Eclipse
- fixed bug where crew cannot be deleted through crew screen
- fixed null pointer bug in designer when an existing table is loaded,
a field is added, and the table is saved
|
| April 6, 2006 |
0.29 |
0.19 |
- fixed a minor bug where the Block a train enters is not recorded (though
the section coordinates are)
- rewrote train tracking
- added manual tests to throw and close the decoders for each turnout and
restore them in "refresh layout"
- put a GridLayout on the edit menus so now they can be resized
|
| April 26, 2006 |
0.30 |
0.20 |
- fixed a minor bug in CATS where crew was not removed from a terminated
train.
- fixed a class exception bug in designer involving adding new records with
boolean or integer fields.
- added station to Block, in preparation for Train Status.
|
| July 1, 2006 |
0.31 |
0.20 |
- added Station attribute to Block, so that CATS can take files created by
the latest (20) designer version.
- N Scale convention version.
|
| August 9, 2006 |
0.32 |
0.21 |
- fixed a bug in color when tying down an unassigned train.
- made engine numbers an alternative to train symbols for train labels.
- added confirmation dialog when exiting or closing the CTC JFrame.
- renamed IOSPecList to IOSpecChain and generalized it so any output
can trigger a chain of decoders firing.
- added a variable delay between firing decoders in a chain.
- added software flashing of lights to supplement hardware flashing
- added a master setting for flash rate.
- added approach lighting.
- added ability to load a JMRI XML file when loading CATS file.
- fixed a bug where a reservation would not propagate down a string
of blocks without signals.
- fixed a bug that permitted conflicting reservations across a crossing.
- reworked how JMRI prefixes are recognized. This should be more user
friendly and make it easier to add or change the prefix. It also makes
CATS less dependent upon a particular version of a JMRI library. In the
process, the AbstractLnLight, LnLight, LnLightManager classes were removed
because they were no longer needed.
- added reading of the layout when an AbstractSensor (e.g. LnSensor) is
defined. This initializes the state of the panel.
- when saving a panel under the designer, if a file with the same name
exists and is non-zero in size and "overwrite" is selected, the existing
file is renamed to the same name with".bak" appended. Thus, the existing
file is backed up. There is only one level of backup and the current file
is backed up on every save.
- added some keystroke shortcuts to designer.
|
| September 25, 2006 |
0.33 |
0.21 |
- fixed a bug introduced in CATS 0.32 when a signal was not on the frog
of an OS section.
- fixed some bugs that have been around for a long time where the protected
speed to not propagate through an OS section.
- added keyboard shortcuts to bring up Crew, Job, and Train windows.
|
| October 16, 2006 |
0.34 |
0.22 |
- completed the code for supporting software flashing. The rate was not being
saved by designer.
- fixed a bug where the metering of Loconet messages when using MeterSensor
of MeterLight was bypassed.
|
| February 9, 2007 |
0.35 |
0.23 |
- fixed a bug in monitoring a JMRI Memory Object - the trigger (new value)
was incorrect.
- fixed a bug in requesting that a turnout be thrown. The Section was not informed
that a new Track was selected.
- added MeterLnReporter for OPC_SW_REP messages.
- fixed up MeterLnLight so that it can listen for OPC_SW_REQ messages.
- fixed a bug where MsgFilter was always created. Now it is created only when needed.
- changed the "adjustments" from 1 millisecond intervals to 5. Most OS timers have
a minimal resolution of 5 mSec.
- fixed bugs in deleting a row from the decoder definition table and the Chain
table.
- added a warning when CATS encounters switch points for which no normal route is
defined.
- fixed a bug in the designer Crew and Job tables causing a Class Cast Exception
when adding a new crew (job) to a blank table.
- fixed a bug in designer when changing the type of a field would cause a class
cast exception.
- fixed a bug in designer where a change to a font would be saved the first time
the layout was saved, but the change would be lost after subsequent saves.
- fixed a bug in designer when editing a new file, opening another, and not saving,
which appeared as "HOURSLIMIT" not known and an NPE.
- adjustments (e.g. debounce) can be set in designer and stored in the XML
configuration file.
- the size and location of the dispatcher panel can be specified in designer and
honored in CATS.
|
| March 30, 2007 |
0.36 |
0.24 |
- changed the structure for holding layout items from a Vector to an ArrayList.
- added layout items at the front of the ArrayList to give train labels first
shot at being selected by the mouse.
- added setting and clearing OOS to the session log.
- added granting and releasing track authority to the session log.
- added replay for playing back session recordings.
- fixed a bug where a 0 length file could overwrite the backup file.
- fixed a bug where "LT" decoders were misnamed "LN" decoders in both designer
and CATS.
- enhanced APB so that when a block is unoccupied, it checks the connecting
block where the train entered from for another route. This permits a dispatcher
to run one train behind another without panel signals.
|
| April 20, 2007 |
0.37 |
0.25 |
- added an option to paint the base of light signal icons as an inverted tee.
- added an option to turn off train direction arrows.
- added an option to turn off horizontal shrinking.
- conditioned the generation of a route with APB to control points.
- added an option to turn off automatic determination of where to break
a row of tracks in CATS. The row goes to the edge of the window.
- added decoder locking in CATS, so that if two turnouts drive the same
decoder address and one is locked (route, occupied, OOS, track authority),
the other cannot be selected either.
- fixed a bug when listening to a JMRI Turnout where the previous value
was read, rather that the latest.
- fixed a bug for sensors where throw and closed were reversed between
adapters and monitors.
- changed the order in throwing points where the decoder command was sent
before the screen was updated. If a selected report listened for the decoder
message, it would be executed immediately after the command was sent, which
would update the screen.
- fixed a bug in reading the layout files (both CATS and designer). A space
in the middle of a text block would sometimes be removed. Also, objects
would sometimes recive only the first segment of a text block.
- fixed a bug in replay causing a null pointer exception when a crew
member was reassigned.
- fixed a bug in replay so that a train would be marked as tied down
when the crew was assigned to no train.
- doubled the delay range for refreshing the screen and on the Loconet
metering.
- added updateAll() to MeterLnSensorManager so that the update request
is put in the queue, behind outstanding commands. This could help spread
out the Loconet traffic when loading CATS and refreshing the layout.
|
| July 13, 2007 |
0.38 |
0.26 |
- reworked how a layout is loaded. There was a race condition when
a screen size was included in a layout description. The Swing tried
to resize the window before the internal data structures were initialized
and a Null Pointer Exception resulted.
- corrected how signals work. Intermediates are on the layout, but not the
panel. Control Points are on the panel and do not have to protect interlocking
plant. Route reservations flow between control points, not interlocking plants.
- added a "traffic stick" to virtual signals and intermediates, so that
trains can follow each other.
- JMRI user names are added to NamedBeans (sensors, lights, etc.), but
CATS still needs JMRI system names for defining beans.
- fixed a bug seen by Mac users that prohibited the session log from being saved
because the "showOpenDialog" was called, rather than the "showSaveDialog".
- fixed a bug where an error would be thrown if a file with a panel signal with
0 heads was saved. This resulted in a 0 length file.
- fixed a bug when loading an XML file from the command file. The load routine
was not running in the Swing Event Dispatch Thread, but was altering Swing objects.
The bug manifested itself as "out of memory".
- reset the default refresh delay in CATS back to 0 msec. Setting it higher did not
resolve any flow control problems and only made the panel load more slowly.
- fixed a bug in the format of how sessions are logged. If a train symbol or crew had
a space in the name, the replay code would get confused. Conseqently, spaces are no longer
accepted as field separators in recordings. Only tabs are accepted as field separators.
This means that old recordings can not be loaded into this version of CATS.
- fixed a bug in initialization. All metered lights were set to the default (thrown) when
the light was created. This caused turnouts to be "thrown" when the panel loaded.
- fixed a bug when a turnout was thrown locally, the "selected" track in CATS was not
updated. Consequently, the dispatcher might have to throw the turnout twice.
- added a menu item to CATS under Appearance->Test Layout to set all computer controlled
turnouts ("automatic switches") to the straight route.
|
| July 31, 2007 |
0.39 |
0.26 |
- fixed a bug where if the first block in a route is occupied, then
unoccupied, clicking on the signal yields a "reservation conflict".
|
| October 7, 2007 |
0.40 |
0.27 |
- added "Stop and Proceed" indication. It will be used in the future
to protect leaving signaled territory to unsignaled (including end of
layout).
- reworked the aspect definition table layout in designer so that it would
fit better on a small screen.
- added "Advance Approach", "Advance Limited Approach", "Advance Medium Approach",
and "Advance Slow Approach". These are optional, enabled by checking a checkbox
in the Advance column in the aspect definition table. If there is no closer indication,
they tell an engineer that he will see a Stop two signals after the one showing Advance.
- added a trace flag on decoder locks to CATS.
- fixed a bug in fleeting where each occupy/unoccupy would add a lock to a decoder
when the reservation was renewed, but only one lock would be cleared when the
reservation was removed.
|
| January 13, 2008 |
2.0 |
2.0 |
- modified both programs to use jdom.jar instead of jdk-jdom11.jar. The latter was
really old and created for Java 1.1. JMRI moved to the former with JMRI 2.
|
| February 2, 2008 |
2.1 |
2.01 |
- fixed a bug in advance indications where they were not clearing properly.
- reworked crossings so the crossing tracks are not in the same block. This affects
crossings. If you have crossings (diamonds) defined,
you will need to load your panel into designer and be sure the tracks in the crossing
are included in different detection blocks. Double and single slips should not be
affected because the switch points ensure that the crossing tracks are included in
blocks.
- added filled circles in designer to mark block boundaries with intermediate signals.
- whenever a section repaints, the sections on either side also repaint because some
of the section contents hang out into adjacent sections.
- use JMRI SignalHeads.
- added a Format when writing XML files so that they contain indentation and line feeds.
- fixed a bug when an intermediate protects an OS section, advance did not propagate
through the OS.
- fixed a bug when an intermediate protects an OS section, the intermediate would attempt
to set a reservation, even if the intermediate was red. If the reservation was through the
diverging route, the green and arrow would appear on the normal route.
- added control-T short cut to CATS to pull up trains table. Bug 27.
- added control-J short cut to CATS to pull up jobs table.
- added control-C short cut to CATS to pull up crew table. Bug 28.
|
| April 4, 2008 |
2.11 |
2.02 |
- corrected a bug with decoder locking. I could not determine the exact cause,
so I reduced the possibility of it happening by keeping a list of only shared
decoders. Bug 119.
- added a minimum field width to all text entry areas in designer so that the areas
would show more than a few characters.
- reworked the pop-up window for the right mouse button when positioned over a train
to create a Train Table. The old window was moved to the middle mouse button because
the table did not always propagate changes to the crew (see next item).
- I reworked the status bits in Trains which fixed some bugs when tying down trains
(colors and releasing crew). Bug 71.
- Used the BooleanGui class for selecting between engine numbers and train symbols
for marking trains on the panel.
- added action to the Accept button on a table so that it completes any cell editing.
This should take care of problems where the mouse focus must be moved before pushing
Accept. Bug 126.
- Added some code to automatically change the cursor back to the default every time
a pop-up is closed. Appearance->Refresh Layout also restores it to the system
default.
- added some additional tests in APB when looking to create a reservation. If there
are two possible entrances into the block and one is fouling, the fouling one is placed
at a lower priority.
- added an enhancement so that when a blocking condition is cleared, the detection
block looks to see if there is a single reservation to enter the block. If so and if
it is not through a control point, a reservation is created. This is useful with trains
that have only the engine and caboose detected. The scheme could use a little more work
because the reservation is based on local conditions and an adjacent block could be
preventing the reservation from being seen. Bug 120.
- fixed a bug in designer where a Block definition was jumping a Block boundary when
the boundary was not on an adjacent edge.
|
| July 15, 2008 |
2.12 |
2.03 |
- fixed a bug introduced in 2.1 CATS on crossings. If both tracks on a crossing have
the same detector address, the full block may not show as occupied. Bug 130.
- fixed a bug when identifying when a train label has been selected. Bug 131.
- added a keyboad accelerator for flipping between labeling trains by their symbol and
by the engine number. Use control+e. Bug 132.
- protected against a Null Pointer Exception when moving a train label.
- arrow keys move the cursor in designer and may scroll the screen if it would move
the cursor off the screen.
- enhanced designer so that the screen does not move when inserting or deleting
a column or row.
- fixed some JDOM problems with classpaths under Windows. Bug 133.
|
| December 28, 2008 |
2.13 |
2.04 |
- added some preventative code for bug 134.
- fixed a bug where trains that had completed their work could be assigned
to a crew from the crew menu.
- added the signals from OS points to spur points so that the dispatcher could
be prevented from moving turnouts in places like yard entrances.
- reworked how signals pass information between each other for bug 56.
- fixed title on crew edit window in CATS for bug 139.
- changed the menu title in CATS to record actions from "Save" to
"Start Recording" for bug 142.
- "Start Recording" saves train, job, and crew state, so recording does not
have to be started at the beginning of the session, bug 141.
- fixed changing an extra to a non-extra for bug 143.
- added Train Status client.
|
| February 2, 2009 |
2.14 |
2.05 |
- fixed a bug when a report of a turnout moving is received while a reservation
goes through the block. The report kills the reservation, moves the points, then
resumes the reservation. Bug 147.
- When moving the OS point code to spurs, a bug was introduced that made APB and
ABS OS sections always appear red. Fixed bug 148.
- Reworked how CATS decides to instantiate a device handler so that duplicates
are not created. Bug 149.
- Applied Track Authority to spurs so that fascia lights (or other listeners)
would be notified when a spur is unlocked.
- Fixed a bug when specifying the TrainStat configuration file in the execution
script.
- Changed the TrainStat "NETWORK_ADDRSSS" XML tag to "NETWORK_ADDRESS"
- Added a test into TrainStat to ensure the configuration file was created by
TrainStat.
- Fixed a bug in TrainStat where bindings editing did not work.
- Fixed a bug in TrainStat where loading a configuration file did not change
the save conditions (DefaultItem) in a sequence, so a save was requested.
- Fixed a bug in TrainStat that prevented setting the background color and font
of any row, including the heading.
- Fixed a bug in designer when trying to create a chain - invalid address 0 error.
Bug 152.
- picked up JMRI names, current as of Jan. 29, 2009, for both designer and CATS.
- designer no longer enforces numeric addresses - needed for CBUS support - bug 151.
|
| July 4, 2009 |
2.15 |
2.06 |
- Fixed a bug in CATS where the lock would not clear on a shared, locked decoder after the
turnout moved - bug 155.
- In TrainStat, added a listener to the band fonts so that they immediately update when changed
- bug 156.
- Added "pretty formatting" to saved train, jobs, and crew files.
- changed layout manager in designer when editing tables so that only the tables resize, the
button spacing remains fixed.
- added an alignment attribute for text in cells - bug 150.
- implemented override of local turnout commands, when CTC and locked - item 140.
- added "WIDTH=" and "HEIGHT=" to TrainStat to set Window geometry on launch.
- fixed some problems with hidden track - item 161.
- added a trace capability to designer for determining where a problem exists in an
XML file - turn on DEBUG in default.lcf.
- Trapped any invalid SHARED attributes in designer. These may be created when grid tiles
are deleted - bug 117.
- Added option for edges with mutiple tracks to be points or a crossing - item 84.
- Fixed object synchronization error in TrainStat by moving IP address information
to the end of the XML file - bug 160.
|
| July 21, 2009 |
2.16 |
2.06 |
- Updated to work with JMRI 2.5.4 and later.
|
| September 20, 2009 |
2.17 |
2.07 |
- Added some protection in designer for reading an XML file and encountering an unknown tag.
- Fixed a bug in editing Chains in designer introduced in 2.06 - bug 165.
- Created a simplified Swing table model.
- Added user definable colors and fonts.
- Removed some Java 1.5 errors from CATS.
- Fixed a bug in designer when editing a table column width would cause a cast error - bug 166.
- Fixed a bug in designer where a trains file (or crew or job) would have to be loaded twice - bug 167.
- Fixed a bug in designer where a crossing would lose its preference after saving - bug 168.
- Fixed a bug in software control of flashing signals, where the signal would remain solid if the off state was not defined - bug 169.
|