本文继续介绍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
);
返回订阅的当前活动保持活动时间。
更多通信资源请登录网信智汇()。
标签: