多缓冲区方式注册缓冲区满的消息RegisterNotify() VB下定义方式: VB下使用示例: Delphi下定义方式 Delphi下使用示例 功能及参数说明: 此函数设置或取消提示(Notify)消息,即AD板驱动程序在多缓冲区方式下每缓冲区块装满采集结果时,将向用户程序(实际为句柄hWnd代表的子窗口(可以是按钮等控件))发送消息(uMsg,wParam,lParam);可注册0至3号多个消息(NotifyNo=0~3),即每个缓冲区块满时同时发送这些所有的消息,但通常使用1个消息就足够;若hWnd=0或uMsg=0将屏蔽此消息。在上面的示例中,说明要求AD驱动程序在每个缓冲区满时,向用户程序的按钮子窗口发送一个按下'A'键的消息。此后,用户在此子窗口的相应消息响应函数中,调用ADResult()取一块采集结果即可。 此函数通常在StartIntr前调用,使通知消息有效。 特别注意:在这种多缓冲区、消息驱动取采集结果的工作模式下,如果采集速度比较高,且用户程序在此消息响应函数中处理采集结果时,或在其它消息响应函数中进行其它操作时,花了太多的时间,就可能来不及取采集结果,从而使驱动程序中所有缓冲区都满,并且向用户程序发送的消息淤积,丢失信息,从而使消息链断链,表现为应用程序从此以后再也得不到缓冲区满的消息。针对情况,用户程序应在代表缓冲区满的消息响应函数中,取一块采集结果后,用QueryBuf()判断,是否还有存放满采集结果的缓冲区块存在,若存在,可在此消息响应函数中直接再多取1或多块采集结果缓冲区,从而防止消息淤积或消息断链的情况。
|