通訊協(xié)議057——全網(wǎng)獨有的OPC HDA知識一之接口(十二)IOPCHDA_DataCallback

本文簡單介紹OPC HDA規(guī)范的IOPCHDA_DataCallback(客戶端接口)接口方法,更多通信資源請登錄網(wǎng)信智匯(wangxinzhihui.com)。
?
1)HRESULT ?OnDataChange(dwTransactionID, hrStatus, dwNumItems, pItemValues, phrErrors)
此方法由客戶端提供,用于處理來自O(shè)PCHDA服務(wù)器的通知,這些通知是由對OPCHDA_AsyncRead::AdviseRaw和OPCHDA_AsyncRead::AdviseProcessed的調(diào)用引起的。
請注意,無論phrErrors字段的內(nèi)容如何,都必須定義好項值。
?
2)HRESULT ?OnReadComplete(dwTransactionID, hrStatus, dwNumItems, pItemValues, phrErrors)
此方法由客戶端提供,用于處理從OPCHDA_AsyncRead::ReadRaw、OPCHDA_AsyncRead::ReadProcessed和OPCHDA-AsyncRead:ReadAtTime返回的數(shù)據(jù)。
請注意,無論phrErrors字段的內(nèi)容如何,都必須定義好項值。這意味著pItemValues數(shù)組將存在,并且將具有dwNumItems成員。如果phrErrors字段指示成員沒有數(shù)據(jù),則pItemValues條目的dwCount將為0,時間戳、質(zhì)量和數(shù)據(jù)的指針為NULL??蛻舳司浔虯ggregateID必須仍然有效。
請注意,給定的客戶端句柄、聚合類型或時間戳可能在數(shù)組中出現(xiàn)多次。
?
3)HRESULT ?OnReadModifiedComplete (dwTransactionID, hrStatus, dwNumItems, pItemValues, phrErrors)
此方法由客戶端提供,用于處理從OPCHDA_AsyncRead::ReadModified返回的數(shù)據(jù)。
請注意,無論phrErrors字段的內(nèi)容如何,都必須定義好項值。
還要注意,給定的客戶端句柄或時間戳可能在數(shù)組中出現(xiàn)多次。
?
4)HRESULT ?OnReadAttributeComplete(dwTransactionID, hrStatus, hClient, dwNumItems, pAttributeValues, phrErrors)
此方法由客戶端提供,用于處理從OPCHDA_AsyncRead::ReadAttribute返回的數(shù)據(jù)。
請注意,無論phrErrors字段的內(nèi)容如何,都必須定義好屬性值。
請注意,無論phrErrors字段的內(nèi)容如何,都必須定義好注釋值。
?
5)HRESULT ?OnReadAnnotations(dwTransactionID, hrStatus, dwNumItems, pAnnotationValues, phrErrors)
此方法由客戶端提供,用于處理從OPCHDA_AsyncReadAnnotations::Read返回的數(shù)據(jù)。
?
6)HRESULT ?OnInsertAnnotations (dwTransactionID, hrStatus, dwCount, phClients, phrErrors)
此方法由客戶端提供,用于在完成OPCHDA_AsyncAnnotations::Insert時處理來自服務(wù)器的通知。
請注意,在初始請求中返回錯誤的項目不應(yīng)在此處返回,即返回的列表可能是“稀疏的”,并且沒有指定其順序。
?
7)HRESULT ?OnPlayback (dwTransactionID, hrStatus, dwNumItems, ppItemValues, phrErrors)
此方法由客戶端提供,用于處理來自O(shè)PCHDA服務(wù)器的通知,這些通知是由對OPCHDA_Playback::ReadRawWithUpdate和OPCHDA_Playback::ReadProcessedWithUpdate的調(diào)用引起的。
請注意,無論phrErrors字段的內(nèi)容如何,都必須定義好值、時間戳和質(zhì)量。
?
8)HRESULT ?OnUpdateComplete (dwTransactionID, hrStatus, dwCount, phClients, phrErrors)
此方法由客戶端提供,用于在完成OPCHDA_AsyncUpdate::Insert、OPCHDA_AsyncUpdate::Replace、OPCHDA_AsyncUpdate::InsertReplace、OPCHDA_AsyncUpdate::DeleteRaw和OPCHDA-AsyncUpdate:::DeleteAtTime時處理來自服務(wù)器的通知。
請注意,在初始請求中返回錯誤的項目不應(yīng)在此處返回。即,返回的列表可能是“稀疏的”。但是,返回列表的順序必須與更新調(diào)用的參數(shù)順序相匹配,以允許客戶端將phrErrors代碼與請求的實際更新相匹配。這是必要的,因為客戶端可能在一次調(diào)用中對同一項應(yīng)用多個更新,而知道哪些更新沒有成功的唯一方法是按照phrErrors數(shù)組的順序。
?
9)HRESULT ?OnCancelComplete(dwCancelID)
此方法由客戶端提供,用于在異步取消完成時處理來自服務(wù)器的通知。
此回調(diào)僅在異步取消之后發(fā)生。請注意,如果Cancel Request返回S_OK,則客戶端可能會收到此回調(diào)。如果取消請求失敗,則客戶端不應(yīng)收到此回調(diào)。
?
未完待續(xù)。更多通信資源請登錄網(wǎng)信智匯(wangxinzhihui.com)。