Release Notes for JMRI 4.7.1 release
Date: February 26, 2017
From: Bob Jacobsen
Subject: Test Release 4.7.1 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 first in a series of test releases. We expect this series
to end in the next JMRI production release around the middle of 2017.
(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.
Known problems with this release
- There's a problem creating or changing C/MRI
preferences.
If you've already configured your C/MRI connection before installing this
version, it should continue to work, but you probably won't be able to add, remove
or modify the C/MRI node configuration. This should be fixed in JMRI 4.7.2.
- The look ahead of a Warrant for route occupation is unreliable in some cases and and
when cleared does not restart automatically.
Also resetting the path of the route is not done should turnouts be
inadvertently thrown ahead of a warranted train.
(Route occupation is when another train, accidentally or not, occupies the route of a warranted train)
- The NXFrame window is not populated with defaults making it more difficult to use.
The lack of defaults also makes the status message of the train always report 0 mph (or 0 kmph).
-
The LocoNet Server (the LocoNetRMI service; not the LocoNetOverTcp service)
in this version of JMRI doesn't properly interoperate with JRMI 4.6 or before.
The workaround is to update both client and server JMRI machines to the same
JMRI version. We expect this will be fixed in JMRI 4.7.5.
New warnings for this release:
- JMRI no longer supports the portable paths
resource:
or file:
that
were deprecated in JMRI 2.13. When loading a panel, an error message will be displayed
if the panel contains a path that starts with resource:
and the panel will
not load until changed using an external editor. Paths starting with file:
cannot be automatically flagged because JMRI allows file: URLs.
- JMRI applications will not load a panel file that fails XML validation; an error will be
shown that should explains the error, allowing it to be fixed using an editor. (The
explanations remain a work in progress.)
Older warnings
See the
JMRI 4.6 release note for warnings predating the 4.6 development series.
These may be relevant to you if you're updating from an earlier version.
(Since JMRI 4.5.6)
As part of fixing the
TMCC throttle issue,
the handling of TMCC preferences was changed. If you have a TMCC
connection configured, please go to the
"Defaults"
pane in the Preferences window and make sure that the
TMCC connection is selected for the appropriate device types.
(Since JMRI 4.5.2)This and future releases of JMRI may not function on OS X if the Java SE 6 provided by Apple is installed. OS X
operating system updates routinely remove this version of Java SE 6. Please raise any issues concerning this on the
user's group.
To remove Java SE 6 from OS X, follow these steps (these steps assume
JMRI is installed in the folder /Applications/JMRI, if not,
adjust the following paths as needed):
- Open Terminal.app.
El Capitan only: Reboot into Recovery Mode by restarting your
Mac and pressing Cmd-R until the Apple logo appears. Once in Recovery Mode,
select Terminal from the Utilities menu.
- Run the command
/Applications/JMRI/PanelPro.app/Contents/Resources/uninstall-java6.sh
It can take
up to a half hour to complete. Wait for the message Removed Apple Java SE6.
El Capitan only: Run the command bash /Volumes/Macintosh\ HD/Applications/JMRI/PanelPro.app/Contents/Resources/uninstall-java6.sh /Volumes/Macintosh\ HD
It can take up to a half hour to complete. Wait for the message Removed Apple Java SE6.
- El Capitan only: Restart your Mac.
(Since JMRI 4.5.2)Support for directly executing AppleScript within JMRI has been removed
due to changes in macOS and Java outside our control. If you require the
ability to use AppleScript, you may be able to add this capability on your
own by visiting JMRI
AppleScript Support, but please be aware that this may not work
on upcoming releases of macOS or Java.
(Since JMRI 4.5.1)Internal turnouts and sensors need to have complete, individual system names.
The names "IT" and "IS" (without any suffix) are no longer permitted:
"IT12" is fine, but just "IT" is not. Most panel files that contain these should
automatically migrate them to new names when saved, but in some cases you might need to manually update them.
(Since JMRI 4.3.3) 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.
(Since JMRI 4.1.2) 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.
(Since JMRI 4.1.1) 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.
Download links:
Please note that the download links in this and future JMRI releases link to
Github servers.
If that doesn't work for you, the files up to 4.11.x are also still available from the
SourceForge.net servers.
Please
let us know of any problems.
The
list of included commits is available from our
GitHub code repository.
Hardware Support
C/MRI
- There's a problem creating or changing C/MRI
preferences.
If you've already configured your C/MRI connection before installing this
version, it should continue to work, but you probably won't be able to add, remove
or modify the C/MRI node configuration. This should be fixed in JMRI 4.7.2.
DCC++
- DCCppOverTCP support has been updated. The SEND/RECEIVE prefixes between
host and client have been removed. New code is backward compatible with
old (4.6 or previous)
- Fixed a bug in DCCppOverTCP throttle message translation.
- Fixed a bug in the <s> command response
Digitrax
- When a JMRI program is configured to use the DCS240 as a standalone programmer, upon program exit the
DCS240 will be re-configured as a LocoNet interface. This allows other LocoNet devices to access the
DCS240 service-mode programming track after the JMRI program is closed.
- Bob Milhaupt improved the handling of the LocoNet-specific programmers for
the SE8C, PM4 and BDL168
New / Updated decoder definitions
-
Programming of Accessory Decoders on the Main
(Accessory Decoder Ops Mode)
is now possible, if supported by the decoder.
You will need to configure your definition to enable this, as per
this link.
Some limitations remain:
- There are no progress messages in the status bar.
- For multiple CV writes, programming may continue for some time after the "OK" appears.
- This has been tested with NCE and SPROG systems. Some DCC systems may need extra code,
please advise if your system doesn't work.
- Some accessory decoders do not cope well with closely spaced commands
and may miss changing some CVs with "Write All" or "Write Changes".
Arnold
- Alain Carasso fixed a missing consist problem with the Arnold 81210 decoder definition (#2938)
Digitrax
- 21MTC HO: DH166MT, SDH186MT, SDXH186MT and Kato N scale: SDXN146K1E, SDXN146K2 and SDXN146K4 definitions added by Marc N. Fournier, completed by Alain Le Marchand (#3057)
Doehler & Haas
- Ronald Kuhn added/updated definitions for several decoders (#2736):
- SD10
- SD16
- SD18
- SD21
- SD22A
- FH05B
- DH05
ESU
- Dave Heap made the following changes:
- Added the ESU SwitchPilot series.
- Added new Product IDs.
- Added Heavy Load and Coast Mode logical functions as per latest firmware for the soon-to-be-released Full Throttle steam projects.
Kuehn
- Ronald Kuhn updated definitions for the N45 and 5Moto decoder familes (#2736)
Lenz
- Alain Carasso fixed the missing function map pane for older Lenz Silver decoders (#2873)
SoundTraxx
- Added OEM decoder definitions for some PIKO G scale steam locomotives (Marc Fournier #2716)
Viessmann
- Added support for the 4557, 4558, 4559 and 4960 decoders (Alain Le Marchand #2842)
ZIMO
- Ronald Kuhn added the MX681 and MX685 decoders (#2736)
- Ronald Kuhn updated German translations for several Zimo decoders (#2736)
Dispatcher
- Modify auto allocation operation of Dispatcher to allow via a selection made when creating a train
that will override the default practice of allocating no more than three sections in front of the train.
The override allows Dispatcher to allocate all the way to the designated end
block barring other criteria such as occupation. (Jason Janzen)
Layout Editor
- George Warner improved the handling of the Turnout circle to make it easier to hit. (#2851)
- Sonnys Hansen improved the Danish translation
Operations
- The Timetable table order can now be readjusted if needed.
Simply reorder the table and the next time you open the Timetable
window, the table order will be restored.
Roster
- Proper display of new Roster Groups in the DecoderPro main window was fixed.
- The last modified date for Roster Entries can be correctly sorted. In some cases,
the Roster Entry may need to be opened and saved again for this to work.
- Roster Entries are now saved with ISO 8601 formatted dates.
Turnouts, Lights and other elements
- The pane to create new objects was modernized, with tooltips and a handy JSpinner to set the number of items to add (see the Turnout Add/Edit help.
- The Cmd column in the Turnout table was renamed State to align with the other tables.
Signals
Signal Heads
- In the Signal Heads table, pick any of the valid Appearances from a combobox instead having to follow a fixed order.
This change aligns the interface with the Signal Mast table. For developers, this interface element is reusable.
- The panes to add or edit a Signal Head were updated, with more tooltips and (translatable) warning dialogs.
Now uses JSpinners to set IDs for a DCC Head.
Translators, please review your language.
- The function of Turnouts in use as outputs for a Signal Head are now stored as localized Comments in the Turnout table.
Existing comments are retained until they are manually deleted, after which a change in outputs will be stored.
- After adding a new Head, the Name fields on the pane are emptied to help prevent using the same name again and receiving an error.
- Adding a Bachmann Acela Signal Head now requires an active system connection to guarantee the proper ID.
- The intention of the Home/Distant choice for a MERG head is explained in a clearer label and the items to choose from are adaptable per language.
Signal Masts
- Per user request, the Output Matrix Signal Mast connection can be configured using up to 6 outputs instead of 5.
- Editing of Signal Mast Logic from the Signal Mast Table has been improved. The Signal Mast Pairs panel refreshes to immediately show newly created source-destination pairs. The lists to set up Control items and their Conditions now look and operate like real comboBoxes.
Signal Groups
- Configuring Signal Groups from the Signal Group Table has been fixed and a German translation added. The underlying code and xml were cleaned for readability and internationalization.
NX Entry/Exit Logic
- Andy Brown and Peter Ulvestad fixed a problem with storing multiple NX pairs
Internationalization
- Expanded translations in Catalan, Danish and German for many of the tools.
- Starting JMRI after changing Locale (language) gives a more informative warning in the Console.
- The first Dutch translation of the main PP interface, Preferences and Throttles was written by Egbert Broerse. He would like to receive feedback from Dutch language users on the chosen wording and which modules to add next.
Virtual Sound Decoder
- VSDecoder Manager can now be auto-launched at startup through preferences.
- New location for sound sets was added at https://github.com/JMRI/vsdecoder.
- New steam engine sound set Class64.vsd was added (provided by Klaus Killinger).
Miscellaneous
- For those connections which have the ability to monitor the bus traffic, the
feature to save the monitor data to a file has been improved. If the tool is
unable to access the log file, a dialog box will appear to inform the user of
the problem. Monitor log files will default to be placed in the configuration
profile directory, where in some cases, previous versions of JMRI could attempt
place the log file in the program directory. As before, the user may select
a directory other than the configuration profile directory for storing the
log file. This improvement affects the monitoring tools for many connection
types.
- JMRI applications will not load a panel file that fails XML validation; an error will be
shown that explains the error, allowing it to be fixed using an editor.
(#2719)
- JMRI no longer supports the portable paths
resource:
or file:
that
were deprecated in JMRI 2.13. When loading a panel, an error message will be displayed
if the panel contains a path that starts with resource:
and the panel will
not load until changed using an external editor. Paths starting with file:
cannot be automatically flagged because JMRI allows file: URLs.
(#2719)
- If a connection fails to initialize correctly, startup actions will not be run. An error
message will be displayed reading "Unable to run startup actions due to earlier failures."
(#2799)
- The WiThrottle window can now be resized so that when several client devices are
connected, it's possible to adjust the list to see all of them without needing to scroll
(#2857)
- Added some additional tools for decoding and displaying NMRA DCC packets to the
NmraPacket class.
- Added
support for reading older panel files
that use deprecated conversion classes
- Behind the scenes, a lot of error handling and code documentation was added.
- Klaus Killinger improved the sound support.