I've thrown together a JMRI tool to play with the Digitrax decoder
lock. It's in CVS now, for people who compile their own copies of
the program, and I'll put out a test version later today.
The new tool is called "Multi-decoder control" because I can't think
of a more glamorous name. There's a screen shot of it at:
http://groups.yahoo.com/group/jmriusers/files/MultiDecoder.gif
(This is in the "Motif/CDE" style; yours might look slightly
different, depending on what type of computer you're using).
At the top are a bunch of radio buttons for selecting a particular
decoder within the current locomotive. Below that are three buttons
for general controls, then a status field, then controls for
selecting either programming on the service track or on the main.
If you have multiple decoders installed in a loco and they've been
configured as Digitrax suggests, you can select one by just clicking
a button in the top section. The others will be disabled, so that
programming operations (in other panels) won't effect them (but see
below about the "legacy" decoder).
If you have multiple decoders installed and configured, but you can't
remember which ID numbers they have, click "Search". It will walk
through the 8 possibilities and disable the buttons that correspond
to decoders that don't respond. You can then select one of the
enabled buttons. Note that this requires a command station that can
read decoders! And it can take a while; watch the status field.
The "Reset" button re-enables all of the possible ID numbers. It's
there to make it easier to play with this. This does not reset the
decoders, just the display.
A "legacy" decoder is one that doesn't have the decoder lock feature
installed, e.g. a non-Digitrax decoder. The most common special case
seems to be a Digitrax motor decoder and a Soundtraxx decoder, so
I've written some special purpose code to handle the case of one
decoder with the feature, and one without. In that case _only_ the
"Init DH163 + Legacy" button will configure the two decoders to work
with this feature. You don't have to open up the locomotive and
separately configure them, etc. The Digitrax decoder will be ID 1.
Note that this doesn't completely solve the problem for decoders that
don't implement this feature. If you select "Legacy" button, only
that decoder will respond to reads and writes, so you can use it
conveniently. But if you click on "ID 1" in this case, _both_
decoders will act on reads and writes. This means that you might not
be able to read (as their replies are likely to interfere), and
writes will effect _both_ decoders. After you've finished changing
the Digitrax decoder, you'll have to click the "Legacy" button and
rewrite the correct CV values to that decoder. Luckily that's pretty
fast.
Right now, this is a standalone tool, not integrated into the
DecoderPro panels themselves. We should talk about how to do that.
For example, DecoderPro could handle re-writing the legacy decoder
values after changing the Digitrax decoder, etc.
What do people want this to look like?
Bob
--
--------------
Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957)