Release Notes for JMRI 4.11.4 release
Date: March 17, 2017
From: Bob Jacobsen
Subject: Test Release 4.11.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 test releases.
We expect this series to end in the next JMRI production release around the middle of 2018.
(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.
Required Migration StepSince JMRI 4.7.4
JMRI was updated in JMRI 4.7.4 to use a new serial library. Depending on your exact
circumstances, you may need to do some migrations:
- If you are using JMRI on Linux or Mac OS X and are updating from an older JMRI version,
you must open the JMRI preferences and make sure that the selections are
correct for your serial device(s). Be sure to save the changes.
In general, previous versions used serial device names like
"/dev/cu.usbserial-ABC123FG". This version will generally omit the prefix, and
use serial device names like "cu.usbserial-ABC123FG".
(If given the choice if a name starting with "tty" and one starting with "cu",
pick the "cu" one). See the before and after images to the right.
-
If you are using Linux and have previously used the "JMRI_SERIAL_PORTS"
option to make sure your serial device is visible to JMRI, you'll have
to change that to use the "purejavacomm.portnamepattern" option instead.
See the
JMRI Linux install page for more information.
-
If you have your own JMRI scripts to access a serial device, you'll have to update
their library references:
- Any
import gnu.io
statements will have to be replaced by
import purejavacomm
statements.
- More generally, any reference to
gnu.io
, e.g. a reference to a class like
gnu.io.SerialPort
, statements will have to be replaced by
a reference to the corresponding
purejavacomm
class.
Known problems with this release
New warnings for this release:
- Since JMRI 4.11.4
The additions to Layout Editor in JMRI 4.11.4 mean that
files containing Layout Editor panels written by JMRI 4.11.4 or later will fail a
validation check in JMRI 4.11.3 or earlier.
If you back-date your JMRI version and need to to get past this, please
bypass validation.
- Since JMRI 4.11.4
If you are running a local website with a copy of the JMRI content, as
described here,
please repeat
the "setSymLinks.sh" step
near the bottom of those instructions
after installing JMRI 4.11.4 (or later). This will make some new formatting available
on your local site.
- 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.
Older warnings
See the
JMRI 4.10 release note for more warnings predating the 4.11 development series.
These may be relevant to you if you're updating from an earlier version.
Since JMRI 4.11.2
The system connection preferences (i.e. hardware preferences) are now
enforcing the correct form
for system prefixes: One upper case letter,
optionally followed by a number (one or more digits, e.g. "L12").
Existing prefixes in existing configurations are unchanged, but
new ones will have to have the correct form.
Since JMRI 4.9.4
Due to changes in the capitalization of some method and property names, some scripts may fail until
adjusted to use the new capitalization. The Javadocs for any
JMRI class will list the correct capitalization.
Since JMRI 4.9.4
For Windows users only: JMRI 4.9.3 (and all later) has a new
version of the "LaunchJMRI.exe" program. It's used to set options as
JMRI is starting up, and is a completely normal part of JMRI. Because it's
new and different, however, your anti-virus program may reject it.
You might get a message about "file removed" or "file quarantined" or similar
and then JMRI might not start.
The solution is to make sure that your anti-virus program doesn't interfere
with JMRI's installation and running. There are so many of those, unfortunately,
that we can't really provide useful instructions beyond that.
Since JMRI 4.9.2
JMRI saves the Uhlenbrock connection's "baud" rate as an Internationalized string,
and, upon loading a configuration profile, requires an Internationalized "baud"
rate in the .XML file. JMRI will fail to properly configure the serial port if the
"baud" rate from the configuration profile does not match one of the baud rate
strings for the current Internationalization "locale". If you experience problems
where JMRI start-up of a Uhlenbrock-based connection does not configure the serial
port, it may be necessary to edit the connection's preferences, select the
appropriate "baud" rate, save the connection. This updates the configuration profile
XML file to use one of the "baud" rate strings expected by the Uhlenbrock-specific
code in JMRI. It is necessary to re-start JMRI for this change to take effect.
Since JMRI 4.7.6
If you're having trouble getting your DCC programmer to work, try
checking that the "Defaults" under "Preferences" are set to your
hardware system.
The reason: This version of JMRI (and all later) provides more options for
"default systems": If you have multiple sets of hardware attached, which
should be used for throttles, for programming, etc. JMRI tries to
guess the right settings for these when you upgrade to this version, but
apparently it sometimes gets that wrong (we haven't been able to track
that down yet). Setting them manually fixes any wrong guesses.
Since JMRI 4.7.3
This release will not start cleanly if installed over certain earlier versions of JMRI (the Windows installer ensures
this is not an issue). Remove the JAR files jackson-annotations-2.0.6.jar, jackson-core-2.0.6.jar,
and jackson-databind-2.0.6.jar from the lib directory within the previous installation directory to resolve
this.
Since JMRI 4.7.1
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; these will have to
be changed manually.
Since JMRI 4.7.1
When loading a panel file, JMRI applications now check the file's syntax and contents.
This process is called "XML validation"
If validation fails, an error message is shown
that should explain the error, allowing it to be fixed using an editor. (The
explanations remain a work in progress.) If you have a problem loading a
panel file, please
- Configure your JMRI startup to first run the
jython/TurnOffXmlValidation.py
script which will suppress the error. This script needs to be run
before your panel is loaded.
- Write out a new version of the panel file (after saving a backup!)
- Use that new version from now on.
- And drop use of the jython/TurnOffXmlValidation.py script.
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.
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
ESU
- Direction changes when running at speed no longer set speed to zero. For further information see:
PR-4945,
PR-4964, and
PR-4965.
ProTrak (Grapevine)
- Egbert Broerse added a Grapevine Simulator
connection. Under Additional Options, users can set to receive Node initialization reply messages.
SPROG
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.
New / Updated decoder definitions
- Wouter from Thurgau, Schweiz added Dutch translations to the NMRA CV tabs
LDH
- Osvaldo Hojvat provided definitions for several
LDH
decoders: models 4F1.5 v27, 2F-7F v26, 4F1.5 v55
and LDH 4F1.5 v55 Motor y Sonido
QSI
- Dave Heap added the FX-U 40 Class (Eureka).
Umelec
- Wouter from Thurgau, Schweiz updated the ATL2051, ATL2064 and ATL2066 definitions.
ZIMO
- Alain Carasso improved the definitions of CV372-399 in the Zimo decoders
Layout Editor
- George Warner made a number of changes and improvements to the Layout Editor.
- Fix a problem with turntable rays
- Change drawing options for the track lines
- Add new kinds of decorations to points, tracks and track ends
- Fix an issue with unnecessary anchors
- Draw tracks as tracks!
For more information, please see the
4.11.4 sections in the documentation update
by Dave Sand, and the individual change notes:
PR-4386,
PR-4430,
PR-4433,
PR-4457,
PR-4513,
PR-4530,
PR-4553,
PR-4554,
PR-4578,
PR-4594,
PR-4613, and
PR-4735.
Also look at
JMRI-4.11.4.pdf
in the JMRI Users group files area. It provides an overview of the changes.
Logix
- Variable State and Action references to Entry/Exit Pairs now use the Entry/Exit system name.
This prevents broken references caused by Entry/Exit user name changes. The conversion may
find missing references which will be displayed in the system log.
The affected Variable State or Action row will be deleted.
- Logix may now be shared across different Locales (languages) without losing the Mixed logic
definition, e.g. english "(R1 or R2) and R3" will display and work as "(R1 oder R2) und R3" in german.
To apply this on existing Logix Conditionals, open each in the original Locale and click "Update" to update
the logic to the universal format. Don't forget to save the new configuration to a (new) xml file.
Control Panel Editor
The following problems were fixed in the Item Palette:
- Text panel lost afte 2nd opening of Palette
- Background color chooser disabled after 2nd opening of Palette
- Multiple family button panels displayed after adding icons
- Inability to create new icon family sets for IndicatorTO items
- Drag icon disappears after editing existing IndicatorTO icons
- Panel background colors not shared among all Palette tabs when editors are changed
- Incorrect placement of dragged items to a zoomed panel.
Roster
- John O'Duffy improved low speed operation during speed profiling.
- The Loco Address label on the Roster Summary Print-out was corrected.
Turnouts, Lights and other elements
-
Steve Rawlinson improved the block tracking:
- When a block becomes occupied JMRI attempts to copy the value of an adjacent occupied block.
- When a block's sensor becomes active 'out of nowhere' JMRI restores its previous value,
if there is one. This makes sense but only in the following circumstances:
- if the block went unoccupied very recently
(to allow for sensor flicker or other momentary loss of contact)
- if power to the layout has just been restored
Otherwise, the new value of the block is probably not the same as it was previously.
- Previously, JMRI always set the value, but in this release that
changed such that the last value is not restored unless one of
the above criteria are met.
It is better, particularly on automated layouts,
not to have a value than to have the wrong value.
Scripting
- YetAnotherAutoTrain.py — Another script for running trains that
uses English like phrases to describe the train actions.
- Scripts that access the Connection List may need to be modified. An
AttributeError may occur: javax.script.ScriptException: AttributeError:
type object 'jmri.InstanceManager' has no attribute 'configureManagerInstance' in
<script> at line number 14. Use connectionList =
jmri.InstanceManager.getDefault(jmri.jmrix.ConnectionConfigManager).getConnections()
Signals
NX Entry/Exit Logic
- The Entry/Exit system name now complies with the system name standard.
The migration is automatic.
Warrants
- Fix default MaxBlocks from Preferences now being used in the create warrant form.
- when running, a warrant will not allocate or throw turnouts beyond signal's stop aspect or
past an occupied block. Once cleared to proceede, the warrant will set the turnouts to
continue its route
- A hidden column was added to the OBlock table enabling a block to be allocated/deAllocated
to a warrrant. (Reminder- "right click" the column header to make columns visible)
Web Access
Internationalization
- Petr Šídlo added to the Czech translation
- Logix may now be shared across different Locales (see note under Logix).
- Translations files for Logix and Conditional editing have been cleaned up. Users might see some english
phrases. Translators please review.
Virtual Sound Decoder
- Klaus Killinger added functionality to configure a throttle
button for starting and stopping an engine.
For more information, please see the
new VSDecoder documentation page to this option.
Miscellaneous
- Fixed a problem where the JMRI installer for Windows
was leaving some old libraries in place,
which could result in problems when installing JMRI 4.11.1 through
4.11.3 over older versions (as opposed to a remove-and-install)
on Windows. This didn't affect the macOS Linux versions.