Project CATS V3 Notes

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

Last changed: October 26, 2022

Revision History

Date JMRI Release CATS Designer TrainStat Comments
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 od 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.