Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Exact function of DIG_Block_In

Hello,

Can someone clarify the exact function of the DIG_Block_In function for a 6533 DAQ card?  From the function documentation, I understood that it takes in ulCount inputs from the board and puts them in the array you pass the function.  In the example code, however, ulCount was half the buffer size, yet the program took in 10 half buffers.  Once DIG_Block_In is called, does it continually input data forever? 

Also, When using DIG_Block_Check to find out how many points are remaining to be taken in, does the number of points remaining reset whenever the card takes in ulCount data points?

Thanks,
Mark
0 Kudos
Message 1 of 4
(3,322 Views)
Hello Mark,

The 6533 works with the NI-DAQmx driver, which is a more intuitive driver than the Traditional NI-DAQ (Legacy) driver.  It sounds like you are just starting an application, and if that is the case I would strongly recommend using the NI-DAQmx driver.

Otherwise, what CVI shipping example are you looking at?

Regards,
Micaela N
National Instruments
0 Kudos
Message 2 of 4
(3,310 Views)
I haven't been able to get it to work with the DAQmx software and was told it didn't in the shipped documentation and by tech support.  The computer only recognized the card if I installed the traditional legacy software.  I am looking at the example program entitled DIdoubleBufPatternGenExtClock653x.C.  To make my question specific to this code, I'm wondering if it would be possible to stop input at 9.5 buffers by using the function DIG_BLOCK_CHECK.  The area where I see this being a problem is that DIG_BLOCK_IN tells the program to only input one half buffer and DIG_BLOCK_CHECK seems to operate based on how much DIG_BLOCK_IN tells the program to input.

Mark
0 Kudos
Message 3 of 4
(3,304 Views)
Hello Mark,

You should be able to use the DIG_BLOCK_CHECK to stop  input at a half buffer value.  DIG_BLOCK_IN tells the program the number of items to be transferred and DIG_BLOCK_CHECK returns the number of remaining samples still to be transferred.  You should be able to stop the input by monitoring the remaining output. 

As I look at that particular example, I think one easy way to stop at 9.5 buffers would be to change the loop condition.

You must have tried using either an older version of NI-DAQmx or something like that, because the PCI-6533 is supported in NI-DAQmx in version 7.4 and above (the current version of NI-DAQmx is version 8.1).  You might give a later version of NI-DAQmx a try and be amazed by how easy it is to use Smiley Very Happy

Regards,
Micaela N
National Instruments
0 Kudos
Message 4 of 4
(3,291 Views)