cbMemRead()
Reads data from a memory board into an array.
Function Prototype
C/C++
int cbMemRead(int BoardNum, unsigned short DataBuffer[], long FirstPoint, long Count)
Visual Basic
Function cbMemRead(ByVal BoardNum&, DataBuffer%, ByVal FirstPoint&, ByVal Count&) As Long
Arguments
BoardNum
The number associated with the board when it was installed with InstaCal or created with cbCreateDaqDevice(). BoardNum may be 0 to 99.
DataBuffer
Pointer to the data array.
FirstPoint
Index of first point to read, or FROMHERE. Use FirstPoint to specify the first point to read. For example, to read data sample numbers 200 through 250, set FirstPoint = 200 and Count = 50.
Count
Number of data points (words) to read.
Returns
- Error code or 0 if no errors
- DataBuffer – data read from the memory board.
Notes
- If you are going to read a large amount of data from the board in small chunks, set FirstPoint to FROMHERE to read each successive chunk. Using FROMHERE speeds up the operation of cbMemRead() when working with large amounts of data.
- For example, to read 300,000 points in 100,000 point chunks, the calls would look like this:
cbMemRead (0, DataBuffer, 0, 100000)
cbMemRead (0, DataBuffer, FROMHERE, 1000000)
cbMemRead (0, DataBuffer, FROMHERE, 1000000)
- DT-Connect Conflicts: The cbMemRead() function can not be called while a DT-Connect
transfer is in progress. For example, if you start collecting A/D data to the memory board in the background (by calling cbAInScan() with the DTCONNECT + BACKGROUND options) you can not call cbMemRead() until the cbAInScan() has completed. If you do you will get a DTACTIVE error.