Release Notes for JMRI 4.3.3 release
Date: Feb 15, 2016
From: Bob Jacobsen
Subject: Test version 4.3.3 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
- The combination of an NCE-USB adapter with the PowerPro, SB3 or SB5 Smartbooster can't do ops-mode (on main) programming.
The fix for this is available via Jenkins,
and will be in JMRI 4.3.4.
- Some complex Layout Editor panels don't load properly, resulting in the signals not updating properly.
The fix for this is available via Jenkins,
and will be in JMRI 4.3.4.
- There is a problem reloading some Logix that reference the same input (Sensor, Turnout) multiple times in a single Conditional.
The fix for this is available via Jenkins,
and will be in JMRI 4.3.4.
If any of those effect you, please either wait for
JMRI 4.3.4, due out in the first half of March, or pick up a
development build installer
from
Jenkins.
New warnings for this version:
- 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.
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.
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
Help for setting up JMRI with your OS and Java version as well as setting general preferences is available as Setup Help, including a short FAQ section, so application help pages can focus on the functions in each part.
LocoNet
SPROG
- Andrew Crosland fixed a problem with ops mode programming packet bursts through the SPROG command station.
Added a delay between ops mode packets and also handle the case where there is no free slot available for the packet, by reporting a timeout back to the programmer.
Signals
Signal Systems
- John Lang updated the NYC signal definitions
- (jkilsby) Background made transparant for icons for Danish Signals.
New / Updated decoder definitions
-
The default Programming mode for any particular DCC system is now based
on the order listed in the Java code.
NCE and SPROG systems have been updated to default to Direct modes.
Other systems can have the default priority order changed on request.
-
The handling of decoder custom, replacement and empty panes has been improved. (Dave Heap)
BLI
- Fixed missing pane issues with BLI Paragon 2 Diesel definition. (Dave Heap)
Digitrax
NCE
- Change acceleration and deceleration range (CVs 3 & 4) to 0-254 for non-silent drive decoder families. (Dave Heap)
QSI
- xxx made the following changes:
RR-CirKits
SoundTraxx
- Alain Le Marchand fixed the enum order for CV123 Exhaust Select on the Econami
- Michael Mosher added definitions for the Econami 200 and PNP decoders
ZIMO
- Mark Waters added new and updated files adding new ZIMO decoders and additional productIDs for existing decoders
Operations
- New feature for operations, a tool called "Automation" found under the "Trains" tools
menu. This tool can help you automate the building of trains, and the printing of manifests and
switch lists. See the Help
for Automation for more information.
- New feature for car and loco logging. Now the program creates a separate log for each
car or loco when logging is enabled. These new files are stored in a directory called
"rollingStock", and this directory can be found in the "logger" directory under "operations".
- The program will now adjust a schedule's ship destination track if you copy and delete
a track that is referenced by the schedule. This allows you to move a track (using the copy
track tool) to a different location and not break your schedules.
- Fixed a bug caused by using the "Set Cars" tool and the "Cars" table sorter (clicking
on a column heading to sort cars rather then one of the "Sort by" radio buttons). Thanks to Sam
Simons for finding and reporting this problem.
Warrants
- Karl Lisby contributed new
Signal Controlled Warrant
support, which is better matched to layouts with short blocks between signals.
Preferences
- Individual Startup Preferences panels have been replaced with a single tabular
panel that allows the explicit setting of startup execution order.
(PR 687)
- It is possible to specify one or more routes to be set when JMRI starts.
(PR 730)
- Additional preferences labels are available for translation.
(PR 781)
- 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.
Panel Editors
- Steve Rawlinson, fixed a bug that caused errors when saving from
Layout Editor if a Memory was deleted that had been linked to a Layout Block.
Layout Editor
- Steve Rawlinson improved the Layout Editors handing of layout blocks:
Selecting the blank entry at the top of the drop down list when editing
a layout block does not remove the existing sensor if there is one set.
Next time you edit it the old sensor is back.
Modified the behaviour so that selecting the blank entry removes the sensor,
allowing the sensor to be assigned to a different block.
A sensor attached to a layout block which is not in use can now be assigned
to a different layout block.
- Steve Rawlinson made a change to allow the user to set the grid size in Layout Editor
Scripting
- Scripting with AbstractAutomaton can now wait either for
something (Sensor, Turnout, Signal...) to change or for
a maximum time to go by.
(more info)
- Fixed a rare, but really annoying, problem when multiple script threads
wait for the same sensor.
Miscellaneous
- The PanelPro splash screen displays a localized F8 hint (Egbert Broerse).
- Hervé Blorec improved the French translations
- The French Index and Table of Contents pages properly display accentuated characters (PR 738).
- Egbert Broerse improved the German translation of menu items, including special character spelling
- Sonny Hansen improved the Danish translation
- John Socha-Leialoha improved the WiThrottle protocol documentation
- Egbert Broerse added help on using IntelliJ as an IDE for JMRI, including instructions to set the correct character formats (PR 675).
- The DispatcherPro, JMRI Demo, and SignalPro applications are not shipped in distributions. The code
for these applications has not been removed from JMRI, only the launchers are no longer created. If the
use of PanelPro in lieu of these applications is not possible, please request assistance creating your
own launchers for these applications in the JMRI Users Group. (Randall Wood)
- Steve Todd fixed issue with WiThrottle ip address not showing correctly on Linux systems. Change included
updating JmDNS from 3.4.1 to 3.4.2.