Project CATS V3 Notes


Title: CATS - Computer Automated Traffic System
Author: Rodney Black
Company:
Description: A CTC panel for Pat Lana's Crandic Ry

Last changed: January 18, 2025

Revision History

Date JMRI Release CATS Designer TrainStat Comments
September 24, 2023 4.24-4.26, 5.0-5.4 3.0 3.0 3.0 1.08
  • Issue 110: Wrong designer .jar file
September 20, 2023 4.24-4.26, 5.0-5.4 3.0 3.0 3.0 1.08
  • Issue 108: Deleting a stacked route would attempt to delete the route twice, often hanging CATS on the second.
  • Issue 109: Fixed route creation so that it would always fail if the first block is occupied.
May 18, 2023 4.24-4.26, 5.0-5.2 2.99.4 2.99.9 2.994 1.08
  • CATS: Added tag constants to some log messages to aid in tracing.
  • Issue 104: Reworked transponding against a real trace.
  • CATS: Updated designer version recognized by CATS.
  • Issue 105: Created GUI component based on Swing OptionPane to position pane close to cursor.
  • Issue 101: forced "Refresh Layout" and "Set Turnouts to Normal" to run on Swing worker thread.
  • CATS: Fixed loggng so all log entries have timestamp, thread name, and go to disk.
  • Issue 96: Expanded "Reset Route" to go to next signal through all turnouts.
  • Issue 103: Parallel routes are checked for interference when creating a route through a frog.
  • CATS: Reworked algorithm for moving train labels and added a debug flag to trace the algorithm.
  • CATS: Moved layout event processing to Swing worker thread in an attempt to elminate random lockups.
  • CATS: Made call on symmetrical so can be done on frog, as well as points side of turnout.
  • designer: Issue 97 permits only one occupancy/unoccupancy detector to be defined, so issue 106 should be an AND, rather than an OR
October 26, 2022 4.24-4.26, 5.0 2.99.3 2.99.8 2.992 1.08
  • Issue 84: Train label attempts to stay in leading occupied block.
  • Added tracing for issue 94
  • Issue 97: Permit only one occupancy decoder to be defined and assume in CATS the opposite polarity.
  • Issue 98: Make HWSignalHead like SWSignalHead so a username is printed when an aspect is not found.
  • Issue 99: Signals change aspects several times when fleeting.
  • Issue 100: Cannot set a reverse route through a half pocket.
August 16, 2022 4.24-4.26, 5.0 2.99.2 2.99.7 2.992 1.08
  • Issue 58: inconsistent train label movement with arrow keys
  • Issue 68: reading JMRI device tables at startup
  • Issue 71: complex APB crossings
  • Issue 80: designer forcing a system prefix value on JMRI device definitions
  • Issue 81: setting a following route behind a train with an intermediate signal separation
  • Issue 85, 90: add a debounce on loss of occupancy
  • Issue 88: fleeting not cleaned up when clearing an N/X route
  • Issue 89: N/X route not completely cleaned up when cancelling fleeting
  • Issue 91: prioritize N/X and stacked routes by taking normal path through turnouts
  • Issue 92: signal menu selections changed from "Changed Stacked Routes" to "Change/View Stacked Routes"
  • Issue 93: found correct Java syntax to log, rather than dump to console, short duration occupancy reports
July 31, 2022 4.24-4.26, 5.0 2.99.1 2.99.6 2.991 1.08
  • First test release of 3.0 for general consumption

Things to do...

Items in Italics have been fixed.
  1. CATS: add appearance items for fixed width, best fit on width, and fixed height. Implemented as ScrollPane.
  2. CATS: fix up train labels so that more than one train can be in a block and the block remains occupied until the last one in dark territory exits
  3. CATS: after track and time is supported, add a countdown clock for the time
  4. CATS: distinguish assigned crew somehow in Trains->Change Crew
  5. CATS: the exit end of a CTC route will turn green, then back to red.
  6. CATS: fix up moving train labels - remove recursion, and break dependencies between Trains, Sections, and Blocks.
  7. CATS: add sound when train enters OS section.
  8. CATS: handle dead on hours time. Show time remaining and pop up out of time.
  9. CATS: clear routes should clear all reservations in a turnout - even if turned the wrong way.
  10. CATS: allow another CATS panel to be loaded without restarting
  11. designer: bug in editing JMRI devices when editing a layout that already has them. Old devices are defined which results in duplicates.
  12. designer: add default signal templates for major RRs.
  13. CATS: use MouseListeners rather than look for specific keys.
  14. CATS: check what happens when a train label is moved to a block with a train label.
  15. add ability to indicate where row break should be.
  16. use canned icons from files, rather than draw the signals.
  17. add an option for more prototypical signal icons - shapes and colors.
  18. add "occupancy valid" decoder address for each block.
  19. CATS: add option to record train movements to a JMRI recorder.
  20. CATS: add the identity of the train holding track authority to the screen.
  21. assist in generating track authorizations (train identity, limits, time, authority number).
  22. resizing grid squares does not work. The size is not saved from designer. The horizontal width is not adjusted.
  23. CATS: sort columns in tables by clicking on title.
  24. CATS: click on a label to bring up an image.
  25. add Swing components to the panel, such as a text field, for additional comments.
  26. CATS: remove white space around the buttons on CATS edit pop-ups (crew, jobs, trains).
  27. CATS: it is hard to select some signals because they overhang into adjacent tiles. The mousePressedAction method tries to isolate the tile and checks its contents only.
  28. CATS: figure out way to move train information from one train record to another (e.g. a train turns).
  29. CATS: somehow, by using the train pop-up in CATS, I was able to assign a crew to two trains.
  30. TrainStat: provide filter: all trains, current trains, trains with crew.
  31. Trainstat: provide coloring in TrainStat in response to events.
  32. Create a "Version numbers" file that all applications reference, to keep them consistent.
  33. CATS: restore spurs to their normal position when track authority is released.
  34. Implement spring switches.
  35. TrainStat: add a clock to TrainStat synchronized from CATS.
  36. CATS: highlight points in motion better, for example, enclose them in a box.
  37. CATS: prevent double clicking on switch points - give the first click time to do something.
  38. MacOS launcher does not work under Snow Leopard
  39. Refreshing CATS duplicates trains in TrainStat.
  40. CATS: Sign in on CATS for the dispatcher.
  41. Did a replay in CATS, then loaded a lineup. TrainStat caught some cast errors.
  42. Add margins to CTC panel.
  43. designer: Add protection to stations and labels against missing location specifications.
  44. CATS - gaps are not removed on one end of a single track with points at both ends.
  45. All 3: add formula type for real time calculations in tables
  46. All 3: add table type
  47. All 3: add clock type that updates once per minute
  48. designer: copied and pasted track with intermediate signal icon. Icon position changed.
  49. designer: pasting a track with an intermediate adds a signal base
  50. designer: Save the size of the designer pane so it can be restored when designer is next run.
  51. CATS: Rework CATS screen painting - images should be at a higher frame level so they are not overwritten.
  52. TrainStat: Checkboxes on TrainStat are not colored correctly.
  53. CATS: righthand arrows on one section Blocks do not work right.
  54. Create a Schema to verify a layout description and provide a way to use XSLT to transform elements.
  55. Provide a way to import accessory decoder information.
  56. CATS: pick up font settings from JMRI
  57. CATS: Sometime after JMRI 4.6, JMRI changed something so the CATS close box doesn't work. This cannot be fixed without using a different Java Swing component.
  58. The arrow keys do not move train labels across crossings consistently.
  59. CATS: Add an option to change track color for slow orders.
  60. CATS: Add an option to CATS to record and playback all external events without operator interaction for automated testing.
  61. Add an option to import Operations train data into designer/CATS
  62. designer: sometimes drops the user name on a SignalHead.
  63. designer: Make "current file name" visible.
  64. Add ability to customize strings in things like menus in designer and carry over into CATS.
  65. CATS: network pull-down, the CATS computer IP address isn't always right. It seems to be something with the Java method. I have not found an alternative.
  66. CATS: 2.41 broke the turnout tests. They used to be Thrown/Closed, now they are Normal/not Normal.
  67. CATS: Add a minmum width to train labels with backround colors.
  68. CATS: initial reading of JMRI devices sometmes locks up.
  69. Designer: device tables sometimes don't update on the screen.
  70. CATS: fix up route stacking algorithm so top element does not block others that might run
  71. CATS: Test case APB\ComplexXingUnshared. Some vertical tracks do not clear after horizontal unoccupied.
  72. CATS: complete the implementaion of coloring signal icons.
  73. CATS: Forcing occupancy of KCY (ABS, undetected track) does not color track
  74. CATS: When constructing DAG, perform facing Points safety check only on points, since they can be moved.
  75. designer: add Device column in Routes table.
  76. designer: add train reporter devices in All Devices table.
  77. designer: add Buttons to All Devices table.
  78. CATS: initial occupancy over a control point resulted unconnected tracks colored red.
  79. TrainStat: input gets stuck with Approve and Cancel, but no changes on screen
  80. designer: tries to populate a blank system prefix field in an IOSpec when reading it from a file
  81. CATS: refused to set a route behind a train, one intermediate block ahead
  82. CATS: call-on blocked unless around a simple control point
  83. CATS: rework codeline delay. Way too slow. Delay, but don't queue messages.
  84. CATS rework train labels. Track lead occupancy, not vacancy.
  85. CATS: add a hold delay on occupancy to vacant to debounce loss of detection or delay decision on last vacancy report endng route.
  86. CATS: on Digicon, icon clears when the immediately protected track vacates, even though detection exists to the next signal.
  87. CATS: on Chatfield screens, train label changes color when its block becomes vacant.
  88. CATS: Fleet on N/X route does not completely clean up on ending N/X route.
  89. CATS: Clearing Fleet on an N/X route does not completely clean up the N/X route.
  90. Add Appearance->Adjustments->Unoocupy Debounce.
  91. CATS: On N/X route search, give higher priority to taking Normal routes because they will bias towards main track through passing sidings.
  92. CATS: Change label on menu item "Change Stacked Routes" to indicate view as well.
  93. CATS: log, rather than dump to console, short duration occupancy pulses.
  94. CATS: Serious bug - Right click on signal icon; selected Stack Route; Accept; icon flashed; selected second icon; first icon stopped flashing; lost mouse focus in canvas - menu bar was fine. If seen again, turn on Appearance-> Trace Items->Mouse Selection
  95. CATS: Call-on hung. Set up call-on; right click on icon; Reset Route.
  96. CATS: it is tempting to use Reset Route as alternative to Clear. Make it state sensitive to become alternative.
  97. CATS: Accept only an occupancy decoder definition and infer unoccupy is the opposite.
  98. CATS: in make HWSignalHead like SWSignalHead so a username is printed when an aspect is not found.
  99. CATS: Signals change aspects several times when fleeting.
  100. CATS: Cannot set a reverse route through a half pocket (unbalanced signals) until first route is complete.
  101. CATS: A report from the field is that "Refresh Layout" and "Set Turnouts to Normal" lock up CATS. Seems to be something in the layout.
  102. CATS: request to flash green track when setting a route (like AMTEC)
  103. CATS: When setting an N/X or stack route from frog end of points, need to check parallel routes (through other frogs).
  104. CATS: Transponding processing looked only for string naming transponder. Causes a cast error with Loconet.
  105. CATS: Position pop-up messages closer to cursor.
  106. designer: A block is colored dark if either occupancy detector is nor defined.
  107. CATS: Null pointer exception when positioning a train label in a block with a Reporter.
  108. CATS: Deleting a stacked route sometimes crashes, paricularly when deleting more than one stacked route.
  109. CATS: Can create a route into a block following a train with a route.
  110. Designer: wrong jar file
  111. CATS: JMRI 5.4 upgraded to newer logging. Can take a log jar file from JMRI 5.3 to compensate.
  112. CATS: Exact turnout feedback is fragile if break and make are close in time.
  113. Designer: clearing a Block Reporter User Name in the Block Table is not saved.
  114. CATS: Reverse local movement does not enforce dispatcher control.
  115. CATS: Add arrow heads to track showing limits of Track Authority
  116. CATS: Advance approach interferes with UP Approach Divrging.
  117. CATS: Stacking a route with no blockage does not default to N/X
  118. CATS: Position pop up from right clicking on a train near the click spot.
  119. CATS: The only way to clear a route containing a CTC intermediate paired with a control point is to knock the route down manually.
  120. CATS: The Comment field in designer JMRI connection table must have something to recognize the connection.
  121. Designer: Add Buttons to All Devices table. Create a Buttons table?
  122. Designer: Add train reporter to All Devices table.
  123. Designer: Add Device in Route table
  124. CATS: Switch fouled lock does not propagate through multiple turnouts in the GUI; thus, incomplete routes can be created, but vital logic is correct./li>