Release Notes for JMRI 4.5.6 release
Date: November 13, 2016
From: Bob Jacobsen
Subject: Test version 4.5.6 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 next in a series of test versions. We expect this series to end in the next JMRI production release around the end of 2016. (See the tentative release schedule)
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.
Known problems with this release
- There may be problems dragging and dropping to and from tables if the table has been sorted or had its columns reordered.
- The Signal Mast table doesn't properly show default (initial) aspects. You have to select the initial aspects by hand.
- When a Digitrax DCS240 is the command station, JMRI throttles may not be able to take control of a locomotive or consist in some cases if the DCS240 "expanded slots" (i.e. 400 slots) feature is in use. Be sure to "dispatch" or "release" locomotives and consists from throttles which use "expanded slots" before attempting to acquire the locomotive or consist via a JMRI throttle, as this may enable JMRI to acquire the locomotive or consist. This problem can affect throttles which use the JMRI WiThrottle interface and throttles controlled via the JMRI Web Server. This issue is thought to be present in all previous versions of JMRI.
New warnings for this version:
- As part of fixing the TMCC throttle issue, the handling of TMCC preferences was changed. If you have a TMCC connection configured, please go to the "Defaults" pane in the Preferences window and make sure that the TMCC connection is selected for the appropriate device types.
Older warningsSee the JMRI 4.4 release note for warnings predating the 4.4 development series. These may be relevant to you if you're updating from an earlier version.
(Since JMRI 4.5.5) Apple has released a new "Sierra" version of macOS (formerly known as OS X) which has enhanced security for downloaded programs. We're providing a new form of signed download to work with this, see below. We'd be interested to hear whether that download works on older OS versions, so that we can just release this new form without having to provide separate downloads.
(Since JMRI 4.5.2)This and future versions of JMRI may not function on OS X if the Java SE 6 provided by Apple is installed. OS X operating system updates routinely remove this version of Java SE 6. Please raise any issues concerning this on the user's group.
To remove Java SE 6 from OS X, follow these steps (these steps assume JMRI is installed in the folder /Applications/JMRI, if not, adjust the following paths as needed):
- Open Terminal.app.
El Capitan only: Reboot into Recovery Mode by restarting your Mac and pressing Cmd-R until the Apple logo appears. Once in Recovery Mode, select Terminal from the Utilities menu.
- Run the command
/Applications/JMRI/PanelPro.app/Contents/Resources/uninstall-java6.shIt can take up to a half hour to complete. Wait for the message Removed Apple Java SE6.
El Capitan only: Run the command
bash /Volumes/Macintosh\ HD/Applications/JMRI/PanelPro.app/Contents/Resources/uninstall-java6.sh /Volumes/Macintosh\ HDIt can take up to a half hour to complete. Wait for the message Removed Apple Java SE6.
- El Capitan only: Restart your Mac.
(Since JMRI 4.5.2)Support for directly executing AppleScript within JMRI has been removed due to changes in macOS and Java outside our control. If you require the ability to use AppleScript, you may be able to add this capability on your own by visiting JMRI AppleScript Support, but please be aware that this may not work on upcoming releases of macOS or Java.
(Since JMRI 4.5.1)LocoTools, no longer supported since JMRI 2.10, has been removed from the Linux and OS X distributions.
(Since JMRI 4.5.1)Internal turnouts and sensors need to have complete, individual system names. The names "IT" and "IS" (without any suffix) are no longer permitted: "IT12" is fine, but just "IT" is not. Most panel files that contain these should automatically migrate them to new names when saved, but in some cases you might need to manually update them.
(Since JMRI 4.3.5) When sharing a configuration between this version and JMRI 4.3.4 or older, the older version of JMRI will not reflect changes in preferences, window position, table sorting, column order, or other user interface state. This is due to changes in how user preferences and interface state are stored.
(Since JMRI 4.3.3) You can now set the order of your startup items: If you're opening panel files, running scripts, etc as the program starts up, there's a preferences pane that lets you easily set the order in which those happen. If you've set the order manually (e.g. by editing configuration files) in the past, please check this preference to make sure it's set the way you want.
(Since JMRI 4.1.2) Jython has been upgraded to version 2.7.0 with the following potentially breaking changes:
- The decodeJmriFilename() function is no longer available by default. Use the FileUtil.getExternalFilename() method instead.
- The simple propertyListener object is no longer available by default. Create your own, following the examples provided in the jython folder in the JMRI distribution.
- jmri_defaults.py included in the JMRI distribution is no longer executed by default, but will be executed before any other Jython scipts if included in your User Files location.
- The default behavior of python.cachedir.skip is now true. If using a custom python.properties file, include "python.cachedir.skip=false" in that file.
- Certain Python scripts are too large to be evaluated in Jython. If a script fails with the
java.io.IOException: Mark invaliderror, set "jython.exec=true" in a custom python.properties file or rewrite the script to be less than 100,000 characters per file. Note that when using "jython.exec=true" it may be desirable to run the included script jmri_bindings.py as a startup action to emulate the evaluation environment used when jython.exec=false.
(Since JMRI 4.1.1) Decoder definitions that use the "ivariable" form are now deprecated. Definitions included with this release have been converted to the new form. If you have decoder definitions with the older "ivariable" form, they will no longer validate, but can still be used for the first couple of test releases in this series. Please ask on the JMRI Users group for help converting them, or just drop them and use the current definitions.
Please use these links for downloading:
OS X and macOS: https://sourceforge.net/projects/jmri/files/test%20files/JMRI.4.5.6-R9bfae82.dmg/download
Changes since test release 4.5.5:The list of included commits is available from our GitHub code repository.
- Fixed the timeout when programming in Ops Mode.
- Adds Digitrax DCS210 as a possible command station in connection, and shows appropriate OpSw descriptions in the LocoNet Command Station Configuration tool for a LocoNet connection configured as using a DCS210 command station.
OpenLCB / LCC
- UI improvements in the CDI configuration dialog, such as collapsible sections, faster scrolling and tabbed UI for repeated groups. This makes configuring nodes with large I/O count or many repeated groups more convenient.
- UI improvements in the network view dialog: the nodes on the layout are sorted by their node ID, and when available, the node Name and Description is printed in the overview to better identify which tree branch to expand.
- Turnouts have a new feedback mode implemented: MONITORING. This mode allows turnout change requests sent from other sources, such as fascia buttons or other JMRI computers connected to the same layout to be respected in the JMRI Turnout's state. New turnouts created with JMRI 4.5.6 or later will default to MONITORING feedback. Turnouts created with older versions of JMRI or turnouts in panel XML files saved by older versions of JMRI will be set to DIRECT feedback mode, and users of version 4.5.6 and above will have to edit the turnouts one by one to set the desired feedback mode to MONITORING if they wish to use the new behavior.
- Improvements in the standards compliancy of JMRI Turnouts and Sensors; these will now advertise as Producers and Consumers on the layout, as well as respond to Identify Producer and Consumer requests coming from other sources. These advertisement messages will appear as a short surge of a large number of messages transmitted to the layout upon panel XML loads if there are many Turnouts and/or Sensors defined in the tables.
- Turnouts (when configured for MONITORING feedback mode) and all Sensors inquire the layout state upon startup, loading the panel file, or creating a new table entry, instead of initializing to Unknown state. When a layout has multiple JMRI computers connected, a newly started JMRI will load the layout state from an already running JMRI computer so long as they have the respective Turnout and Sensor entries in both of their tables.
- Fixed bug that caused duplicate processing of packets when using the TCP/IP "Hub" feature in the OpenLCB menu. This allows multiple JMRI computers to share a single CAN adapter by secondary computers connecting to the Hub started by the JMRI with CAN connection.
- Better error handling and reporting on Firmware Upgrade. The Supported Protocol list now displays Firmware Upgrade for compatible nodes.
- Identification information such as Node name, version and protocol support information is automatically reloaded when a node restarts, for example due to a Firmware upgrade performed.
- JMRI now replies to Simple Node Identification Information requests coming from other sources on the bus. This allows multiple JMRI computers connected to a single layout to correctly see each other in their network view dialog.
- Miscellaneous standards compliancy improvements, such as fixes to JMRI replying to Verify Node ID requests, and not sending messages with alias=000 to the bus.
- Fixed the problem with TMCC throttles not working. As part of this, the handling of TMCC preferences was changed. If you have a TMCC connection configured, please go to the "Defaults" pane in the Preferences window and make sure that the TMCC connection is selected for the appropriate device types.
New / Updated decoder definitions
- Added various new models; LokSound V4.0 M4, LokSound V4.0 M4 OEM, LokPilot V4.0 M4, LokPilot V4.0 M4 MKL, LokPilot Micro SlideIn V4.0 DCC, LokPilot Fx Nano V1.0, Scale Trains Tender Light (Dave Heap)
- Claudio Capaccio of LaisDCC provided definitions for their family of decoders.
- "Read type from decoder" should now correctly identify individual Tsunami 2 and Econami models (Michael Mosher/Dave Heap).
- Dragging to and from sorted tables or Copy and Paste in sorted tables now operates correctly.
Control Panel Editor Shapes
- Fix bug of not loading or saving control sensor.
- Editing results are shown immediately when parameters are changed
- Editing Cancel button restores shape to previous settings.
Signal Mast Editor
- Re-implemented the ramping code. Better handling signal and block occupancy speed restrictions when they interact with user interventions.
- The "Halt" GUI command now ramps down and brings the train down to a stop smoothly.
- A "Stop" GUI command has been added. This is an EStop, similar to the old Halt command that was an immediate change to speed 0.
- The "Resume" GUI command now does a ramp up rather than immediate restoration of former speed.
- Ramps will use as many blocks as they need to change speed. Previous ramp down code did not look ahead properly.
- /nReminder: Having reasonable values for block path lengths and speed factors is vital for calculating ramp start times.
- Additional messages of running status are displayed
- Double entry in the session log bug is fixed.
- Rouge entry into a warrant route now changes the icon color.
- Warrants can be started, ended and pass through Dark blocks.
- The method by which system-specific actions are populated has been changed. They should now be dynamically created depending on which system connections are configured.
- Logging Preferences in a file named "default.lcf" in the settings directory take precedence over logging preferences that ship with JMRI. The "default.lcf" can be copied from the JMRI installation as a starting point. (#2448)
- Petr Šídlo provided a large update to the Czech translations of JMRI
- Added a new SignalFollower.py sample script
- Fixed the AmpMeter crash on Linux systems.