<< 点击显示目录 >> 主页 PVI通信 > PVI帮助信息 > PVI base system > PVICOM interface > Client/Server communication > Global events |
全局事件是在PVICOM 通信实例中形成的 ,用来表示该实例与PVI管理器(客户/服务器)之间的连接状态。为了接收某个全局事件,应用程序必须给它分配一个 用户信息。这种分配是通过PVICOM函数 PviSetGlobEventMsg 或PviXSetGlobEventMsg完成的 。下图显示了全局事件的基本顺序。
一个PVICOM通信实例可以触发以下全局事件。
Event types |
No. |
说明 |
#240 |
通信实例(客户端)建立了与PVI管理器(服务器)的连接。 |
|
#241 |
通信实例(客户端)与PVI管理器之间的连接被中断(服务器)。相应的错误代码与事件数据一起被报告。通信超时在识别客户机/服务器连接中断中起着主要作用。通信超时是通过 PviInitialize 或PviXInitialize函数定义的 。 |
|
#242 |
这个事件表明通信实例已经在PVI管理器中新注册。只有在存在有效的客户/服务器连接的情况下才能触发该事件。 |
全局事件POBJ_EVENT_PVI_CONNECT和POBJ_EVENT_PVI_DISCONN只对客户端/服务器连接的状态发出信号。相反,POBJ_EVENT_PVI_ARRANGE事件在连接对象和临时进程对象必须重新建立时向应用程序发出信号。如果客户机/服务器连接出现较长时间的中断(加倍的通信超时),那么PVI管理器会自动取消通信实例的注册,并释放所有分配的连接对象。如果以后再建立连接,那么 PVICOM 应用程序必须重新设置所有对象。POBJ_EVENT_PVI_ARRANGE 事件可以用来自动控制这个过程。
至于 事件, 必须调用 PVICOM函数 PviReadResponse 或PviXReadResponse来读取事件数据,并确认何时收到响应。关于事件的信息可以通过PVICOM函数 PviGetResponseInfo 或PviXGetResponseInfo 事先读取 。一个例外是使用PVICALLBACK_DATA类型的回调函数作为 用户信息。由于响应数据是直接传递给回调函数的,所以不需要用PVICOM函数来读取。