Release Notes for JMRI 4.3.7 release
Date: June 11, 2016
From: Matthew Harris
Subject: Test version 4.3.7 of JMRI/DecoderPro is available for download.
Notes:
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 middle 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.
JMRI is now only available under the
GNU General Public License. For more information, please
see our
copyright and licensing page.
Known problems with this release
None at release time.
New warnings for this version:
Older warnings
See the
JMRI 4.2 release note for warnings predating the 4.3 development series.
These may be relevant to you if you're updating from an earlier version.
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.
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.
The DispatcherPro, JMRI Demo, and SignalPro applications are no longer shipped in distributions. Use PanelPro
in lieu of these applications.
The internals of the Layout Editor have been reworked a bit. Please keep an
eye out for any changed behaviors.
The code for handling Panel Editor / Control Panel Editor icons has changed
to better deal with rotating icons. This has changed how opaque vs transparent
icon backgrounds are handled. Please check your panels to make sure we
haven't inadvertently caused a problem, particularly if you've got rotated
icons and/or use have custom icons with transparent backgrounds. If there
are any problems, please send in a copy of your panel file so we can
recreate the problem and fix it.
The configuration is now stored in multiple files within a directory named profile
inside a Configuration Profile instead of within the file ProfileConfig.xml
.
PanelPro and DecoderPro both should migrate from the old configuration to the new configuration seamlessly.
See JMRI Issue #69 for more details.
Please report any issues at our GitHub project.
The XML schema
for decoder files has been made more precise.
This shouldn't effect people who just use the JMRI decoder definitions as distributed,
because they all work with this more precise version. But if you have decoder
definitions of your own, you may have to update them.
Specifically, the decoder file verification will now reject a few things that it didn't catch before, even though they didn't really work:
- There can be only one label element for a given language on a given variable.
- A variable element has to contain just one type element such as decVal, enumVal, etc.
As a side effect of checking this, the qualifier elements inside a variable now have to
be at the front of the contents, and the label, comment and tooltip elements have to be
at the back. You can't just sprinkle them around and hope the code finds them
(because sometimes in the past the program would miss one; now we require an order we're
sure the code will understand).
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 website 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.
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 invalid
error, 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.
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, but as they seem no longer interested in maintaining that code, it's not known when this will be fixed.
In the meantime, the workaround is to restart JMRI and/or the hardware node(s)
and try again; that might allocate different alias values.
Download links:
Please use these links for downloading:
The
list of included commits is available from our
GitHub code repository.
Hardware Support
Digitrax
- Fixed a problem with PM42 addresses greater than 9.
Roco z21/Z21
- Add Configuration tool to the Z21 Menu. This allows checking and setting the Z21's Broadcast flags, and displaying the serial number, hardware version, and software version.
New / Updated decoder definitions
- Improvements to the "validation" checks for decoder definitions. A couple
false positives fixed; check that some numerical fields really do contain numbers.
- Previously, when loading an existing roster entry, DecoderPro just loaded the CV values.
This in turn loads the Variable values as the CVs change.
Because of DP's qualified-variable support, some Variables are not connected to specific CV contents at load time;
they get the wrong values, and hilarity ensues. (First pointed out by Dick Bronson)
Updated so that JMRI loads oads the Variable values from the file (they've been stored all along), then loads CV values as before.
- The identification process for Hornby decoder models now includes the value of CV 159.
Bachmann
- Alain Le Marchand added three steam and one diesel decoder definitions
ESU
Dave Heap made the following changes:
- Added the LokPilot Nano Standard V1.0.
- Added new Product IDs for some new LokSound Select hardware versions.
- Fixed Vstart, Vmid & Vhigh value ranges for various ESU decoders.
Hornby
- Added ability to use CV159 for decoder product identification
SoundTraxx
- Michael Mosher contributed Tsuanmi2 Steam, Diesel and Electric locomotive decoder definitions
Dispatcher
Steve Todd enhanced Dispatcher's AutoActiveTrain feature with the following changes (PR #1364):
- for target speed, use minimum of block speed and signal speed - for signalmasts
- added user options to specify ramping interval and duration
- manual slider sets speed directly, bypassing ramping
- turned off AlwaysSet Turnouts, added "Trust Known State" option
- added a fixed delay between turnout commands
- prevent runaway by halting if train has no occupied sections - partial - only works with another moving train
- enhanced debugging and squashed a few bugs
Logix
- Improvements to the "validation" checks for panel files. A couple
false positives fixed; check that some numerical fields really do contain numbers.
Panel Editors
- Improvements to the "validation" checks for panel files: A
false positive fixed.
Preferences
- Displaying open windows or frames in the web server can be disabled or redirected to display panels.
When disabled or redirected, the web server home page will list open panels under the Open Windows
heading.
Roster
- Traditionally, both CV and variable values were stored in roster entries, but only the
specific CV values were loaded when the roster entry was opened later. This worked when
all of the information was in the CVs (the variables were redundant), but now we have some
complex decoders that use "qualifiers" to separate variables from CVs. To handle this case,
we now reload the variable values from the file, then the CV values.
Scripting
- ON and OFF are now defined by default for Jython scripts
- Oscar Moutinho provided a set of scripts to use Internet of Things (IoT) devices
within JMRI (1463)
Signals
Egbert Broerse improved the signals and signalling help pages.
Web Access
- The "frame server" can be optionally disabled.
(1334 and 1438)
- A placeholder has been created for embedding extra JavaScript in JMRI web pages.
See user.js for details.
(1458)
- Excessive logging when a client fails have been silenced.
(1469)
- Address vulnerability CVE-2016-4800 in Jetty. (1471)
Miscellaneous
- Sonnys Hansen updated the Danish translation
- Steve Todd updated Dispatcher's AutoActiveTrain feature.
- Much infrastructure work, improvements to the Javadoc, etc.
- Javadoc can now include UML
- There's just the beginnings of a test setup for the Jython sample scripts