Release Notes for JMRI 2.11.3 release
Date: March 1, 2011
From: Bob Jacobsen
Subject: Test version 2.11.3 of JMRI/DecoderPro is available for download.
This is a test release. Please post a note if you encounter any new or old bugs!
And please back up your JMRI files before installing this, in case you want to go
back to an earlier version.
This is the third in a series of test versions. We expect this series
to end in a JMRI 2.12 or 3.0 production release in early 2011.
many new features, including:
- Many operations improvements
- support for the new Digitrax DCS51 Super Chief Xtra and the SPROG 3
- Major additions to Logix and Editors
- Improvements to throttles, including web and smartphone throttles.
along with other changes. See the complete list below.
Some of the changes involved are quite extensive.
They may require a certain amount of experience before they are working well.
Therefore, this test version should be considered experimental.
JMRI is now only available under the
GNU General Public License. For more information, please
copyright and licensing page.
New warnings for this version:
There have been extensive changes to the throttle code.
If you have written scripts that use throttles, particularly
multiple throttles, please check to make sure they still work.
Due to now working checking of panel files during the load,
many users may see a popup about missing icon files.
All past versions were silent if an icon file was not found.
If the panel loaded 'clean' under the prior version, this is
due to 'dirt' in the panel files of old icon file references that
may be ignored. But save a copy of the panel file before updating.
The numerical values of "ON" and "OFF" for Lights changed in JMRI 2.11.2,
along with some of the other constants in the class.
This will have no impact on people just using the program.
If you're using scripts with numerical values
in them, please recode them to use the symbolic values.
Known problems with this release
Powerline interfaces for CP290 and Insteon broken. Thanks to
Jim LaFevre for spotting this.
People have reported spurious warnings when setting up multiple
connections. If you get one, and you're sure that you have not
configured two connections to use the same serial port, just
click the button to continue.
Please use these links for downloading:
Mac OS X:
Changes since production version 2.11.2
Paul Bender provided a new ThrottleBridge.py script.
It is a proof of concept script showing how to bridge a throttle
from one system to another.
Paul Bender fixed a bug in Lenz XPressNet throttle implementation.
New operations features and bug fixes:
- Users can now modify the train timetable.
- Change switch list valid date to 24 hour clock
- Code now checks the train's direction when determining a track for engines and cabooses.
- Added "Modify Location by Car Type" tool to the location window.
- Fixed operations bug introduced in 2.11.2. When parsing a location or track name, if a name ends with "-x" the -x should be dropped if x is a number.
- Use the route departure time if set.
- Allow user to select default printer for switch lists.
- Add to train tool menu print and preview build report.
- Rolling stock move count improved.
- Allow user to change departure comment to loads and empties.
- Users can now control which loads a track can service.
- New tabbed manifest and switch lists.
- Minor enhancement to check the car's load when placing car at a location.
- Improve how operations moves cars when a route services a location more than once.
- Improved car routing when car has a custom load.
- All car loads in a kernel are now updated by siding's schedule.
- User can now change all of the loads in a kernel when editing a car's load.
- Add GUI for selecting tabbed manifests
- Update "Show Car Types Serviced" Tool for train, now shows load status for train and track.
- Fix bug when car has destination and train terminates into staging.
- Fixed operations problem when two or more consecutive schedules were used to route cars.
- Minor improvement to manifests when using colors.
- Fix minor bug when restarting program: A track with a schedule would move to the next items during load when cars had that destination track.
- Operations enhancement, in the Trains window, user can select "Show All" or "Show only build trains".
- Operations enhancement, now the user can sort trains by status.
- The program modifies all cars in kernel when using custom loads from staging.
- Users can now preview or print out the car loads for the various car types. This feature can be found in the Edit Car Loads->>Tools
- Users can now control which staging track a train will use.
- Provided a new operations sample script to deselect the train build button when a train terminates: OperationsDeselectBuild.py
- Users can now run scripts after operation files have been loaded, and users can run scripts when the Trains window is closed.
- The program now checks car and engine length field during file imports.
- Users can now select where to place the backup operations files. See Settings / Tools / Backups.
- The program now routes cars from staging with a custom load to a siding with a schedule demanding that car type and load.
- Fixed trains terminate button, it should have terminated all trains that have been printed.
- When printing car locations you can now optionally have a space or page break after each set of locations.
- New manifest print option, you can now show destination and track when picking up a car.
- Schedules can now operate in two modes, sequential or match. Use match mode when you don't care about car order.
- New optional train requirements, you can now have two locomotive changes in the train's route, or request helper service.
Pete Cressman added support for invisible icons on panels. The file "Invisible.gif" in the program icon directory can be selected
as a dimensionless icon. This can be used when sensors are stacked and allows "peeking through" a state of the top sensor
to view the state of the sensor underneath. For example. combining two sensors to depict a 3 state panel jewel.
Lionel Jeanson updated the JMRI mini web server
index.html with entries to prefs/roster.xml and web/roster.html
Also, added automatic creation of function buttons from the JMRI roster
to the web throttles application, including lockable buttons.
Dan Boudreau and Ken Cameron updated the NCE support to
allow more than one NCE connection.
Dan Boudreau fixed a bug with configuring multiple port options.
Paul Bender updated how the throttles handle notifications internally.
Ken Cameron updated the main window to
show connection name for each line.
Nice confirmation for multiple connections.
Dan Boudreau added a warning when trying to load an icon with a bad url
Kevin Dickerson improved the script input window.
Kevin Dickerson improved how Blocks are saved and loaded
Matt Harris fixed a problem with the System Console configuration
Kevin Dickerson added a "New Throttle Window" to the File menu
Pete Cressman added a dialog to correct or delete broken icon paths (bad url) when loading a panel.
Dennis Miller fixed some help page links
Giorgio Terdina updated AutoDispatcher2 to version 2.3.4,
which copes with some changes in SignalHeadicon and is backwards compatible.
James LeFevre added more functions to the TMCC throttle.
Lionel Jeanson improved the ZeroConf handling.
Pete Cressman added new Logix features
- A dialog will display Logix errors if any occur during runtime
- Conditionals can be set to calculate the triggering of their actions whenever one of the state
variable changes state. Until now Conditionals have only calculated the triggering of their actions
when the antecedent expression itself changed truth value. In both cases,
actions are still triggered according to the truth value of the antecedent expression.
- State variables to test the status of Occupancy Blocks have been added.
- Actions for setting Occupancy Block conditions have been added.
Pete Cressman added new ControlPanelEditor features
- Clipboard Copy & Paste can be done between two control panels.
- The Item Palette can hold multiple sets of icons for each item type.
- The Item Palette has "Indicator Track" and "Indicator Turnouts" that change color when their block sensor
shows occupacy. When used with Occupancy Blocks and Warrants, indicator icons will show allocation,
path route, occupancy or error condition by color.
- Accelerator keys added for Item Palette and Table List.
- The Item Palette user interface has all tab items drag from a "Drag Panel" icon. Dragging from a table
row places a text label in the panel.
Andrew Crosland added support for SPROG 3.
Andrew Crosland changed the defaults for the CBUS console to decimal, show events.
Kevin Dickerson added an option in the Ecos preferences to select if we always force control of the loco when trying to open a throttle or not.
Kevin Dickerson greatly improved the internals for throttle handling
Paul Bender made changes to the XPressNet code toward multiple connection support
Ken Cameron made it possible to select a default power manager when using multiple connections.
Pete Cressman changes:
- edited tooltip-text is saved and default tooltip is its device display name
- improved path detection and display for simultaneous manual and auto train running under warrants.
- fixed duplication and copy of rotated Signal Masts bug.
- improved path detection and display for simultaneous manual and auto train running under warrants.
- added a loco icon to follow auto trains running under warrants
- fixed bug where orthogonal rotations overrode degree rotations when loading a panel.
Kevin Dickerson improved handling of errors when opening LocoNetOverTCP connections.
Ken Cameron improved handling of the Digitrax DCS51 Super Zephyr.
Thanks go to Ed Sisk for the loan of a DCS51 to perform the development and testing.
Kevin Dickerson fixed NPE that can occur with some versions of unix and MAC OS X with getting the multiclick interval time that may not be supported
Matthew Harris added an example script to enable persistence of turnout states between sessions
Matthew Harris updated SerialPortRFID script - as per patch #3152534 from Nigel Cliffe and MERG member Ian King
Kevin Dickerson updated the user preference manager so that items and descriptions
are now dynamically added via the using code. The message preferences pane is
now dynamically created bases upon this information.
See AbstractTableAction and LogixTableAction for examples of its use.
The old items stored in the xml files is no longer valid, but shouldn't
be a major issue as all these dealt with was the supression of message boxes.
Matthew Harris fixed a GUI anomaly on Tabbed Preferences window
Kevin Dickerson added the ability for the user to add icons to the panel editor via the mouse popup menu while in edit mode. The icon will be placed at the co-ordinates of the mouse.
Also Signal Masts and sensors can be added to boundary points on the layout editor
Kevin Dickerson added the ability to find an east or west bound positionable point by either a signal head, signal mast or sensor.
Also added tools to return either a facing or protected blocks by signal heads, masts or sensors.
Kevin Dickerson has done some work on storing frame positions and sizes
via the user preference manager.
Lionel Jeanson improved the Jynstrument throttle support:
- Added function control up to 28.
- Removed filter on kind of acceptable devices so that any Jinput device
can be used for throttle control (Keyboard, mouse...).
- Added a sample driver for keyboards.
Note: once the keyboard driver is running, all keyboard inputs will be considered even if the JMRI window is not on the front
- A "None" device was introduced in the device list accessible on right click,
avoids to have all key inputs redirected to the Throttle.
James LeFevre improved TMCC throttle support.
Matthew Harris corrected a bug where Layout Editor and Control Panel Editor Panels were not being deleted when 'Delete' was picked from the 'File' menu.
Matthew Harris changed the BeanTableDataModel to use internationalized strings for column names rather than hard-coded strings.
Paul Bender added a script showing how to add and remove a consist.
Fixed a problem with OpenLCB turnout and sensor device addresses in "dot" form: 22.214.171.124.8.AB.C.DE
Leo Bicknell improved the LocoNet monitor:
- Adds symbolic names for the 0xD7 and 0xDF opcodes.
- Tweaks a number of messages so they are easier to read, provide more useful information.
- Reformats the fast clock query and response commands to make them clearer and take up less space.
- Reworked the sensor reporting code to allow it to properly convert sensor numbers to DS-64 inputs and be much easier to understand.
- Reworked the sensor probe decode to report which sensors are being probed, rather than the esoteric "bits a/c/b" information.
- Added in a decode for what I call the PANEL QUERY (0xDF opcode).
- Added in a decode for what I call the PANEL RESPONSE (0xD7 opcode). [Tested against UR-91 and UR-92, but not UR-90.]
- I found the slot read/write stuff totally unclear, so I modified some of the terms and how it prints out and got what I think is a much clearer output.
- Added decodes for the Duplex Group Name query and response.
- Added decodes for the Duplex Group Channel query and response.
- Added decodes for the Duplex Group Password query and response.
- Added logic in the SEND IMMEDIATE decode to decode F-keys F13..F28 and print something nice.
- Made numerous improvements in internal structure and documentation
- Corrected the inconsistency of "." or no "." on messages to always have a ".".
- Better report a request for Command Station OpSw values (slot=127).
- Annotated things that were reverse engineered.
- Removed unnecessary dest address from DISPATCH PUT display.
- Prefixed LONG_ACK a few places it was missing.
- Fixed sensor reporting logic to properly display SE8c information. Thanks to Bob Milhaupt.
- Improved decode of switch status broadcast, even though I've never seen anything send one.
- Changed OPC_PANEL_RESPONSE to indicate if it was duplex capable, if we're interpreting that bit correctly.
- Included a long form decode of Command Station OpSw responses.
Leo Bicknell fixed a presentation problem in the LocoNet ID tool
Ken Cameron converted Powerline to support:
- Multiple Connections.
- Added a simulator connection.
Ken Cameron added a script, BlockLister.py, to investigate what is connected to a block.
It displays which block connections, signals, signal masts, etc...
Ken Cameron updated RobotThrottle3.py to look past a block boundary without a signal.
Added buttons to manually move a train at the red, yellow or green speed to add manual
Mike Mosher fixed a minor bug in certain ESU decoder definitions.
Mike Mosher did a major update to the QSI V7 definitions.
Mike Mosher updated the BLI P2 steam decoder definition to
fix smoke control bug, CV116-117 bug, some pane tweeks, some default value changes,
add CV 121,122,203,204,205,206,207,211,234,235,236,237.
Mike Mosher added a decoder definition for the MRC 1906 genset.
Mike Mosher updated the DecoderPro consist pane to add F13-F28
needed for BLI P2 steam.
Mike Mosher updated the Tsunami Diesel Genesis OEM decoder definition
version 3 to change SD70ACe model and add SD70M-2 model
Walt Thompson added reset definitions to the TCS definitions.
Mike Mosher added new SoundTraxx MC and MC IMRC OEM decoder definitions
Steve Todd made multiple updates to the JMRI mini webserver:
- greatly improved the speed
- provided a favorite icon for the server
- modified the miniserver fileservlet to return the appropriate status
(i.e. 404, 403) instead of unhandled exception or blank 200 responses.
- removed GetHost() which was causing timeouts on every access on some networks
- set a 5-minute expiration on static files to avoid unneeded retrievals.
- turned off caching on jframe images
- added css folder so existing help files find default.css
- improved index.html and dir listings to match jmri.org
- changed headers from HTTP 1.0 to HTTP 1.1
- added jmri icon for miniweb panel
- added MiniServer preferences panel (port, rebuild, refreshes)
- updated various help files related to miniserver