Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

6810 firmware program attribute value

Greetings,

I am rewriting an existing piece of code (sans documentation of course) that calls some of the niSda_... functions and am trying to figure out what the following does:

niSda_SetAttributeViString (device_handle, ATTR_FIRMWARE_PROGRAM, "SII");

I have THOROUGHLY read the Getting Started and Software Reference manuals and have been unable to find out what the ATTR_FIRMWARE_PROGRAM attribute is used for and why it should be set to ANY value, let alone something like "SII".

Some sample code that came with the installation software sets the attribute to "SOI". But of course the genius who wrote it didn't bother to let anyone know what they were doing. So now I'm really puzzled.

Furthermore, there is NOTHING any
where on NI.com that even so much as references this obscure attribute.

I would greatly appreciate any information concerning this obscurity that anyone could give to me.

Thanks,
-lew-
0 Kudos
Message 1 of 7
(3,185 Views)
Lew:

Attached, find the NI 6810 C Developer's Guide.doc...

Page 5 defines 'SII' as being Synchronous Timing mode with both Channel 0 and 1 being configured for Inputs. 'SOI' would be ch0 output, ch1 input...

From Page 5:

The niSda_init function configures the NI 6810 for its default channel configuration. The factory default is AOI, however, you can change the factory default from the soft front panel.
It is also easy to change the configuration from within your programs. The following code sample sets the NI 6810 to the SIO configuration.

ViSession instr;
niSda_SetAttributeViString(instr,
NISDA_ATTR_FIRMWARE_PROGRAM, �SIO�);
niSda_reset(instr);

The NISDA_ATTR_FIRMWARE_PROGRAM is a string type attribute so you use the niSda_SetA
ttributeViString() function to set its value. The new configuration takes effect when you invoke the niSda_reset() function. If you want to set a different configuration simply use a different string.
Changing channel direction and timing structure:

Use the NISDA_ATTR_FIRMWARE_PROGRAM to control the direction of the NI 6810 channels and asynchronous/synchronous timing structure.

I hope this helps you out!

Good Luck!

Sincerely,

Brooks B
Applications Engineering
National Instruments
Message 2 of 7
(3,185 Views)
Brooks,

Thanks for your timely response to my question.

The attached document you sent me was interesting, to a point. It had all sorts of information that I had not seen in any of the 6810 manuals thus far. It read very well until about 3/4 to the end.
Unfortunately the author neglected to fill in FOUR SECTIONS at the end, one of which was the the ONLY one that I was eagerly anticipating: Double Buffering.
Early statements in the document reference this Double Buffering technique, and refer the reader to a later section. Page 17 contains the section headers of the four unwritten sections. So sad.

I am dealing with pre-existing (and of course totally undocumented) code that appears to use the double-buffering technique. However, my new applicatio
n has a more asynchronous nature and I need to understand what is really happening.

Got any other information that will help me to understand how to operate the 6810 in double buffered mode?

Thanks again,
-lew-
0 Kudos
Message 3 of 7
(3,185 Views)
Hello:

I am looking into this issue further (contacting R&D)...

Thanks,

Brooks B
0 Kudos
Message 4 of 7
(3,185 Views)
OK - So the document I sent you (although incomplete) is the latest rev of that document. The product was basically obsoleted before the manual was even finished. I am now trying to track down some more examples for you in hopes that R&D might have some double-buffered examples somewhere, but that takes time... I will keep you posted!

Sincerely,

Brooks B
0 Kudos
Message 5 of 7
(3,185 Views)
Hello:

I got some old examples from a guy in R&D that I can post for you... However, we can not support these examples as they are off of his old development machine. They are for illustration only and I am sorry but I can not support them further. I am posting them in hopes that it will give you enough info to answer your own questions about this product...

Good Luck!

Sincerely,

Brooks B
Applications Engineer
0 Kudos
Message 6 of 7
(3,185 Views)
Hi Brooks,
Thanks so much for the code examples. I will use them to verify that my design is correct.

I did finally get the double buffering to work just fine. It took some experimentation and a bit of help from some impartial observers to find that by cutting the size of the INITIAL buffer in half each time the CHECK for input is done, accomplishes the double buffering. Simple enough, but undocumented. Oh well.

Thanks again for your time and effort to assist me in my quest for the secret to double buffering.

-lew-
0 Kudos
Message 7 of 7
(3,185 Views)