开云体育

Locked CVP's AD4 Programming Error


original_black_bart
 

To Jon and other testing CVP's AD4 DecoderPro file,

I managed to get a little time this afternoon to modify the screen
format for the AD4. I've run into a little bug and wondered if
someone would be kind enough to program their AD4 to an address
greater than 63, then read the data back and confirm the write.

Based on what I've seen while testing this out this afternoon, any
address greater than 63 is not written properly to the decoder. I
don't think CV9 is being set correctly but I can't tell for sure as
I'm working with a PR-1 to read back my data. Your confirmation of
such would be appreciated.

Bob


 

At 9:31 PM +0000 8/10/02, original_black_bart wrote:
To Jon and other testing CVP's AD4 DecoderPro file,

I managed to get a little time this afternoon to modify the screen
format for the AD4. I've run into a little bug and wondered if
someone would be kind enough to program their AD4 to an address
greater than 63, then read the data back and confirm the write.

Based on what I've seen while testing this out this afternoon, any
address greater than 63 is not written properly to the decoder. I
don't think CV9 is being set correctly but I can't tell for sure as
I'm working with a PR-1 to read back my data. Your confirmation of
such would be appreciated.
There may well be a bug there, as that's the new code that I wrote without a way to test directly.

There are a couple of things that might help figure out what it's doing wrong. The "Simple Programmer" from the tools menu will let you read back the value from CV9 to see what it was sent to. Using the "Comprehensive" programmer format will give you a CV pane where you can see the intended contents (although you might not want to trust it, as the bug could have effected that too).

And adding the line:

log4j.category.jmri.jmrit.symbolicprog=DEBUG

to the default.lcf file will generate trace information from the programming operations. (You might want to send that to a file; there are instructions at the top of the file for how to do that)

Sorry for the trouble.

Bob
--
--------------
Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957)
At CERN until August 10, replies may be slow.


Jon Miller
 

Bob,
I thought everything worked yesterday but today is a different day. I
had no luck with the PR1DOS and MS100. Using DecoderPro it didn't want to
read either but I could change the address. Using the single bit programmer
would change the address everytime but to strange values.
I bought a booklet from Keith when I order the AD4 so I could read
it.CV513 (CV1*) is the and CV521 (CV9*) is the but it says this. "Long"
ard numbers are accessory decoder card numbers above 63. When higher than
63 must be split into two values--sic--- strange split because CV513 only
has 6 bits (NMRA specs). 3 more bits are stored in CV521. Thus 9 bits
gives 511 unique decoder addresses.

I tested and put a 10 in CV1 and a 1 in CV9 and this resulted in an
address of 266, as if I had a 10 and a 4 programmed. Keith uses a special
macro in his command station to do it.

*Digitrax Chief CV's

Jon Miller
AT&SF
For me time has stopped in 1941
Digitrax DCC owner, Chief system
NMRA Life member #2623
Member SFRH&MS


Jon Miller
 

Ok, I'm starting to figure this out, I think. AD4's only program by
"card number" so a card number of say 26 has decoder addresses of 101, 102,
103, and 104. So using the addresses of 1 to 63 in CV521 (CV1) shows me a
card address in DecoderPro, not the output addresses. Remember now that
Card address #64 is skipped, which are output addresses of 253, 254, 255,
and 256.
Now when I put a number in CV521 (CV9) I start getting numbers that
resemble output addresses. Remember I said I put a 10 and a 1 in their
respective CV's and got the number 266. That's starting to sound like an
output address not a card number.


original_black_bart
 

Bob,

Please don't see this as being trouble. For me, it's pure education
and enjoyment!

My Digitrax DB150 won't allow read back, thus the need to use the PR-
1.

With an intended address of 65, the CV pane shows CV7= and CV9=.
Looks like a bug that I think I validated by using the Monotoring
tool to see what data is being sent across the loconet to CV9.
Regardless of the address it looks like CV9 is always being
programmed with a zero. If I program an address of 65, the result is
an address of 1. CV7=1, CV9=0.

Bob

--- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote:
<Snip, Snip, Snip...>

There may well be a bug there, as that's the new code that I wrote
without a way to test directly.

There are a couple of things that might help figure out what it's
doing wrong. The "Simple Programmer" from the tools menu will let
you read back the value from CV9 to see what it was sent to.
Using
the "Comprehensive" programmer format will give you a CV pane
where
you can see the intended contents (although you might not want to
trust it, as the bug could have effected that too).

And adding the line:

log4j.category.jmri.jmrit.symbolicprog=DEBUG

to the default.lcf file will generate trace information from the
programming operations. (You might want to send that to a file;
there are instructions at the top of the file for how to do that)

Sorry for the trouble.

Bob
--
--------------
Bob Jacobsen (Bob_Jacobsen@l..., 510-486-7355, fax 510-495-2957)
At CERN until August 10, replies may be slow.


Jon Miller
 

Bob (black bart type<G>,
Notice also that DecoderPro has two boxes and they both read the same
address which is not correct. The DCC address should be something like
793-796 and the card number (address ) should be 199, as an example. I not
sure what is supposed to read back. Also Digitrax will not program the full
capacity of this card because it's limited to 999 stationary decoder output
addresses and the AD4's will do 2044 output addresses.
So a Digitrax command station is only good for card numbers to 249 which
are output addresses 993 to 996.

And I'm getting totally confused about this unit<VBG>.

Also remember that the AD4 can have "ganged" addresses. Like for
setting up a path through a yard. [The tomorrow file!]


 

Oops.

Sorry, I misunderstood where the address is split between the two CVs.

In the as-shipped AD4 file, you'll find this:

<variable label="Card Address" item="Short Address" CV="1" mask="VVVVVVVV">
<splitVal highCV="9"/>
</variable>

That says that this value is to be split between CV1 and CV9, with the low bits in CV1, and that _8_ bits are to be put in CV1. That's at least part of what's wrong.

Could you try changing the mask attribute to

mask="XXVVVVVV"

to put only 0-63 values in CV1?

Bob
--
--------------
Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957)
At CERN until August 10, replies may be slow.


original_black_bart
 

Jon,

Now I think I'm getting confused!

Did a little checking and found a good explanation of "the numbers"
on Digitrax's Web; "Each DS54 has a stationary decoder address: 01-
511. Each DS54 has four independent function cells: A, B, C & D.
Each function cell has both output and input wires. Each cell has
its own switch address that controls the device attached to the
function cell. This means the DS54 has 4 switch addresses available
for each stationary decoder address."

If we ignore the fact that the AD4 doesn't have both input and
output wires and concentrate on the last sentence, we'll see
similarity between the DS54 and AD4. Specifically, reference to a
stationary decoder address and switch addresses. When programming an
AD4 accessory decoder, a "Decoder Address" is programmed into CV 1.
In cases where the address of an accessory decoder is greater that
63, CV9 is also used to store part of the decoder address.

Switch numbers, not decoder numbers are utilized to operate each of
the decoders' four function cells. Each decoder has four switch
numbers associated with its assigned address. The key here is not to
confuse a decoder address with switch address. I like to keep it
simple by always referring to the accessory decoders address when
programming is being discussed.

Through a little experimentation, I've found that Digitrax systems
will operate switches numbered greater than 999. However since the
throttle, which appears to be the limiting factor here, will only
address 999 switch addresses, a software solution is required. My
test was performed using RR&Co software on a PC connected to the
Loconet via a LocoBuffer interface, a DB150 and an AD4 programmed to
utilize switch addresses 2037, 2038, 2039 and 2040. Using this
hardware software combination, the above mentioned switch addresses
were operated without problem.

My conclusion is that as long as a means exists to establish
communication with the accessory decoders switch address, the AD4 is
fully functional with our Digitrax systems.

Bob

--- In jmriusers@y..., "Jon Miller" <atsf@i...> wrote:
Bob (black bart type<G>,
Notice also that DecoderPro has two boxes and they both read
the same
address which is not correct. The DCC address should be something
like
793-796 and the card number (address ) should be 199, as an
example. I not
sure what is supposed to read back. Also Digitrax will not
program the full
capacity of this card because it's limited to 999 stationary
decoder output
addresses and the AD4's will do 2044 output addresses.
So a Digitrax command station is only good for card numbers to
249 which
are output addresses 993 to 996.

And I'm getting totally confused about this unit<VBG>.

Also remember that the AD4 can have "ganged" addresses. Like
for
setting up a path through a yard. [The tomorrow file!]


original_black_bart
 

Bob,

Changing the mask has done the trick. The accesory decoder can now be
programmed with valid addresses between 1 and 511.

I've also made changes to the Pane Format of the CVPRoducts_AD4.xml
file and would like to submit them to you as Rev 2 but I'm having
trouble with a couple functions; I can't get the vslider or hslider
functions to work. In reference to the following line, can you see
what I'm doing wrong?

<display item="Output_A_On_Time" format="vslider" label="On Time
(1/10th Sec) "/>

Also, as the decoder supports only Direct and Ops Mode Programming,
I've made adjustments in the code that allow use of only those two
modes. Even though Paged and Register Mode are set to "no", I've
noticed that they are still selectable on the bottom of the
programming screen. Why is that? The code has been edited to read;

<programming direct="byteOnly" paged="no" register="no"
ops="yes"></programming>

I assume it to be correct but don't understand why the options are
still available?

Bob

--- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote:
Oops.

Sorry, I misunderstood where the address is split between the two
CVs.

In the as-shipped AD4 file, you'll find this:

<variable label="Card Address" item="Short Address" CV="1"
mask="VVVVVVVV">
<splitVal highCV="9"/>
</variable>

That says that this value is to be split between CV1 and CV9, with
the low bits in CV1, and that _8_ bits are to be put in CV1.
That's
at least part of what's wrong.

Could you try changing the mask attribute to

mask="XXVVVVVV"

to put only 0-63 values in CV1?

Bob
--
--------------
Bob Jacobsen (Bob_Jacobsen@l..., 510-486-7355, fax 510-495-2957)
At CERN until August 10, replies may be slow.


 

At 3:31 PM +0000 8/11/02, original_black_bart wrote:
I've also made changes to the Pane Format of the CVPRoducts_AD4.xml
file and would like to submit them to you as Rev 2 but I'm having
trouble with a couple functions; I can't get the vslider or hslider
functions to work. In reference to the following line, can you see
what I'm doing wrong?

<display item="Output_A_On_Time" format="vslider" label="On Time
(1/10th Sec) "/>
There's a typo in the definition file for the decoder XML that wasn't
present in the definition for the programmer files. So this option
wasn't valid in a decoder file. I've attached an updated
decoder-config.dtd which should replace the file of the same name in
the xml&#92;DTD folder. You'll get this by direct reply, and I'll cc:
Jon Miller, but the list will remove the attachment. If anybody else
wants a copy just let me know.

Also, I had to change the item in that example to "On time for output
1" to make it work. Perhaps you've renamed some of the variables in
the file, which would explain that. It's traditionally OK to use
spaces in XML values, as they're meant to be human-friendly values.

Also, as the decoder supports only Direct and Ops Mode Programming,
I've made adjustments in the code that allow use of only those two
modes. Even though Paged and Register Mode are set to "no", I've
noticed that they are still selectable on the bottom of the
programming screen. Why is that? The code has been edited to read;

<programming direct="byteOnly" paged="no" register="no"
ops="yes"></programming>

I assume it to be correct but don't understand why the options are
still available?
Have you remade the decoder index? It might be that information is
taken from the index, not directly from the file. But I'm not sure.

Bob
--
--------------
Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957)
At CERN until August 10, replies may be slow.


 

At 1:12 PM +0000 8/11/02, original_black_bart wrote:
Through a little experimentation, I've found that Digitrax systems
will operate switches numbered greater than 999. However since the
throttle, which appears to be the limiting factor here, will only
address 999 switch addresses, a software solution is required. My
test was performed using RR&Co software on a PC connected to the
Loconet via a LocoBuffer interface, a DB150 and an AD4 programmed to
utilize switch addresses 2037, 2038, 2039 and 2040. Using this
hardware software combination, the above mentioned switch addresses
were operated without problem.
It would be interesting to know if there's a limitation in the JMRI library. I don't think so, but you never know...

To try it, start the JMRIdemo app, and pull down "Turnout Control" from the "Tools" menu, and then enter an output (turnout) number in the little panel you get. I think it should work up to 2047.

Bob
--
--------------
Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957)
At CERN until August 10, replies may be slow.


original_black_bart
 

Bob,

It appears as though there's an error in the decoder-config.dtd file
that was provided. With the file in place, one cannot open any of the
programming windows and the following error occurs when I use the
Check XML Tool;

" Error parsing decoder file: org.jdom.JDOMException: Error on line 1
of document file C:/Program Files/JMRI/xml/DTD/decoder-config.dtd:
External parameter entity "%(dtd);" has characters after markup."

Restoring the old file eliminates the error.

BTW, recreating the Decoder Index did not resolve the ability to
select other then the intended Programing Mode.

Bob
--- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote:
Snip, Snip, Snip.... I've attached an updated
decoder-config.dtd which should replace the file of the same name
in
the xml&#92;DTD folder. You'll get this by direct reply, and I'll cc:
Jon Miller, but the list will remove the attachment. If anybody
else
wants a copy just let me know.


 

At 6:13 PM +0000 8/11/02, original_black_bart wrote:
Bob,

It appears as though there's an error in the decoder-config.dtd file
that was provided. With the file in place, one cannot open any of the
programming windows and the following error occurs when I use the
Check XML Tool;

" Error parsing decoder file: org.jdom.JDOMException: Error on line 1
of document file C:/Program Files/JMRI/xml/DTD/decoder-config.dtd:
External parameter entity "%(dtd);" has characters after markup."
That seems to indicate that something bad happened to the file during the transfer. Sometimes mail software and browsers get over-enthused about .xml and .dtd files and try to interpret them. Perhaps that happened here.

The first lines should look like:

<!-- Defines XML documenting a DCC decoder as a component, esp. information -->
<!-- on how to program it. -->

with no entities present (an XML "entity" is something that starts with a percent sign "%")

In any case, the change you need is to replace the 2nd-to-last line with

<!ATTLIST display format (default | vslider | hslider | radiobuttons | checkbox |
onradiobutton | offradiobutton) "default" >


Instead of a single "slider", this has the separate "vslider" and "hslider" entries.

Restoring the old file eliminates the error.

BTW, recreating the Decoder Index did not resolve the ability to
select other then the intended Programing Mode.
OK, thanks, will look into it.
--
--------------
Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957)


Jon Miller
 

Bob and Bob,
I've also noticed/read some other items. Certain CV's take effect on
next power up (like the infamous DZ121), page 7 programming tips.
CV8 will do a factory reset so might be good to add that function. This
also only happens on next power up.
----------------------------------------------------------------------------


Now on to this morning testing. Probably happened yesterday but it was
so hot (triple digit) I wasn't thinking. When I bring up the AD4 pane and
do a read it seems fine, but I can't then change the address. I must exit
and then come back up to change the address and then the LED's flash and the
address changes to 0. i.e. any attempted write seems to reset the address
to 0.
Am I have cockpit problems?
Have you remade the decoder index?<
'tools'--'create decoder index' Yes I did that.
I use the individual CV programmer as it always works to get back to a
starting point (an address) again! Using the individual CV programmer to
enter numbers and using the program to read back the address results in
correct card numbers.
----------------------------------------------------------------------------
------


Even though Paged and Register Mode are set to "no", I've noticed that
they are still selectable on the bottom of the programming screen.<

And they do lockup the programmer as I have forgotten to change it a few
times. Testing the new file Bob sent and nothing seems to have changed.
The red LED also flashes during read which is not supposed to happen
according to CVP. They say it only works when programming on the main
(curious).
----------------------------------------------------------------------------
------

>I've found that Digitrax systems will operate switches numbered
greater than 999.<
This might depend on how we define 999. I checked with Don C. on the
Digitrax site a few months ago and he confirmed 999. BUT it may not have to
do with the actual addresses but how many are stored and this is a question
I have asked on the Digitrax list.
----------------------------------------------------------------------------
------

Changing CV7 recognition to 62 allowed it to pick up my AD4.
----------------------------------------------------------------------------
----------

error in the decoder-config.dtd file<
I don't seem to have this problem with the new file!

Jon Miller
AT&SF
For me time has stopped in 1941
Digitrax DCC owner, Chief system
NMRA Life member #2623
Member SFRH&MS


original_black_bart
 

I checked the contents of the D/Led file but it didn't look anything
like it should have. Looks like a bad file transfer was at the heart
of the issue. Using the old file, I modified the appropriate line and
managed to get the sliders working. Oh, there no numerical display on
the slider!

Sorry to be a pest, but can you identify how I might calcualte and
display switch numbers and slider values on the AD4 Pane?

Bob

--- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote:

That seems to indicate that something bad happened to the file
during
the transfer. Sometimes mail software and browsers get over-
enthused
about .xml and .dtd files and try to interpret them. Perhaps that
happened here.

The first lines should look like:

<!-- Defines XML documenting a DCC decoder as a component, esp.
information -->
<!-- on how to program it. -->

with no entities present (an XML "entity" is something that starts
with a percent sign "%")

In any case, the change you need is to replace the 2nd-to-last line
with

<!ATTLIST display format (default | vslider | hslider |
radiobuttons | checkbox |
onradiobutton | offradiobutton) "default" >


Instead of a single "slider", this has the separate "vslider" and
"hslider" entries.

Restoring the old file eliminates the error.

BTW, recreating the Decoder Index did not resolve the ability to
select other then the intended Programing Mode.
OK, thanks, will look into it.
--
--------------
Bob Jacobsen (Bob_Jacobsen@l..., 510-486-7355, fax 510-495-2957)


original_black_bart
 

Jon,

Drop me a line off-list if you wish to test out version 2 of the AD4
programmer. With Bob's help, I've moified the address mask and
revised the AD4 Pane. Addressing now works as it should - excpet one
can program the none existant address 64!

I've yet to configure sliders and radio buttons for mode selection,
but the changes I've made may eliminate the problem your having. I'd
also like a second opinion on the changes I've made.

Black Bart (Bob)

--- In jmriusers@y..., "Jon Miller" <atsf@i...> wrote:
Snip, Snip, Snip....
Now on to this morning testing. Probably happened yesterday
but it was
so hot (triple digit) I wasn't thinking. When I bring up the AD4
pane and
do a read it seems fine, but I can't then change the address. I
must exit
and then come back up to change the address and then the LED's
flash and the
address changes to 0. i.e. any attempted write seems to reset
the address
to 0.
Am I have cockpit problems?
Have you remade the decoder index?<
'tools'--'create decoder index' Yes I did that.
I use the individual CV programmer as it always works to get
back to a
starting point (an address) again! Using the individual CV
programmer to
enter numbers and using the program to read back the address
results in
correct card numbers.
--------------------------------------------------------------------
--------
------


Even though Paged and Register Mode are set to "no", I've noticed
that
they are still selectable on the bottom of the programming screen.<

And they do lockup the programmer as I have forgotten to change
it a few
times. Testing the new file Bob sent and nothing seems to have
changed.
The red LED also flashes during read which is not supposed to happen
according to CVP. They say it only works when programming on the
main
(curious).
--------------------------------------------------------------------
--------
------

>I've found that Digitrax systems will operate switches
numbered
greater than 999.<
This might depend on how we define 999. I checked with Don C.
on the
Digitrax site a few months ago and he confirmed 999. BUT it may
not have to
do with the actual addresses but how many are stored and this is a
question
I have asked on the Digitrax list.
--------------------------------------------------------------------
--------
------

Changing CV7 recognition to 62 allowed it to pick up my AD4.
--------------------------------------------------------------------
--------
----------

error in the decoder-config.dtd file<
I don't seem to have this problem with the new file!

Jon Miller
AT&SF
For me time has stopped in 1941
Digitrax DCC owner, Chief system
NMRA Life member #2623
Member SFRH&MS


 

At 7:37 PM +0000 8/11/02, original_black_bart wrote:
Sorry to be a pest, but can you identify how I might calcualte and
display switch numbers and slider values on the AD4 Pane?
For slider values, take a look at the "Speed" pane (I think) in the programmers/Comprehensive.xml file. Basically, you display a variable multiple times, once as a slider, and another time as a numeric field. You can then orient them as you'd like, put the labels as desired, etc.

I think switch numbers is going to require some code, as there's no way right now to add, subtract and multiply in between the numeric values and the CV contents. What exactly would you like to do? I can set up another variable type pretty easily.

Bob
--
--------------
Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957)


Jon Miller
 

Bob and Bob,
Just hooked up a "Switchmaster", switch machine motor to test
programming and actual control using a DT400. I programmed (using the
individual CV programmer) for card #250 and put the switch motor on the
first output #997. It worked.
The DT400 will only go to 999 so am guess as Bob did it's the software
in the throttles that prevent higher numbers. The Chief seems to be able to
program the numbers it just that the throttles can't select them.

Jon Miller
AT&SF
For me time has stopped in 1941
Digitrax DCC owner, Chief system
NMRA Life member #2623
Member SFRH&MS


Jon Miller
 

Forget my previous remark about not being able to program. It seems if
you enter a number in "DCC Address" even if it changes in "Card Address" you
can't program! However if you enter the number in "Card Address" it still
changes in both locations but you can program.
Would "Card Number" be better than "Card Address" as that's the way CVP
refers to it?
Is there any way for the "DCC Address" to actually show the addresses
without referring to some kind of lookup table? As in;
Card Number=128
DCC Addresses=509-512

Jon Miller
AT&SF
For me time has stopped in 1941
Digitrax DCC owner, Chief system
NMRA Life member #2623
Member SFRH&MS


original_black_bart
 

Bob

Using the card address of the AD4, I'd like calculate then display
the cards range of associated switch numbers. For example, based on a
decoder address of 1, switch numbers would be 1 through 4. With a
decoder address of 10, switch numbers would be 37 through 40.

Switch addresses can be calculated as follows;

SwitchNumber_High = Card Address * 4
SwitchNumber_Low = SwitchNumber_High - 3

Thanks, found the slider information. Know to figure out how to make
it work with the radio buttons!

Bob

--- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote:
At 7:37 PM +0000 8/11/02, original_black_bart wrote:
Sorry to be a pest, but can you identify how I might calcualte and
display switch numbers and slider values on the AD4 Pane?
For slider values, take a look at the "Speed" pane (I think) in the
programmers/Comprehensive.xml file. Basically, you display a
variable multiple times, once as a slider, and another time as a
numeric field. You can then orient them as you'd like, put the
labels as desired, etc.

I think switch numbers is going to require some code, as there's no
way right now to add, subtract and multiply in between the numeric
values and the CV contents. What exactly would you like to do? I
can
set up another variable type pretty easily.

Bob
--
--------------
Bob Jacobsen (Bob_Jacobsen@l..., 510-486-7355, fax 510-495-2957)