<< 点击显示目录 >> 主页 PVI通信 > PVI帮助信息 > PVI base system > PVICOM interface > PVICOM functions > PviGetNextResponse, PviXGetNextResponse functions |
int PviGetNextResponse (WPARAM* pwParam, LPARAM* plParam, LPVOID* phMsg, HANDLE hEvent)
int PviGetXNextResponse (DWORD hPvi, WPARAM* pwParam, LPARAM* plParam, LPVOID* phMsg, HANDLE hEvent)
PviGetNextResponse (ByRef pwParam As Long, ByRef plParam As Long, ByRef phMsg As Long, ByVal hEvent As Long) As Long
PviGetXNextResponse (ByVal hPvi As Long, ByRef pwParam As Long, ByRef plParam As Long, ByRef phMsg As Long, ByVal hEvent As Long) As Long
Argument |
I/O |
说明 |
hPvi |
In |
来自 PviXInitialize 函数的实例句柄 |
pwParam |
Out |
指向用于连接响应或事件数据的变量的指针 |
plParam |
Out |
指向用于记录用户参数的变量的指针。在32位PVI版本(PviCom.dll)中,用户参数的大小为4字节,在64位PVI版本(PviCom64.dll)中为8字节。如果不需要用户参数,那么可以指定一个空指针。 |
phMsg |
Out |
用于记录用户信息的变量(指针)的指针(第二个用户参数)。如果不需要用户信息,那么可以指定一个空指针。 |
hEvent |
In |
一个系统事件的句柄。如果不需要系统事件,那么可以指定一个空指针。 |
如果数值不是0,则表明有错误。错误代码被作为一个值返回。这个函数只返回在它被调用时发生的错误(例如,非法的函数参数或内部错误)。响应数据中的错误不在此报告。
该函数只能与 PVIFUNCTION类型的 用户消息一起使用 (见 消息函数)。
函数PviGetNextResponse和PviXGetNextResponse为各自通信实例的下一个响应或事件数据提供用户消息。用户消息由响应或事件数据的链接(参数 "wParam")和用户参数组成。一个有效的链接总是一个不等于0(零)的值。如果返回值为0(零),说明在函数调用时没有响应或事件数据。
程序不会在函数内等待下一个用户信息。因此,PVICOM应用程序必须自己进行等待(暂停系统线程)(例如,调用系统函数WaitForSingleObject)。
可选的是,一个句柄可以应用于定义的系统事件的函数。该句柄被存储在通信实例中。一旦有了响应或事件数据,系统事件就会被设置。
Example for polling operation (Visual C++):
bool bExit = FALSE;
WPARAM wParam;
while (! bExit)
{
ErrCode = PviGetNextResponse (&wParam, NULL, NULL, NULL);
if (ErrCode != 0)
bExit = TRUE;
else
if (wParam == 0)
Sleep (20);
else
{
// read response/event data
...
}
}
Example for event-controlled operation (Visual C++):
bool bExit = FALSE;
HANDLE hEvent
WPARAM wParam;
hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
while (! bExit)
{
ErrCode = PviGetNextResponse (&wParam, NULL, NULL, hEvent);
if (ErrCode != 0)
bExit = TRUE;
else
if (wParam == 0)
WaitForSingleObject (hEvent, INFINITE);
else
{
// read response/event data
...
}
}
CloseHandle (hEvent);