Release Notes for JMRI 1.7.3 test release

Date: February 26, 2006

From: Bob Jacobsen

Subject: Test version 1.7.3 of JMRI/DecoderPro is available for download.


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 versions that contain long-awaited new features, particularly improved support for Tsunami and DIgitrax sound decoders, better configurability for panel graphics, and significant internal updates. Some of the changes involved are quite extensive, and may require a certain amount of experience before they are working well. Therefore, this test version should be considered experimental.

New warnings for this test version:

The "LocoNet Hexfile" protocol name in the preferences has always been a poor name. This is changed to "LocoNet Simulator" to better reflect it's purpose. Some documentation may still contain the old name.

On Mac OS X, JMRI now uses Java 1.4 if it's available. This may result in some small cosmetic changes, but should resolve several bugs in the user interface. Also, Mac OS X is now being distributed as a disk image (DMG) file. To install it, double click on the file to mount it, and then drag the resulting JMRI folder to the Applications folder.

For Lenz users: There are now separate choices for each of the serial-based Lenz Computer Interfaces (i.e. the LI100,LI100F,LI101F). For this release, to aid in backwards compatibility, all the interfaces currently have the same options as far as port speed is concerned. Eventually, the port speeds which are not supported by each interface WILL be removed. If you're using one of the interfaces listed above with this release, please check your configuration and select the correct device-specific option. There is no impact for LIUSB users with this change.

Older warnings from this series of test versions:

We have added additional information to the roster files in this version to help properly handle short/long addressing in systems that allow low addresses (e.g. 65) to be either short or long addresses. The only current system we support that has this capability is NCE. If you have an NCE system, and you have locomotives with addresses of 127 or less, you should open their roster entries in DecoderPro, check that the proper short or long address is selected, and save them again.

Indexed CVs will not be included in any printouts for this release.

QSI CV 56.129 Engine ID Access is not supported in this release.

While programming QSI decoders in Ops mode, it is necessary to disable CV 62 QSI Control (Verbal Acknowledgement), otherwise the writes will fail.

QSI CV 64 CV Numeric Verbal Readout currently does not work for indexed CVs.

Download links:

Please use these links for downloading, including the "?download" at the end. That adds to SourceForge's advertising statistics, which makes them happy to host our stuff.

Mac OS X:



MacOS 8/9 "Classic":

Changes since test version 1.7.2:

An initial implementation of the TMCC protocol for Lionel trains is available

JMRI can now act as an LbServer to provide LocoNet access to remote client computers running JMRI or non-JMRI programs that use the LocoNetOverTCP protocol. To use this, configure your JMRI program to connect to LocoNet in one of the usual ways, then select

An initial definition for the new Digitrax "SFX" sound decoders was added, in particular the GE EVO model now shipping

John Harper and Bob Jacobsen updated the serial infrastructure to improve response time for NCE, C/MRI, and perhaps others on (some) Windows systems

John Harper added support for asynchronous AIU messages from NCE command stations, to improve sensor response time

On Mac OS X, the programs are now distributed as a disk image (DMG) file. To install them, double click on the file to mount it, and then drag the resulting JMRI folder to the Applications folder.

Mark Schutzer updated the Lenz Gold definition to include the "mini" version.

David Duchamp fixed a bug that caused problems when the serial port that the program was expecting wasn't available at startup.

Bob Jacobsen has updated the PRICOM Pocket Tester support. There are now both "monitor" windows to see the time history of the data as it comes from the unit, plus a "table" that allows you to see the most recent packets of a particular type or for a particular address. You can also see the monitor for just the packets to a particular address. It's also been internationalized, so it would be easy for somebody to translate it to another language. When using the version 1.5.1 or later firmware in the Pocket Tester, there is also a "DCC Status" window that provides continuously updating information similar to the Pocket Tester's summary displays.

Paul Bender has fixed a problem that would sometimes make the speed slider not appear in the throttle tool. He has also improved the way that a control-click (right click, etc) in the speed section of the throttle gets you access to the alternate method of setting speeds.

Bob Jacobsen updated the startup error handling so that the preferences window is again showing if the pre-configured connection fails. (Also in 1.6.1)

At the suggestion of John Harper, AbstractAutomaton is now using notifyAll() instead of notify(). For more information, see recent discussion in jmri-developers mailing list.

PanelPro by default now makes the background image for new panels not display the tooltip, and not be movable. All other icons continue to show tooltips and be movable. The popup menu for all items lets you override these behaviors. The "Fixed" item if checked keeps the icon from being moved. The "Tooltip" item if checked (the default) will display the tip if the mouse dwells on the icon. If you have an existing panel, you can update the background image options via the popup menu and store it again.

Turnout, sensor and signal icons on panels can now be set "disabled" via their popup menu, in which case clicking on them doesn't change the layout state.

Sensor icons on panels can now be set "momentary" via their popup menu, in which case they set the sensor ACTIVE when the mouse goes down on them, and INACTIVE when the mouse is released. This models a momentary button in real life, and is useful for e.g. putting an icon on a screen to trigger a route.

On Linux, the startup scripts are now called "DecoderPro", "PanelPro", etc, with no file extension. (The old ones were left in place) Also, they now use the Bourne shell, which is more generally available than C shell. (david zuhn)

Soundtraxx DSD definitions now properly show function mapping for functions 7 and 8 (Don Mitchell, Robin Becker)

John Harper updated the Throttle tool so that (optionally) the locomotive speed will continually change as you move the slider. Previously, it only updated when you released the slider. This is disabled by default. To enable it: right click on the speed control panel. This brings up a menu which only has one choice (Properties). After you click on Properties you get a new window with radio buttons to select the speed control in use and a checkbox to enable or disable the slider tracking.

Alfredo Sola updated the Spanish translation

Paul Bender updated the consisting tools to allow specification of basic (short) or extended (long) format addressing for systems where those overlap, e.g. NCE

John Harper fixed bug 1257961: Serial replies containing negative byte values display them with an extra leading FF

John Harper made the waitMsec() function more reliable

David Duchamp added code to deal with null pointers resulting from various startup errors.

Michael Mosher provided new TCS decoder definitions

John Harper fixed a bug that would crash the symbolic programmer while changing values (you'd get an "index out of range" error)

Javadoc fixes, as usual

John Harper added a new feature: Automatic retry on turnout operations. If activated (see the Turnout Table), it will retry a turnout either until the feedback shows it's moved to the proper place, or (for turnouts without feedback) some fixed number of times. There's also a new menu item in the TUrnout Table for configuring this.

XPressNet monitor now also shows broadcast feedback response (Paul Bender)

Update of the handling of alternate number of speed steps in XPressNet (Paul Bender)

Add cut, copy, paste items to main Edit menu

Add "composite" variable type to DecoderPro, allowing one selection to set multiple variables to specific values

Added showEmptyPanes attribute to DecoderPro programmer and decoder definition files. If "yes", the panes will be shown even if they contain no variables. If "no", panes will only be shown if they include one or more variables. "default" leaves the option as it was. The application's setting is overridden by the decoder file setting, which in turn is overridden by the programmer file setting.

Allen Byrne did a massive clean up of the code, including removing extra import statements, updating deprecated method calls, and correcting some references to static methods.

Dennis Miller adjusted the coloring/shading on the speed table printouts to make them more visible.

Bob Jacobsen fixed a build bug that prevented the Cornwall application from running under the debugger

Paul Bender updated feedback support for Lenz turnouts. Now includes support for 3 feedback modes: 1) Direct Mode, which ignores feedback from the layout. 2) Monitoring mode, which interpretes feedback from the layout, but, ignores the motion complete bit of turnouts with feedback. 3) Exact Mode, which will leave the feedback mode in the inconsistent state until the motion complete bit is set. In this third case, the motion complete bit is only monitored when the computer sends a request to operate the turnout. For reference: Exact Mode behaves in the same manner as the mode previously selectable as Direct mode. Monitoring Mode is the new default mode.

Bob Jacobsen added a new method to the StringUtils class to make it easier to dump byte arrays to log messages

Bob Jacobsen fixed a bug in the SPROG firmware upload tools so that the file open dialog works properly on Mac Classic

Paul Bender added consisting documentation to the web (not really a 1.7.3 release item, but it has to go somewhere!)

Bob Scheffler and Bob Jacobsen added a tool to download new firmware to PRICOM products, including their "Pocket DCC Tester" and "DreamPlayer".

Bob Jacobsen added a tool to send download packets over a LocoNet connection.

Michael Mosher provided a new decoder definition for the TCS T1 ver 28-33 decoders.

Michael Mosher updated the TCS X-series decoder definition.

Bob Jacobsen improved the LocoNet monitor's display of the "send DCC packet" message, and fixed a bug in it.

Open added to the PanelPro panel editor so that you can decide whether or not the panel window should use space for a menubar. Turning the menubar off gives you a few more pixels for the panel, but without the menubar you can't reopen the editor if it gets accidentally closed.

Throttle F9-F12 should now work on Digitrax systems.

Added size information to a couple more decoder types.

Howard Penny improved the Digitrax TL1 and TF4 decoder definitions.

Howard Penny updated the version numbers (identification fields) for the QSI decoder in a large number of locomotives: Atlas FM wo/Mars, MP-15DC SD24/26; BLI N-W Class A, Pennsy Duplex T1, Cab Forward AC4,AC5 (Reed Switch), ATSF 3800 Class 2-10-2 2-10-4, C-O T1 2-10-4, Great Northan 700 SP-S, M1A 4-8-2, N-W J 4-8-4, NYC S1b 4-8-4, PRR J1 2-10-4, PRR K4 4-6-2, E3/E6 wo/Mars, F7, E8/E9 w/Mars, E8/E9 wo/Mars, GE C30-7, SD40, SD40 (Reed Switch), SW7/NW2; CHC RS 18; Eureka NSWR 620/720; InterMtn F7; Life Like USRA 2-8-8-2, 2-8-4 Berkshire w/Mars, 2-8-4 Berkshire wo/Mars, E6 w/Mars, E6 wo/Mars, E8/E9 w/Mars, E8/E9 wo/Mars, GP9, GP20, RS27 ALCO, SW8, U28B/30B, U30B; P2K USRA 0-8-0; Walthers 0-6-0 Switcher, GP30.

Signal logic threads now show the name of the relevant signal head in the thread monitor so you can kill the right one.

Added a decoder definition for the Tsunami decoder from Soundtraxx. Fix a bug in the function-mapping display that improperly limited the number of columns (this had no effect until the Tsunami, as there wasn't a decoder that needed so many)

Added the DCS100, DCS200, DB150 to the list of possible command stations when configuring a Loconet connection. When configuring a direct-serial connection to an Intellibox, you are no longer asked about which command station to configure.

Added the MRC AD322 decoder.

Ken Weygandt contributed a set of panel icons for turnouts tilted at 45-degrees. They're in the TrackSegments directory under the USSPanels directory.

Added a Loconet tool to configure the Digitrax DS64 board.

David Duchamp added an optional delay between the turnout commands when setting a route. You can set the value in the Route definition panel.

Fixed some minor XML issues in a few decoder files that were preventing strict validation. No user impact expected.

Paul Bender updated the organization of the Lenz communications code.

Added a demo script to show how to control a Digitrax PM4 via pressing a button.

Decoder definition file for the RR-Cirkits Tower Controller board

Updated the AbstractAutomat class to provide additional utility methods for users writing scripts.

Graeme Brown figured out how to improve memory management on MacOS "classic", making it less likely that DecoderPro will run out of memory with complex decoder definitions. This is not a perfect situation, however, and machines with less than 96MB of memory may still not be able to open the largest definitions.

Paul Bender made sure keyboard commands only increment by 1 step (or one multiple of 10 steps). Also, made sure keyboard commands don't allow scrolling past the ends of the JSpinner used for the speed step display.

Dennis Miller added a preview option to the print dialogs and fixed a print formatting error.

Minor improvements to the error reporting when a problem is found with a decoder definition file

Fixed bug that prevented ESU LokSound version 3 decoder definition from working. Symptom was that saved roster info might not be readable after being stored.

New decoder definitions for the Team Digital SIC24, SMD2, SMD8, SRC8 boards

Added definition for MRC AD330 decoder

Fixed a bug in the TCS_Tx_v28 decoder definition that prevented the 2nd lighting option from showing

Michael Mosher updated the NCE_D13SR_TC definition to add definitions for D12IP, D18SR, B18SR-PSC, N14SR, N14SRP, N14IP, Z14SR, Z14SRP decoders. He also updated the D15SR to have 6 functions, and added factory-reset information.

Internal change: Defer TurnoutTableAction's access to the TurnoutManager until actually needed; this speeds startup

Update manifest in jar file so the application is again double-clickable

Fix bug that caused crash if decoder definition file didn't define the usual address variables

Added fast timeout to LocoNet serial connections to get around some XP systems using a 100msec (!) read timeout

Speed up CMRI polling on Windows XP machines that have a long default timeout

Added support for LocoBuffer-USB

Fixed timeout problem on Windows XP that would cause messages to wait for a 100msec boundary to be forwarded; this would cause frequent "Port not ready" messages and various related confusions.

Change how URI/URL for the configuration file DTD is resolved. Rather than use the Java 1.4-specific code in FileUtil, now use a relative path. Note that FileUtil is still in use for locating sounds and the help files; we need to check that those still work!

Fixed a bug in EnumVariables that would cause CV values to to overwritten while reading from a file if CompositeVariables & EnumVariables were defined in a particular order.

Dennis Miller added Print and Print Preview options to the Sensor, Turnout, Signal, Memory, Reporter and Route tables. Now you can print these to document your layout.

Updated the MRC "14/28 speed step" definition so that DecoderPro would identify a couple more models.

David Cuthbert provided info so we could add the TCS M1P-UK model as an identified decoder.

Michael Mosher updated the version numbers for shipping TCS decoders so the identification would be more accurate.

Michael Mosher added the TCS AMD1 and MP-15N decoders

Bob Jacobsen added a tool to make it easy to set the LocoNet ID, for example if you have multiple radio layouts at a show

Added a tool to configure LocoNet command stations. Note for this to work properly, you need to have selected your command station type in the program preferences.

Dennis Miller updated DecoderPro so that when you double click to select a decoder type it opens the programmer (RFE-1094360)

Dennis Miller fixed a bug that prevents a throttle saved with no selected address from being reopened (Bug-1424366)

Peter Brandenburg updated the definitions for the CT Elektronik DCX Series (late) decoders: DCX74D, DCX74DV.

Ken Weygandt contributed customized versions of the Soundtraxx files to adapt to the individual steam models

Dennis Miller added power control and indication to the menu on throttle windows

Peter Brandenburg provided definitions for the Kuehn N025, T125, T145 decoders

Paul Bender added support for XpressNet connections via the ZTC Controls ZTC640 adapter

Dick Bronson contributed a new set of icons for USS CTC panels. They're available in resources/icons/USS, and are organized in much more convenient way than prior icon sets.

Dennis Miller provided a preliminary fix for Bug 1333359, where the Turnout Table couldn't be resized under certain circumstances.

On Mac OS X, JMRI now uses Java 1.4 if it's available. This may result in some small cosmetic changes, but should resolve several bugs in the user interface

Fix for problem flooding the LocoNet command station when sending lots of ops-mode writes

"LocoNet Hexfile" protocol choice has been renamed "LocoNet Simulator". Some documentation may still use the older name.

Signal icons on panels can now display graphics for dark, flashing red and flashing green aspects. The Signal Table lets you step through all seven combinations, though the icons themselves just use the main red/yellow/green combinations instead of the flashing ones too.

Many more JUnit test cases have been added to the code; we're up to almost 700 now!