Release Notes for JMRI 4.21.3 release
Date: mmm dd, 2020
Subject: Test Release 4.21.3 of JMRI/DecoderPro is available for download.
This is a draft release note only; the download links do not yet work
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 summer 2020. (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.
Update From Older JMRI VersionsIf 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.
Known problems with this release
New warnings for this release:
- None yet
Older warningsSee 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
getBeanBySystemNamecalls in the various
Managerclasses are no longer needed with Java 8 and have been deprecated for eventual removal. Their replacements are
getBySystemNamerespectively. If you use
getBeanBySystemNamein 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
Download links:During development leading to the actual release, you can find test download files on the continuous integration build page. These are development files, and might not be working at any particular time.
Changes since Test Release 4.21.2:The list of included changes is available from our GitHub code repository.
- CMRI SerialSensor updated to support multiple Character system name prefixes.
- Sensor, Turnout, Light and Reporter Address ranges do not have to be fully numeric, and will be incremented using the final number in an address.
For example, a range can be created from "My Yard 77 Sensor 1" which would increment to "My Yard 77 Sensor 2"
JMRI Simple Server/JMRI Client
- The legacy LocoIO programmer help points to the current DIY decoder method to configure these boards.
- LocoNet support for "Voltage/Current Meters" has been extended to include support for multiple sources of meter information, and to include automatic discovery of LocoNet devices which support voltage and current reporting. Each discovered device is identified by its device type and serial number. These "friendly" identifiers appear in the "Voltage Meter" and "Current Meter" menus in the "Voltage/Current Meter" tool. Further information may be found at the Digitrax "Meters" web page.
- Start-up "Interrogation" of LocoNet Sensor and Turnout state has re-worked to provide better operation for LocoNet connections with large numbers of Sensors and/or Turnouts. The JMRI interrogation mechanism now implements a minimum delay from the last Sensor Report, Turnout Report or Interrogate Query message before sending the next Interrogate Query message.
- Maple SerialSensor updated to support multiple Character system name prefixes.
- CBUS RFID Reporters now act similar to other JMRI Reporters, ie with a timeout following the report.
- CBUS Reporters can set a Sensor to follow the active IDTag status, set via CBUS Reporter Table.
- CBUS Reporters will default to classic RFID ( 5 byte unique tags ), with option for in-development CANRC522 / CANRCOM format, set via CBUS Reporter Table.
- Added support for creating ranges of Turnouts and Lights.
Sensor, Turnout and Light Address ranges do not have to be fully numeric, and will be incremented using the final number in an address.
- EStop for 28 Step mode is now sent correctly
- The 73900 decoder definition was renamed 7x900, and updated to support decoder models:
- 76900 (V1)
- Piko 56126
New / Updated decoder definitions
Doehler & Haas
Mistral Train Models
Norsk Modelljernbane (NJM)
Public Domain and DIY decoders
NX - Entry/Exit Tool
- The "Copy Logix" feature has been enhanced to provide more assistance in copying conditionals. See the updated help files for details.
- Fixed a couple of bugs there Logix wasn't correctly listening on signal head lunar state, signal head flash lunar state, signal mast lit state and signal mast held state. See PR #9059.
Control Panel Editor
Turnouts, Lights, Sensors and other elements
- Increased address validation for multiple hardware types.
- The getSystemNameList() and getNamedBeanList() Manager methods have been fully deprecated.
Please update any code warnings re these methods to use getNamedBeanSet(), and post on the JMRI Users Group for any assistance with updating.
- The Manager method getNextValidAddress(@Nonnull String curAddress, @Nonnull String prefix) has been deprecated, please use getNextValidAddress(@Nonnull String curAddress, @Nonnull String prefix, boolean ignoreInitialExisting)
- Better set row height in table.
Simple Signal Logic
USS CTC Logic
- When the Switchboard pane is resized by the user, the number of rows will adjust to show the largest size switch tiles (default On for new boards). If you prefer to set the number of rows in the Editor, uncheck "Automatically set optimum grid" in the Options menu).
- Switchboards immediately update after a change in shapes, types, connection or range. The [Update Switchboard] button is still available, and occasionally required.
- Switches display the user name on the switches (default On for new boards, set "Show user name on switches" in the Options menu.
- Switchboard panels on Web Server support all graphic shapes and colors set in the Editor.
- Switchboard "switch" icons fill the whole screen on mobile devices (you can turn this off in Switchboard Editor by deselecting "Automatically set optimum grid" in the Options menu.
- Switchboard panels for Lights allow to switch all lights on or off (also in Web Server when Panel items control layout is selected in the Editor Options menu).
Virtual Sound Decoder
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
- LocoNet supports discovery of the sources of voltage and current data and makes them available in the "Voltage/Current Meter" tool.
- 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.
- 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.
- The (English) phrasing in a couple of messages was updated for consistency.