Release Notes for JMRI 4.21.2 release
Date: October 3, 2020
From: Bob Jacobsen
Subject: Test Release 4.21.2 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 releases.
We expect this series to end in the next JMRI production release in early 2021.
(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.20, 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 relese.
- 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
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 4.20 release note for more warnings predating the 4.21 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
JMRI 4.20
installing this test release.
- Since JMRI 4.21.1
The jmri.jmrix.SystemConnectionMemo class has become a jmri.SystemConnectionMemo
interface and a jmri.jmrix.DefaultSystemConnectionMemo class. This may
require changes to scripts. If you have a script that references
jmri.jmrix.SystemConnectionMemo, please change it to either
jmri.SystemConnectionMemo or jmri.jmrix.DefaultSystemConnectionMemo
(it's easier to have you just try the two than to explain which
one will work in which case)
- Since JMRI 4.21.1
The way preferences are loaded at startup has been slightly
modified. There is no impact to JMRI applications, but Non-JMRI
applications that are not derived from apps.Apps or apps.AppsBase
but are using jmri.implementation.JmriConfigurationManager to load
preferences will no longer see preferences if an error occurs. To
restore the old behavior, use apps.AppsConfigurationManager instead.
- Since JMRI 4.19.1
The
getBeanByUserName
and getBeanBySystemName
calls in the various Manager
classes
are no longer needed with Java 8 and have been deprecated for eventual
removal. Their replacements are
getByUserName
and getBySystemName
respectively.
If you use getBeanByUserName
and getBeanBySystemName
in script or Java code you've written, please
switch to the new names.
- Since JMRI 4.11.4
There are issues with the Pi-SPROG One command station operation. A number of workarounds should be applied:
- Do not turn on the track power until the power supply to the Pi-SPROG ONE is turned on
- Do not enable extra debugging through default.lcf, nor open the system console window
- Do not open the SPROG console window
- Disable power conversion (CV 29) in all locos
- If connecting via VNC (or similar), setup the screen layout before turning on the track power
Pi-SPROG One with version 2.4 or earlier firmware will cause a timeout after a track short circuit. A dialog box will
open to inform the user of this. The track power will be turned off and must be turned on again using the power control.
Download links:
Please note that the download links in this and future JMRI releases link to
Github servers.
People are welcome to distribute the download files further via other websites, etc.
If you want to check that you've received original, unmodified versions, please
check the files against the checksums shown below.
The
list of included changes is available from our
GitHub code repository.
Hardware Support
Acela CTI
- Fixed issue unable to initialise adapter
DCC++
- Only send function refreshes if required (version < 3)
DCC4pc
- Improved System Name validation for Sensors and Reporters, must contain at least 1 number.
ESU
- Improved System Name validation for Turnouts, Sensors and Reporters, must contain at least 1 number.
IPOCSMR
- Initial support added.
- Turnouts, Lights (on/off) and Sensors
LocoNet
- The legacy LocoIO programmer help points to the current DIY decoder method to
configure these boards.
MERG CBUS
- Default Output Interval reduced to 100ms.
MQTT
- Fixed a bug that caused an erroneous ERROR message on operating MQTT Lights
- Default Output Interval reduced to 100ms.
Pi
- Improved System Name validation for Turnouts and Sensors, numeric from 0 - 999
RFID
- Improved System Name validation for Standalone sensors, must contain at least 1 number.
TAMS
- Improved System Name validation for Turnouts and Sensors, must contain at least 1 number.
XPA
- Improved System Name validation for Turnouts, must be numeric.
New / Updated decoder definitions
ESU
- Added "LokSound 5 micro E24 DCC" and "LokSound 5 micro KATO".
- Replaced incorrectly-named "LokPilot 5 micro DCC Next18" with "LokPilot 5 Micro Next18 DCC".
Public Domain and DIY decoders
- LocoIO programming using the Public_Domain_HDL_LocoIO decoder definition has been significantly
expanded. This update requires JMRI 4.21.2 or later. Because of the included improvements you are
advised to start with new Roster Entries for your LocoIO boards. Help files have been updated.
SoundTraxx
- TSU2 Diesel fix sound slections, Genesis OEM Diesel add models
CTC Tool
- The CTC tool no longer uses an external XML file, CTCSystem.xml, for retaining
its configuration. The configuration is now part of the standard PanelPro data file.
This change eliminates issues with data consistency between the JMRI tables and
the CTC configuration. The CTC Editor File menu has an menu item to import an
existing CTCSystem.xml file so that the configuration will be included in
Panels ⇒ Store Panels.
Logix
- The "Copy Logix" feature has been enhanced to provide more assistance
in copying conditionals. See the updated help files for details.
Scripting
- new scripts ShutdownOS.py and RestartOS.py which can be called to safely
end JMRI and then request that the underlying OS shutdown or restart itself
Virtual Sound Decoder
- The "Location Following" (sound follows loco) with occupancy sensors and JMRI Blocks
now also works with a RosterEntry or RosterId as Block value.
Meters and MeterFrames
- jmri.MultiMeter is split into jmri.Meter.
- jmri.VoltageMeter and jmri.CurrentMeter is added.
- AmpMeterFrame and VoltMeterFrame are replaced by MeterFrame
- The user can select which VoltageMeter/CurrentMeter the MeterFrame should show
- The MeterFrames are stored in the panel file and restored when the panel is loaded
AbstractProxyManager
- AbstractProxyManager can now automatically create system specific managers.
- When a NamedBean is added to a proxy manager, there needs to be a system specific
manager for that bean unless the bean is for the internal manager. The ProxyMeterManager
and AbstractProxyManager automatically creates a new system specific manager if it doesn't
already exists. This works as long as the system specific manager doesn't need to have
system specific knowledge of the named beans.
- This means that, for example, the user may create a Jython script that creates a Meter
for the LocoNet connection but doesn't need to create the LocoNet meter manager since that
manager is automatically created.
- Once a specific connection needs to store specific data about meters, a connection
specific manager needs to be created, for example LnMeterManager for LocoNet.
Miscellaneous
- Windows launcher updated to honour return codes to shutdown or reboot host machine
- The Ant version invoked by Maven was bumped to 1.10.8. No user
action required, but developers need to be online the first time
they build using Maven.
- An option (disablePermissiveSignalMastLogic) has been added to SignalMasts and SignalMastLogic
to enable conditional permissive aspects. See the jmri.SignalMast Javadoc for details.