WaitForRxMessagesWithTimeOut Method - neoVI API

This method is used to wait a specified amount of time for received messages from the neoVI hardware.

int _stdcall icsneoWaitForRxMessagesWithTimeOut(void * hObject, unsigned int iTimeOut);



[in] Specifies the driver object created by OpenNeoDevice.


[in] Specifies the amount of time in milliseconds that the function will wait for a received message before returning.

Return Values

0 if no message was received during the wait period. 1 if a message was received. -1 will be returned if there is an error condition. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:



This function allows an application to avoid ‘polling’ for received messages. It will return as soon as a message is received or when the timeout specified has been reached.


void * hObject = 0; // holds a handle to the neoVI object
icsSpyMessage stMessages[19999]; // holds the received messages
int iResult;
int iNumberOfErrors;
int iNumberOfMessages;
unsigned int iTimeOut = 5; //milliseconds
bool bDone = false;

    iResult = icsneoWaitForRxMessagesWithTimeOut(hObject, iTimeOut);

    if(iResult == 0)
        continue; //no messages received

    iResult = icsneoGetMessages(hObject,stMessages,&iNumberOfMessages,&iNumberOfErrors);

    if(iResult == 0)
        MessageBox(hWnd,TEXT("Problem Reading Messages"),TEXT("neoVI Example"),0);
        MessageBox(hWnd, TEXT("Messages Read Successfully"),TEXT("neoVI Example"),0);

return 0;

Last updated