Release Notes for JMRI 5.7.4 release
Date: Feburary 9, 2024
From: Bob Jacobsen
Subject: Test Release 5.7.4 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 5.7.* test releases.
It requires Java 11 to work.
(See our page on downloading Java 11)
We expect this series to end in the next JMRI 5.8 production release in June 2024.
(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 release should be considered experimental.
We would appreciate your feedback on it.
JMRI is now only available under the
GNU General Public License. For more information, please
see our
copyright and licensing page.
Update From Older JMRI Versions
If you are currently using a version older than JMRI 5.0, please follow these instructions carefully:
- Is your current version older than JMRI 4.12?
If so, then update to JMRI 4.12 first, and ensure everything works correctly: check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Store your configuration and panel files under a new name and use those from now on.
Then continue with step 2.
If you are currently using JMRI 4.7.3 or earlier on Linux or macOS (Windows doesn't need this),
then it's very important
that you update to JMRI 4.12 and
carrying out the migration process described in the JMRI 4.12 release note
before updating to any later release.
- Is your current version older than JMRI 4.20?
Then update to JMRI 4.20 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Save your preferences again.
Store your configuration and panel files under a new name, use those from now on, and go on to step 3.
- Is your current version older than JMRI 4.24?
Then update to JMRI 4.24 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Save your preferences again.
Store your configuration and panel files under a new name and use those from now on.
- Is your current version older than JMRI 5.0?
Then update to JMRI 5.0 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Save your preferences again.
Store your configuration and panel files under a new name and use those from now on.
- You can then install this release.
Following this multi-step order of updating via stable major releases safeguards you against possible migration issues
that can arise from skipping these versions.
New problems with this release
New warnings for this release:
Older warnings
See the
JMRI 5.6 release note for more warnings predating the 5.7 development series,
including pointers to various migration issues.
These may be relevant to you if you're updating from an earlier version;
we strongly recommend you update to at least
JMRI 5.0
before installing this test release.
See
instructions above.
- Since JMRI 4.99.1
This test release, and all subsequent ones, require the use of
Java 11 or later. Java 8 is explicitly not supported.
There's more information on this migration on the
JMRI Tech Road Map and
JVM Capabilities pages.
- Since JMRI 5.5.3
Scripts that output Logging statements with log4jv1.x ( org.apache.log4j ) imports will stop working
from JMRI 5.5.4 and should be updated to use SLF4J logging.
See here for some examples on how to do this.
- Since JMRI 5.5.4
Custom default.lcf Logging Control Files will cease to take effect from JMRI 5.5.4
To create a custom default_lcf.xml in the new Logging Configuration format, see
JMRI Debugging and Logging
- Since JMRI 5.5.5
XML files with table contents and panels have been changed in JMRI 5.5.5. It's therefore not
possible to load an xml file with tables and panels that has been created with JMRI 5.5.5 or
later with a JMRI version pre 5.5.5.
- Since JMRI 5.5.5
MQTT Connection - Throttle loco address and function placeholders in MQTT topics have changed from
$address and $function to {0} and {1} for consistency with other objects.
- Since JMRI 5.7.1
Several systems have had extensive updates to their serial
support. If you have trouble connecting to your layout hardware
after installing this version, please contact us
on the JMRIusers list
for assistance.
Download links:
These files are located in the
JMRI 5.7.4 GitHub release.
The
list of included changes is available from our
GitHub code repository.
Hardware Support
LocoNet
- Several tools have improved layout when the
screen size is reduced.
- LocoNet Monitor has improved reporting of "Query Mode"
messages.
MQTT
- Fixed missing topic unsubscribes when deleting turnouts, sensors, etc
- Fixed missing topic unsubscribe on throttle release for cab functions
- Added code to properly dispose of MQTT components
MRC
- MRC serial connections should use odd parity.
New / Updated decoder definitions
MD Electronics
- New definition for the mXion DRIVE-L decoder.
PIKO
- Add CVs for PMW modulations, add tooltips
SoundTraxx
- Genesis OEM add new models
Uhlenbrock
- Add CVs for PMW modulations, add tooltips
LogixNG
- The action Table: For each can now loop
thru the headers too. If indirect addressing is used for
the row or column name, use the empty string to get the
headers.
- The action Table is added. It lets the
user set the value of a cell in a LogixNG table.
- The action Request update of sensor is
added. It requests that the state of a sensor is updated
from the layout, if possible. Not all connections supports
this, for example LocoNet.
- LogixNG has two new preferences which are disabled by default:
- Use strict typing of global variables
- Use strict typing of local variables
If strict typing is enabled, local and global variables
that are initialized to a string, integer or floating number
cannot be set to a value of another type. LogixNG will try
to convert the new value to the desired type, for example
a local variable of type floating number will be assigned
the value 12.0 if it's assigned 12 and it will be assigned
the value 32. if it's assigned the string "32.5".
Local and global variables that are initialized to another
type, for example array, map or LogixNG table can't be
assigned a new value.
If you want to use strict typing but still want to override
this setting for a particular local or global variable, then
initialize this variable to None. Variables
that are initialized to None will not have
strict typing,
- A new preference is added that selects if the
If Then Else action should have
Execute on change or
Always execute as the default.
- The expression Sensor Edge no longer
supports indirect addressing of the sensor. It has never
really worked since Sensor Edge needs to listen on the
sensor and it cannot listen on a sensor if indirect
addressing is used.
If a panel is loaded and a Sensor Edge expression uses
indirect addressing, an error message is added to the
log:
Error during loading Sensor Edge expression
IQDE:AUTO:0003 due to: Addressing must be Direct
where IQDE:AUTO:0003 is the system name of the expression.
- The action Window to front as been added.
It brings a window to the front and can be used if you for
example want to have an icon on a panel that moves focus to
another window.
- The action Decode JSON is added. It decodes
a JSON string in a local variable to a JsonNode tree and
puts it in another local variable.
- LogixNG formula now supports JSON as well. It's in particular
useful together with the action Decode JSON.
A JSON dataset can be indexed as a map or as an array, for
example by MyJson{"decoder}{"model"}[4].
The result is a Json text node, so use the str()
function to convert the value to a string afterwards.
Resources
Routes
- You can now specify where the control turnout should have its
known state (the default old behavior) or its commanded state
checked to see if the route should be set. This can be useful
e.g. if you have feedback set on the turnout and want to react
quickly to a commanded change.
Signals
Signal Masts
- Fixed bug where no dialogue would display when Discovering Signalling Mast Pairs and Layout Block Routing is not enabled.
Cab Signals
Turnouts, Lights, Sensors and other elements
- Fixed a bug where deleting the last (highest-numbered) Turnout
would throw an exception.
- Fixed a Turnout Table bug where an incorrect border may display in Turnout Feedback.
Miscellaneous
- The JOAL library has been updated to run natively on Windows and Linux machines.