通讯协议027——全网独有的OPC AE知识四之接口(十一)

本文继续介绍OPC AE规范的IOPCEventSubscriptionMgt2接口的相关知识,更多通信资源请登录网信智汇。OPC AE规范描述了OPC事件服务器应该实现的对象和接口,实现在多个OPC客户端间共享事件和警报条件。

可选的IOPCEventSubscriptionMgt2接口用于设置/获取订阅当订阅的保活时间为非零时,服务器将确保客户端即使在没有要报告的新事件,通过以最小已知频率提供回调,客户端可以确保服务器和订阅的健康,而无需“ping服务器”(定期调用服务器方法的常见做法,例如IOPCEventServer::GetStatus())。

IOPCEventSubscriptionMgt2的方法如下:

1)HRESULT SetKeepAlive(

[in] DWORD dwKeepAliveTime,

[out] DWORD *pdwRevisedKeepAliveTime

);

客户端可以设置订阅的保持活动时间,以使服务器在没有要报告的新事件时提供订阅的客户端回调。然后,客户端可以确保服务器和订阅的健康,而无需通过调用GetStatus()来ping服务器。

使用此功能,客户端可以期望在指定的保活时间内进行回调(数据或保活)。

当发送真实数据时,服务器应重置其保活定时器(即,无论数据回调如何,都不能在等于保活时间的固定周期内不断发送保活回调)。

keep-alive回调包含对IOPCEventSink::OnEvent()的调用,dwCount设置为零。

当订阅处于非活动状态时,将不会发生保持活动回调。

保持活动回调不会影响IOPCEventServer::GetStatus()返回的OPCEVENTSERVERSTATUS::ftLastUpdateTime的值。

2)HRESULT GetKeepAlive(

[out] DWORD *pdwKeepAliveTime

);

返回订阅的当前活动保持活动时间。

你可能感兴趣的:(通讯协议,网络协议,信息与通信)