Release Notes for JMRI 3.10 release
Date: December 20, 2014
From: Bob Jacobsen
Subject: Production version 3.10 of JMRI/DecoderPro is available for download.We are very pleased to announce that the 3.9 series of JMRI test releases has resulted in a version that's good enough to be recommended for general use, including by new users. We're therefore making that version, "Production version 3.10" available for download today.
JMRI 3.10.1 includes a bug fix for MRC Hardware.
This is the last JMRI production or test version that will work with Java 1.6. To use any later JMRI test or production releases, you'll have to update the Java on your computer to Java 1.8 or later. This version has been tested on Java 1.8, so you can do the Java update now if you want to.
The XmlIO web service has been deprecated and is scheduled to be removed after JMRI 3.12 (July 2015). All users and developers who are relying on direct access to the XmlIO API are recommended to begin using the JSON API. inControl web throttle users are recommended to begin using webThrottle instead, or to plan on investing in devices that can support webThrottle, WiThrottle for iOS, or Engine Driver for Android.
Several methods in the InstanceManager class have been deprecated and will be removed after JMRI 3.12 (July 2015). This doesn't affect JMRI users, but if you have your own code that uses JMRI, please take a look at the code and make any necessary changes.
Known problems with this release
This version of JMRI can't program CVs greater than 127 using the MRC command stations. If you use MRC hardware, you should update to JMRI 3.10.1. This is the only change in JMRI 3.10.1, so users of other hardware who have installed JMRI 3.10 (this release) do not need to up date to 3.10.1.
Please use these links for downloading:
Changes since production release 3.8
New / Updated decoder definitions
There's now an "exists" qualifier for use in decoder definition files.
A user-defined pane with the same pane name as a standard programmer pane will replace that pane. (Dave Heap)
Much work on improving the structure of the files, which has resulted in some internal changes.
Improvements to the Italian translation.
Dave Heap made the following changes to the Function Map:
- Added the ability to specify (f) or (r) suffixes for functions other than FL (see the Function Map page).
- Added auto-generated tooltips for checkboxes (see the Function Map page).
- Unused rows or columns are now automatically suppressed.
- Increased flexibility of column naming, including the ability to suppress display of a column (see this Javadoc page).
- Improved the warning displayed in the ESU Function Map pane if using the Mac OS X and Java 1.6 combination.
Alain Le Marchand made the following changes:
- Function decoder TF4 : added a note on pane that CV62 and CV63 values are opposite to what Digitrax documentation writes, and that CV63 is inoperative in fact.
- Added N Scale Intermountain Board Replacement DN166I0, DN166I1A, DN166I1B, DN166I1C, DN166I1D, DN166I2
- Added DN126M2, DZ146IN
- Fixed sound selection for SDH166D/SDN166PS
Added Digitrax SFX006 & DN166I2B definitions (Alain Le Marchand)
Doehler & Haass
Added Doehler & Haass DHF250 definition (Alain Le Marchand)
Pierre Billon improved the Doehler & Haass FH05A definition.
Added CT Elektronik DCX33 and DCX74 (v26) definitions (Alain Le Marchand)
Alain Le Marchand added N12K0a and N12K0b
Fixed Kuehn N025/T125/T145 definition (CV55) and refactored definition file and panes (Alain Le Marchand)
Alain Le Marchand made the following changes:
- Extended the Soundtraxx Tsunami Function Groups Exchange feature (created by Dave Heap) to Bachmann Sound Value decoders
- Added Bachmann HO Sound Value EMD GP7, SD70ACe, GEVO ES44AC
- Added Walthers Proto HO Metroliner, E7A, GP20, GP30, SD7, SD45, U28B/U30B GN,MILW,NYC, USRA 0-8-0
Added Soundtraxx Tsunami SoundCar DSD definition (Alain Le Marchand)
Updated (Soundtraxx) Bachmann SoundValue for SD70ACe & GEVO ES44AC. Added GG1 (Alain Le Marchand)
Added Soundtraxx Tsunami definitions for:
- Bowser PCC Streetcar. Can be found in the "Tsunami Diesel Bowser OEM" family (Alain Le Marchand).
- Diesel TSU-IM1000 (828070, 828071, 828074), TSU-GN1000 GEVO-12 (828059), TSU-KT1000 P42 (828068) (Alain Le Marchand).
Robin Becker updated the IO Action options in the Tam Valley Quad LN_S decoder definition.
Robin Becker updated the Tam Valley Depot Quad-LN_S stationary decoder to add a Reset menu item when using the Service Mode programmer.
Added Uhlenbrock Sound Module 32300 definition and updated 32100 (Alain Le Marchand)
Added MyLocoSound DCC decoder definitions (Alain Le Marchand)
Added definitions for Qdecoder accessory and function decoders: F0-4, F0-8, F0-4+, F0-8+, Z1-8N, Z1-16, Z1-16+, Z2-8N, Z2-8, Z2-8+ (Alain Le Marchand)
Added definitions for Digirails (Digikeijs) DCC LED bar DR80010 (Ronald aka ROn30)
Alain Carraso added definitions for the Trix Glasscar 22191 and BB12000
Nigel Cliffe added a definition for the Hornby TTS
Team Digital provided updates for the CSC and SHD2
- Code improvements to handle some special cases in the TCS WOW decoders
- Lolke Bijlsma provided a definition for the Shine Plus series from Train-O-Rama.
- Pierre Billon updated Doehler and Haass definitions, adding several versions for the SD18A combo sound decoder, SD21A combo sound decoder, and the SH10A.
- Xavier Chazelle provided a definition for the N scale Fleischmann "Leig einheit" F830681 double unit van equipped with a Fleiscmann specific dual decoder for opening or closing doors
- The TCS WOW decoder definitions received a lot of attention from M Mosher and others
- A problem in the QDecoder ZBasic definition was fixed.
- Decoder definitions can now be written for accessory decoders that use accessory ops mode programming. See the xml/decoders/0NMRA_accessory.xml file for an example. This is new support which needs more work and testing. If you have one of these decoders and want to help, please contact us.
- Peter Ulvestad fixed some spelling errors in BLI Blueline decoder definitions.
- Fixed a problem with addresses in some older TCS BEMF decoders
- Michael Mosher fixed a CV246 bit label in the BLI Blueline Paragon Steam definition.
Signaling, including new/updated signal definitions and icons
Egbert Broerse improved the signaling help.
The AAR-1946 and B&O-1957 signal system definitions had some internal problems fixed. This shouldn't cause any problems for people using them, but we can't be 100% certain. If you're using these, please check to make sure your signals are still working OK, and let us know if they're not.
Blocks now have a UNDETECTED state to represent a block that's not connected to a Sensor.
The default signal logic treats this an unoccupied, so that a train can be cleared into
an undetected track.
Custom signal logic can use this to handle special rules for unsignaled sidings, etc.
By default, this is similar to the behavior of JMRI 3.6 and before. JMRI 3.8 treated blocks without a connected sensor as occupied, so that trains could not be cleared into a block if there was no sensor configured in the block.
- Suzie Tall provided a new CFL-2014 signal system for Luxemburg to complete the BeNeLux set.
- Additional icons in the USS series
- Fixed a problem with the Approach aspect and diverging in the basic signal set
Hardware / Systems
LocoNet: no longer ignore slot responses that don't immediately follow a slot request. Other hardware can insert messages, which were causing lost acquisitions in software throttles. (Steve Todd)
LocoNet: if no response to slot request, retry, then call failure method if still no response. Handles Slot Max error, for example. (Steve Todd)
LocoNet: Configure Duplex Group tool now operates correctly in JMRI profiles which have more than one active LocoNet connection. (B. Milhaupt)
MERG: attempt to resolve the throttle allowing full range of long addresses. It was not correctly processing the long/short option for some address values. (K. Cameron)
MRC/GaugeMasterInitial Support has been included for the MRC/Gaugemaster Prodigy Advanced system (Ken Cameron & Kevin Dickerson) Supported features include:
- Turnouts Control
- Throttle Control
Some improvements to the support for MRC command stations via the Prodigy USB computer interface.
OpenLCBThe OpenLCB support has been updated to the most recent version of the specifications. The most noticeable effect will be faster and cleaner operation of the configuration (CDI-using) tools.
The current implementation has been refactored to better facilitate the support of additional protocols. Whilst this should not affect the existing CORE-ID readers, it may be necessary to update connection configuration with the correct protocol. (Matthew Harris)
Initial support has been added for RFID readers that use the Olimex protocol. Many thanks to George Bowler for testing with real hardware. (Matthew Harris)
Initial support has been added for RFID readers that use the Parallax protocol. (Matthew Harris)
Supports the Roco Z21 command stations via it's built in network connection.
Initial support has been added for the Roco Z21. Current support includes XPressNet tunneling only. Thanks to Bill Lang for testing with real hardware. (Paul Bender)
Added support for Sensors on the TAMS System. The Tams MC must be running firmware 1.4.7 or above for s88 to work correctly. (kd)
Zimo now Supporting the Binary Protocol v5 for the MXULF and tentatively on the MX10 for (K Dickerson)
- Service Mode Programming
- Track Power Control
- Throttle Control
Dan Boudreau made the following changes to operations:
- Added the ability to print or preview a single location from the "Edit Location" window.
- Alternate track for a spur now works without schedules or custom loads
- Improved manifests tab spacing when using the truncated mode and printing headers
- Some minor improvements in the build report when using the "Detailed" setting.
- Fixed the car and locomotive edit attribute windows when the font size is set to 18.
- Improved how the program deals with the alternate track and car routing.
- You can now add the lead locomotive number to a train's description.
- Updated the help file.
- Improved how the alternate track feature works. You can now use the alternate track feature without schedules or custom loads. Note that if you specify an alternate for a spur, only cars destined for that spur will be placed on the alternate track.
- New feature, random moves for any location in a train's route. In the route edit window you will find a new column labeled "Random" with a menu of 10 items, The default is "Off" or disabled, and there are values between 10 and 100. If you select 10, it tells the program to randomly reduce the number of cars moves at the location by up to 10%. So if you asked for 10 moves, you could get 10 or 9 moves. If you selected 50, you could get any number of moves between 10 and 5. If you select 100, you could get any number of moves between 10 and 0. Be sure and press "Save" after you make your selection.
- New feature, the ability to copy a location. See under "Tools" in the Locations window.
- Fixed a bug where cars out of staging used the same schedule item, even if the schedule was in sequential mode. Thanks to Dave Cochrun for identifying and helping us debug this problem.
- You can now select the type of sort you want directly in the car roster print or preview window.
- The program now prints out the entire location and track name when printing or previewing your car roster. Previously the program limited the number of print characters to 38.
- The column order for the Cars window is now saved correctly.
- Fixed a problem were cars in a kernel weren't correctly redirected from an alternate track. Thanks to David Waraxa for finding and reporting this problem.
- Track comments are now saved to the CSV files.
- Some additional improvements to the train build report. A list of cars that couldn't be routed is now shown at the end of the report,
- Fixed an issue where cars in a kernel in a train departing staging and returning to the same staging track could cause the program to incorrectly report track space issues.
- Added more options and tool tips to the Edit Manifest Text and Edit Switch List Test windows. You can now show the train's name and description with most of the manifest and switch lists messages.
- New feature for interchange/classification tracks, added a "Check Destinations" button to the "Edit Track Destinations" window. When pressed the program will check all car types, roads, and loads that the track services, and will confirm if the destinations selected can also service the same types, roads, and load. Also checks to see if there's a train or trains that can also service the track and the destinations for all car types services by the track. The check stops when the first problem is found.
- New tool for the "Locations" window, "Modify Locations by Car Load". Now you can quickly see and adjust which tracks at a location can accept certain loads. Also show which loads staging tracks can ship.
- Fixed a minor issue when manually placing a car on an interchange/classification track. The program would remember which route the car was previously set out by. The program now clears the last route information when manually placing a car.
- Improved how the program determines where in a train's route to set out a car when manually adding a car to a train.
- Fix a minor problem when using a pool, sometimes the program reported a "Capacity" issue, when it really was a "Length" issue.
- Added the "Show Car Types" tool the the "Trains" window.
- New feature. You can now manually select a background color for a train's row in the "Trains" window. There's also an "Auto" option that allows you to select a background color for when a train is built, build fails, or is terminated. See under Tools in the Trains window "Trains Table Colors".
- Removed in manifest and switch list title any references to "manifest" or "switch list". Now manifests and switch lists text is completely under the control of a user.
On curved track segments the right click popup area is now on the track itself and the chord line has now been removed. (kd)
On curved track segments it is now possible to hide the construction lines in edit mode. (kd)
Removal of a Turnout, Slip, Level Crossing or Turntable, no longer removes the connected track segements. (kd)
It is now possible to join track segments to other items on the panel by dragging the anchor point on top of other anchor points. (kd)
Control Panel Editor
- Minimal size of a shape changed to 4x4 pixels.
- Error detection improve - shapes no longer disappear on invalid data.
- Both line and fill colors may have transparency - i.e. can be made transparent.
- Shapes: Vertices of polygon shapes may be deleted or inserted. Use A or D, or Insert or Delete keys.
- Item Palette: Additional sensor positions can be added (or deleted) to MultiSensors. See Help page.
ScriptsWhen you set a non-default location for script files under the preferences "location" tab, e.g. to put your scripts in a common directory, that location can now be referenced via the "scripts:" portable prefix. This will be applied automatically to pathnames that are selected when defining Logix Conditional Actions and similar operations. Note that if you select a location that doesn't contain the JMRI-supplied scripts, they won't be accessible through the scripts: prefix, but still will be accessible using program:jython/ as a prefix.
There's now a decodeJmriFilename(..) helper routine for use in Jython scripts. See the scripting FAQ for more info.
Fixed some problems in C/MRI-specific sample scripts.
Brett Scott provided updated versions of the DCC Specialities scripts for the Wabbit et al.
- in AbstractAutomaton (used by some scripting) provide for timeout value when throttle not acquired, default to 30 seconds (Steve Todd)
- in AbstractAutomaton (used by some scripts), cancel throttle requests after failure or timeout so that subsequent retries can complete (Steve Todd)
- change AutoDispatcher2.py to retry on acquisition failure or timeout (Steve Todd)
- Two new sample scripts for the LocoNet Find operation: LnFindTransponder.py and LnFindTransponderField.py.
- Script to use fascia button to release/hold signal (e.g. for automated train) HoldSignalForSensor.py(Steve Todd)
- Script to use fascia button to control loco functions (horn, bell, etc.) ThrottleFunctionForSensor.py(Steve Todd)
- Script to check the status of C/MRI node polling, e.g. to detect a powered-off node, and set into sensors for display on panels: CmriNodeMonitor.py
- The Python interpreter is now initialized on demand, when first used. If the former
default behavior of initializing the Python interpreter during application launch is
-Dorg.jmri.python.preload=truein the JMRI_OPTIONS environment variable.
- It is now possible to influence the initialization of the Python interpreter by setting Jython and Python properties in the file "python.properties" in a Configuration Profile directory, or in the JMRI Settings directory.
- A Jython interpreter must be in the Java CLASSPATH. JMRI is shipped with a Jython interpreter, so unless the JMRI installation is modified, one should be available.
Web services, JSON and Web Throttles
- Improved the ability for a JSON or Web Throttle client that has unexpectedly dropped its connection to regain control of the throttle before JMRI automatically stops the train. (Randall Wood)
- JSON or Web Throttle clients that request a throttle for the same DCC address or roster entry will share a throttle even if the supporting DCC system does not allow multiple throttles per address. (Randall Wood)
- Web Throttles only display function buttons that have labels assigned to them. (Randall Wood)
- Fixed error introduced in 3.8 that sometimes prevented a Panel from linking to another Panel (Randall Wood)
- Fixed an issue with very large panels getting truncated (Randall Wood).
- Help file added to the NXWarrant window. See file for details to the following
- NXWarrant algorithm changed to conform to actual block distances. It is strongly recommended to enter reasonable lengths of OBlocks.
- Menu item for layout scale added.
- Overrun bug fixed in NXWarrant when route was a short distance.
The roster table is now smarter about sorting columns if they contain numbers (instead of alphanumeric names).
ARM V7 processor libraries added, so this architecture should work out-of-the-box on Linux.
The format of the mask value in XML decoder definitions is now included in validity checking. The existing decoder definitions had a few problems with this, now fixed.
Configuration XML files (Store Panels, Store Configuration Only) are now written with the line-ends standard on the local machines.
- The Speedometer now handles international format input. If you live in a place where decimal numbers are written like "1,3" and JMRI is set to that locale (see the Locale section on this page), then you can use commas for the decimal mark when inputting the distances. We'll be updating more parts of JMRI to do this in the future.
- Images added to a roster entry are now stored within the roster directory instead of the resources directory. (Randall Wood)
- If multiple profiles are selected, only those actions that apply to multiple profiles are available. (Randall Wood)
- Clicking anywhere on the profile selection dialog cancels automatically starting with the last used profile. (Randall Wood)
- Changed the upload debugging info functions to now use SourceForge mailing list. This should avoid problems previously seen when attempting to access previous mailing list directly. (Matthew Harris)
- Joan de Castro improved the Catalan translation.
- Included the pathname of currently loaded panel file to Context output (Matthew Harris)
- Added the possibility to include both the currently loaded panel file and relevant files from active profile when uploading debugging info (Matthew Harris)
- Added ability to export profile as a ZIP archive (Randall Wood)
- Suzie Tall added a 2009 B&O signal system
- The XML output format has changed from NORMALIZE to PRESERVE. This allows keeping leading and trailing spaces on text in the XML file. This shouldn't cause any problems with existing files, but if it does, please let us know so we can correct things.
- Analogue clocks displayed on panels can now have the colour of their hands changed (Matthew Harris).
- LocoNet turnouts that use EXACT feedback now transition through INCONSISTENT as they move from THROWN to CLOSED or CLOSED to THROWN.
- SE8c signal heads now try to track the layout status to detect changes in their state caused by external events, e.g. something outside JMRI changing them. This is useful when e.g. you've got two computers controlling a LocoNet. Note that this works for RED, YELLOW, GREEN and DARK, but not for the FLASHING aspects, nor for Held and Lit states. The recommendation is still to have all your layout logix running in a single running copy of JMRI.
- NCE Network Connection method fixed to enable the different NCE menu items. (Ken C)
- RFID support has been added for Seeed Studio RDM630 readers. (Matthew Harris)
- Walter Thompson improved the LocoNet stats help.
- Improved handling of long vs short in AbstractAutomat scripting
- Added new access methods to DefaultSignalAppearanceMap for CATS use.
- The label on the F28 function is now properly saved and restored. (r27807)
- Fixed issue where Jython scripts path preference could be saved incorrectly or where setting Jython scripts path preference could cause user files path preference to be lost. (r27822-27823, r27825-27826)
Removed the activation.jar library, along with various references to loading it. This is no longer needed since JMRI now requires Java 1.6 or later.