C/c++ code, C/c++ code -17 – National Instruments NI-Motion User Manual
Page 268

Chapter 15
Scanning
© National Instruments Corporation
15-17
C/C++ Code
The following example code is not necessarily complete, and may
not compile if copied exactly. Refer to the
examples
folder on the
NI-Motion CD for files that are complete and compile as is.
// Main Function
void main(void)
{
u8
boardID;// Board identification number
u8
vectorSpace;// Vector space number
u16
csr = 0;// Communication status register
u16
axisStatus;// Axis status
u16
status;// Temporary copy of status
u16
moveComplete;// Move complete status
i32
i;
i32
points[1994] = NIMC_SPIRAL_ARRAY;// Array of 2D
points to move
u32
numPoints = 1994;// Total number of points to
contour through
i32
bufferSize = 1000;// The size of the buffer to
allocate on the //motion controller
f64
actualInterval;// The interval at which the
motion controller can //really contour
i32
* downloadData = NULL;// The temporary array that
is created to //download the points to the motion
controller
u32
currentDataPoint = 0;// Indicates the next point
in the points //array that is to be downloaded
i32
backlog;// Indicates the available space to
download more //points
u16
bufferState;// Indicates the state of the onboard
buffer
u32
pointsDone;// Indicates the number of points that
have been //consumed
u32
dataCopied = 0;// Keeps track of the points
copied
//Variables for modal error handling
u16
commandID;// The commandID of the function
u16
resourceID;// The resource ID
i32
errorCode;// Error code
// Set the board ID
boardID = 1;
// Set the vector number