National Instruments NI-Motion User Manual
Page 257

Chapter 15
Scanning
15-6
ni.com
//Read the communication status register
and check the modal //errors
err = flex_read_csr_rtn(boardID, &csr);
CheckError;
//Check the modal errors
if
(csr & NIMC_MODAL_ERROR_MSG)
{
err = csr & NIMC_MODAL_ERROR_MSG;
CheckError;
}
Sleep(10); //Check every 10 ms
}while (!moveComplete && !(axisStatus &
NIMC_FOLLOWING_ERROR_BIT) && !(axisStatus &
NIMC_AXIS_OFF_BIT)); //Exit on move
complete/following //error/axis off
if
( (axisStatus & NIMC_FOLLOWING_ERROR_BIT) ||
(axisStatus & NIMC_AXIS_OFF_BIT) ){
break;//Break out of the for loop because
an axis was killed
}
}
return
;// Exit the Application
// Error Handling
nimcHandleError; //NIMCCATCHTHIS:
// Check to see if there were any Modal Errors
if
(csr & NIMC_MODAL_ERROR_MSG){
do
{
//Get the command ID, resource ID, and the
error code of the //modal error from the
error stack on the device
flex_read_error_msg_rtn
(boardID,&commandI
D,&resourceID, &errorCode);
nimcDisplayError(errorCode,commandID,res
ourceID);
//Read the communication status register
flex_read_csr_rtn
(boardID,&csr);
}while(csr & NIMC_MODAL_ERROR_MSG);
}
else
// Display regular error
nimcDisplayError(err,0,0);
return
;// Exit the Application
}