最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

通訊協(xié)議026——全網(wǎng)獨有的OPC AE知識四之接口(十)

2023-07-28 09:09 作者:zhouwl72  | 我要投稿

本文繼續(xù)介紹OPC AE規(guī)范的IOPCEventSubscriptionMgt接口的相關(guān)知識,更多通信資源請登錄網(wǎng)信智匯(wangxinzhihui.com)。OPC AE規(guī)范描述了OPC事件服務(wù)器應(yīng)該實現(xiàn)的對象和接口,實現(xiàn)在多個OPC客戶端間共享事件和警報條件。

上文已經(jīng)介紹了IOPCEventSubscriptionMgt的三個方法,其他方法如下:

1)HRESULT GetReturnedAttributes(

[in] DWORD dwEventCategory,

[out] DWORD * pdwCount,

[out, size_is(,pdwCount)] DWORD* pdwAttributeIDs

?);

??? 對于每個事件類別,GetReturnedAttributes檢索當(dāng)前指定要在IOPCEventSink::OnEvent回調(diào)中隨事件通知返回的屬性。所有檢索到的屬性都已由以前對SelectReturnedAttributes的調(diào)用指定。

?

2)HRESULT Refresh(

[in] DWORD dwConnection

?);

強制刷新事件通知與事件訂閱的篩選器匹配的所有活動條件和非活動、未確認(rèn)的條件。

客戶端通常需要從服務(wù)器獲取當(dāng)前狀況信息,尤其是在客戶端啟動時,例如當(dāng)前警報摘要。OPC事件服務(wù)器通過重新發(fā)送最新的事件通知來支持這一要求,這些事件通知滿足事件訂閱中的過濾器,并且與活動和/或未確認(rèn)的條件有關(guān)。然后,客戶端可以從“刷新”的事件通知中導(dǎo)出當(dāng)前條件狀態(tài)。

當(dāng)客戶端需要刷新的活動條件列表時,它將向服務(wù)器請求“刷新”。服務(wù)器將向該特定客戶端發(fā)送事件通知,指示它們正在“刷新”“原始”事件通知的數(shù)量。由于客戶端只需要獲取的當(dāng)前狀態(tài)信息條件,則只刷新條件事件。注意:“刷新”不是一般的“重播”功能,因為服務(wù)器不需要維護事件歷史記錄。刷新僅用于更新客戶端的活動或未確認(rèn)條件的狀態(tài)信息。

除了刷新指示符之外,原始事件通知和刷新事件通知之間還可能存在其他差異。具體地,由于在原始事件通知時可用的一些屬性信息在刷新時可能不可用,因此刷新中的一些屬性可能為空。

刷新事件通知和原始事件通知不會混合在事件回調(diào)的同一調(diào)用中,盡管刷新和原始事件回調(diào)調(diào)用可能是交錯的。因此,客戶端有責(zé)任檢查事件通知上的時間戳,并將其按正確的順序排列,以確保獲得正確的條件狀態(tài)。

根據(jù)IOPCEventServer::CreateEventSubscription方法中的規(guī)范,客戶端每次回調(diào)將接收最大數(shù)量的事件通知。發(fā)送刷新事件通知時,服務(wù)器將指示是否還有更多刷新事件通知要發(fā)送。

此方法僅適用于與條件相關(guān)的事件。簡單事件和跟蹤事件的通知不會返回,即使它們滿足事件訂閱的過濾器。

此方法在訂閱處于活動狀態(tài)和非活動狀態(tài)時都適用。

?

3)HRESULT CancelRefresh(

[in] DWORD dwConnection

?);

取消正在進行的事件訂閱刷新。

如果正在進行刷新,服務(wù)器應(yīng)該發(fā)送一個最后的回調(diào),其中設(shè)置了最后一個刷新標(biāo)志,并且事件數(shù)等于零。

?

4)HRESULT GetState(

[out] BOOL * pbActive,

[out] DWORD * pdwBufferTime,

[out] DWORD * pdwMaxSize,

[out] OPCHANDLE * phClientSubscription,

);

獲取訂閱的當(dāng)前狀態(tài)??蛻舳藢⒅羔槀鬟f到要保存信息的位置。

在調(diào)用SetState之前,通常會調(diào)用此函數(shù)以獲取此信息的當(dāng)前值。這些信息都是在創(chuàng)建訂閱時由客戶端提供的。此函數(shù)對于調(diào)試也很有用。

?

5)HRESULT GetState(

[out] BOOL * pbActive,

[out] DWORD * pdwBufferTime,

[out] DWORD * pdwMaxSize,

[out] OPCHANDLE * phClientSubscription,

);

??? 獲取訂閱的當(dāng)前狀態(tài)??蛻舳藢⒅羔槀鬟f到要保存信息的位置。

??? 在調(diào)用SetState之前,通常會調(diào)用此函數(shù)以獲取此信息的當(dāng)前值。這些信息都是在創(chuàng)建訂閱時由客戶端提供的。此函數(shù)對于調(diào)試也很有用。

?

6)HRESULT SetState(

[unique, in] BOOL * pbActive,

[unique, in] DWORD * pdwBufferTime,

[unique, in] DWORD * pdwMaxSize,

[in] OPCHANDLE hClientSubscription

[out] DWORD * pdwRevisedBufferTime,

[out] DWORD * pdwRevisedMaxSize

?);

客戶端可以設(shè)置事件訂閱的各種屬性。使用指向項的指針,這樣客戶端就可以通過傳遞空指針來省略他不想更改的屬性。

??? 請注意,將事件訂閱設(shè)置為“活動”并不意味著服務(wù)器應(yīng)該對客戶端進行隱式刷新。發(fā)送“刷新”事件的唯一時間是直接響應(yīng)客戶端對refresh()的顯式調(diào)用。這與OPC數(shù)據(jù)訪問接口不同,在OPC數(shù)據(jù)訪問界面中,使項目處于活動狀態(tài)會導(dǎo)致服務(wù)器進行隱式刷新。

?

更多通信資源請登錄網(wǎng)信智匯(wangxinzhihui.com)。


通訊協(xié)議026——全網(wǎng)獨有的OPC AE知識四之接口(十)的評論 (共 條)

分享到微博請遵守國家法律
英德市| 彭山县| 驻马店市| 泰州市| 河源市| 图木舒克市| 固原市| 旅游| 绍兴市| 安化县| 龙岩市| 海盐县| 崇信县| 安乡县| 安丘市| 正蓝旗| 五家渠市| 张掖市| 鹤山市| 四平市| 延安市| 峡江县| 滦南县| 甘泉县| 嫩江县| 江津市| 满洲里市| 镇江市| 合肥市| 西宁市| 尼玛县| 秀山| 金坛市| 集安市| 洪泽县| 东乡| 安泽县| 张家港市| 宜都市| 南宁市| 恩平市|