Release Notes for JMRI 5.1.3 release
Date: August 12, 2022
From: Bob Jacobsen
Subject: Test Release 5.1.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 5.1.* 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.2 production release in December 2022.
(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.
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 4.24, 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.
- 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.0 release note for more warnings predating the 5.1 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 4.20
before installing this test release.
- 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 4.99.1
This version no longer reads ZeroConf IPv4 and IPv6 preferences
written with JMRI 4.16 and before. Please make sure to upgrade
to JMRI 4.20 (or later) and save your preferences before
updating to this version if you have configured the WiThrottle preference pane.
Download links:
The
list of included changes is available from our
GitHub code repository.
Hardware Support
CBUS
- Updated [Pi-]SPROG (3v2|Plus) NV edit GUI
- Added Pi-SPROG 3 (not v2) NV edit GUI
NCE
- Fixed a problem adding sensors with names like NS50:1
OpenLCB / LCC
- Several fixes to JMRI's OpenLCB hub to reduce chance of duplicated traffic.
- Added ConsumerID, ProducerID buttons to OpenLCB console
Piko
- A new definition file was added for the Uhlenbrock LocoNet IR Receiver #63830, that can
connect the Piko Digi-fern Remote Control to LocoNet.
Raspberry Pi
- A simulator is now added that simulates a Raspberry Pi.
The simulator is very simple and is mostly intended to be
able to load panels for a Raspberry Pi on a non Pi computer
like Windows.
SPROG
- Updated [Pi-]SPROG (3v2|Plus) NV edit GUI
- Added Pi-SPROG 3 (not v2) NV edit GUI
- Added F29+ support to SPROG Command Station mode.
New / Updated decoder definitions
- An include file enum-WeekdaysSun.xml that can be used to create a drop down of Weekdays was added to
xml/decoders/parts/
Dapol
- Two Dapol Imperium DCC Decoders have been added.
860015: Next 18 6 Function decoders (NEM 662).
860019: 21 PIN 6 Function decoders (21MTC/NEM 660/MTX interface Standard).
Digikeijs (Digirails)
- New decoder definition for DR5088RC with LNCV programming capabilities.
Thanks to Dennis Cherry for testing on actual hardware.
Awaiting response from Digikeijs to complete the settings stored in LNCV4.
- The Stationary family of decoders was renamed to Feedback (Inputs).
Digitrax
Technologistic (train-O-matic)
- Added support for Lokommander II decoders. Including automatic identification of the right decoder type based on productID.
Uhlenbrock
- Updated the Lissy Reporter support, including
improved display of the messages. Note that this
has changed the format of the reports, so users
who have written scripts to use this might need to
check and update them.
- Added a decoder definition to configure the 63810 Mobile Station Adapter.
Use the LNCV tool to program.
- Added decoder definitions for Occupancy Feedback modules #63320/40 (2-rail) and #63330/50
(3-rail).
Use the LNCV Tool for programming.
- Added Funk-Master LN+DCC 66410 definition. Renamed model 66400 FunkMaster to Funk-Master LN.
- Added a decoder definition to configure the 63450 LocoNet Display module, also with LNCV
- New definition to program the IRIS LocoNet IR-Receiver #63830.
- Fixed a bug in the Switch Module #63410 definition that could mix up combined CV values of type
XXXXC.
- Added setting Route 1 in the Track Control Signal indicator #69230
- Added a decoder definition to configure the 63400 LocoNet Switch Control module
DecoderPro
- To simplify writing a decoder definition, variable declarations for decimal and hex values without a
"mask" with max > 255 now will get an appropriately sized mask assigned so that they store any
valid entry.
Variables with a max <= 255 or with an explicit mask are not affected.
- In decoder definitions, enumVal variables can now use a so-called "radix" mask to map values on specific
digits in the CV value. Requires decoder-4-15-2.xsd schema in the xml declaration.
- Values of type DecVar can now be presented using an offset and factor to reflect their application. For
example if address 1 had to be entered as 0 (and 2 as 1) an offset of +1 would fix this for the user.
Likewise, a factor of 50 would present a setting "in steps of 50 milliseconds" in ms units while saving
it in the CV just like it used to.
Requires schema decoder-4-15-2.xsd. When a min or max is applied, the author should update that for the
numbers as entered. Entries smaller than the offset are replaced by 0.
Dispatcher
- Support transits and sections that use multiple panels connected by edge
connectors.
- The "Use connectivity from Layout Editor panels" option in Dispatcher Options
no longer uses a specified panel. All Layout Editor panels are used for layout
connectivity.
LogixNG
- The action Simulate turnout feedback has been added.
It's useful to simulate feedback based turnout actions when a
simulator connection is used, for example the LocoNet simulator.
- The expression Connection name has been added.
It's useful together with Simulate turnout feedback so
that simulation only happens for simulated connections.
- The action For each has been added. It's useful when
you want to loop thru all items in a list, for example all the
sensors in the sensor manager.
- The formula function new has been added. It allows
you to create a new instance of a class.
- Several formula constants have been added. See the modules
Java and Layout. Examples are constants like
sensors and turnouts that gives you direct access
to the managers. And InstanceManager that gives you direct
access to the instance manager. The constants null and
None has the null value in Java, the None value in Jython.
- The action Listen On Beans - Table is improved.
- The action Listen On Beans - Local variable has been
added. It can be used together with the For each action
to listen to all beans of a manager.
- The expressions Local Variable and Memory now
have the choice "Type" which allows you to select whenether the
data should be treated as a number or a string. If "Number" is
choosen, it's required that both operands are numbers. Otherwise
an exception will occur.
- The action Local Variable can now copy the value of a
reference.
- The action If Then Else now supports Else_If
statements.
- The new category Flow Control is added. The actions
Call Module, For, For Each, Table: For
Each and Sequence are moved to this category, as well
as the expression Call Module.
- The actions Break, Continue, Error,
Exit and Return have been added to the Flow
Control category.
- The expressions And and Or now have the option
to only evaluate the sockets that are needed for the result.
Speedometer
- Expanded user documentation
Miscellaneous
- jmri.jmrix.SystemConnectionMemoManager has new utility methods to find a connection by its connection name.
LocoNetSystemConnectionMemo memo = SystemConnectionMemoManager.getConnection("L2", LocoNetSystemConnectionMemo.class);
LocoNetSystemConnectionMemo memo = SystemConnectionMemoManager.getConnectionByUserName("LocoNet", LocoNetSystemConnectionMemo.class);
MqttSystemConnectionMemo memo = SystemConnectionMemoManager.getConnection("M", MqttSystemConnectionMemo.class);
MqttSystemConnectionMemo memo = SystemConnectionMemoManager.getConnectionByUserName("MQTT", MqttSystemConnectionMemo.class);
- The PlantUML library has been updated to the current version. This is used for
developer documentation.