Release Notes for JMRI 4.1.3 release
Date: October 25, 2015
From: Bob Jacobsen
Subject: Test version 4.1.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 next in a series of test versions. We expect this series to end in the next JMRI production release around the end of 2015.
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
Backgrounds to labels and icons on control panels will occasionally display incorrectly. Memory variable icons may also display an "X" marker at incorrect times. This is fixed in JMRI 4.1.5.
New warnings for this version:
Mac OS X 10.11 El Capitan requires signed drivers for USB adapters. If you've upgraded from an earlier version, your drivers may not work. That will cause JMRI to throw errors when it doesn't find communications links. To fix this, go to the web site for your adapter manufacturer, find the drivers that are listed to work with Mac OS X 10.9 or later, download, and install, then retry JMRI again.
RFID readers using the Olimex protocol were incorrectly decoding tag values - this has now been fixed. If you were using Olimex RFID readers with earlier versions, your existing ID Tag database will contain invalid tags. New ID Tag entries will be generated for each correctly read tag - this will require that any additional information be re-entered and, optionally, old invalid entries manually deleted.
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.
Older warningsSee the JMRI 4.0 release note for warnings predating the 4.1 development series.
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.
The OpenLCB 0.6.4 library in this version has a bug in its alias calculations which prevents JMRI from communicating occasionally. A patch has been submitted to the OpenLCB group. In the meantime, the workaround is to restart JMRI and/or the node and try again; that might allocate different alias values.
Please use these links for downloading:
Mac OS X: https://sourceforge.net/projects/jmri/files/test%20files/JMRI.4.1.3-R1d06dd9.dmg/download
Changes since test release 4.1.2:
- A bug that caused connections using the MERG Concentrator to not work has been fixed. (Matt Harris)
- A bug that meant RFID tags were misread when using Olimex RFID readers has been fixed. This will mean that details of any existing tags read using an Olimex reader are now invalid and will need to be re-identified and updated in the ID Tag list. (Matt Harris)
- Minor corrections were made in the Core-ID, EM18 and SeeedStudio RFID reader interfaces to correctly reject any tag reads with invalid checksums - this was not always happening resulting in the potential of incorrect tag reads being accepted. (Matt Harris)
- Added test cases for all implemented RFID protocols. (Matt Harris)
New / Updated decoder definitions
- John McMasters updated the Digitrax Extended Series 6 v3.5
Doehler & Haas
- Peter Ulvestad corrected the tooltips in some of the TCS decoder definitions
- The "Edit Car" window now shows the blocking order for kernels.
- Changed how the program deals with alternate tracks and cars with custom loads. Previously if the program found an alternate track assigned to a spur, and all spurs were full, it would hold the car at its current location until one of the spurs had space for the car. Now there's a new option for a spur that is part of the load option window for a spur. A checkbox labeled "Hold cars with custom loads when spurs are full" now performs the same function as the alternate track did with regards to holding cars. For more information, see the help and "Load Options" for a spur.
- Allow international locales to correctly specify lengths in OBlock tables. (Matt Harris)
- Copying a Configuration Profile no longer throws an error. (Randall Wood)
- The "MakeOriginalDecoderPro.py" script has been corrected to work with the updated scripting support introduced in JMRI 4.1.2.
- The "AutoDispatcher2.py" script has been corrected to work with the updated scripting support when the "jython.exec=true" setting is set within the "python.properties" 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 to emulate the evaluation environment used when jython.exec=false. (Randall Wood)
- The user-defined scripts folder and the jython folder in the JMRI installation are automatically appended to the python.path so Jython scripts can directly import other jython scripts in those locations. (Randall Wood)
- Support for AppleScript has been added. On platforms other than OS X, this may send the message
ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider apple.applescript.AppleScriptEngineFactory not foundto the console, but this message can be safely ignored. (Randall Wood)
- Paul Bender updated the consist tool to sort the consist list numerically.
- Paul Bender added restore button to the consist tool that requests the command station re-create the consist.