通讯协议057——全网独有的OPC HDA知识一之接口(十二)IOPCHDA_DataCallback

本文简单介绍OPC HDA规范的IOPCHDA_DataCallback(客户端接口)接口方法,更多通信资源请登录网信智汇(wangxinzhihui.com)。

1)HRESULT  OnDataChange(dwTransactionID, hrStatus, dwNumItems, pItemValues, phrErrors)

此方法由客户端提供,用于处理来自OPCHDA服务器的通知,这些通知是由对OPCHDA_AsyncRead::AdviseRaw和OPCHDA_AsyncRead::AdviseProcessed的调用引起的。

请注意,无论phrErrors字段的内容如何,都必须定义好项值。

2)HRESULT  OnReadComplete(dwTransactionID, hrStatus, dwNumItems, pItemValues, phrErrors)

此方法由客户端提供,用于处理从OPCHDA_AsyncRead::ReadRaw、OPCHDA_AsyncRead::ReadProcessed和OPCHDA-AsyncRead:ReadAtTime返回的数据。

请注意,无论phrErrors字段的内容如何,都必须定义好项值。这意味着pItemValues数组将存在,并且将具有dwNumItems成员。如果phrErrors字段指示成员没有数据,则pItemValues条目的dwCount将为0,时间戳、质量和数据的指针为NULL。客户端句柄和AggregateID必须仍然有效。

请注意,给定的客户端句柄、聚合类型或时间戳可能在数组中出现多次。

3)HRESULT  OnReadModifiedComplete (dwTransactionID, hrStatus, dwNumItems, pItemValues, phrErrors)

此方法由客户端提供,用于处理从OPCHDA_AsyncRead::ReadModified返回的数据。

请注意,无论phrErrors字段的内容如何,都必须定义好项值。

还要注意,给定的客户端句柄或时间戳可能在数组中出现多次。

4)HRESULT  OnReadAttributeComplete(dwTransactionID, hrStatus, hClient, dwNumItems, pAttributeValues, phrErrors)

此方法由客户端提供,用于处理从OPCHDA_AsyncRead::ReadAttribute返回的数据。

请注意,无论phrErrors字段的内容如何,都必须定义好属性值。

请注意,无论phrErrors字段的内容如何,都必须定义好注释值。

5)HRESULT  OnReadAnnotations(dwTransactionID, hrStatus, dwNumItems, pAnnotationValues, phrErrors)

此方法由客户端提供,用于处理从OPCHDA_AsyncReadAnnotations::Read返回的数据。

6)HRESULT  OnInsertAnnotations (dwTransactionID, hrStatus, dwCount, phClients, phrErrors)

此方法由客户端提供,用于在完成OPCHDA_AsyncAnnotations::Insert时处理来自服务器的通知。

请注意,在初始请求中返回错误的项目不应在此处返回,即返回的列表可能是“稀疏的”,并且没有指定其顺序。

7)HRESULT  OnPlayback (dwTransactionID, hrStatus, dwNumItems, ppItemValues, phrErrors)

此方法由客户端提供,用于处理来自OPCHDA服务器的通知,这些通知是由对OPCHDA_Playback::ReadRawWithUpdate和OPCHDA_Playback::ReadProcessedWithUpdate的调用引起的。

请注意,无论phrErrors字段的内容如何,都必须定义好值、时间戳和质量。

8)HRESULT  OnUpdateComplete (dwTransactionID, hrStatus, dwCount, phClients, phrErrors)

此方法由客户端提供,用于在完成OPCHDA_AsyncUpdate::Insert、OPCHDA_AsyncUpdate::Replace、OPCHDA_AsyncUpdate::InsertReplace、OPCHDA_AsyncUpdate::DeleteRaw和OPCHDA-AsyncUpdate:::DeleteAtTime时处理来自服务器的通知。

请注意,在初始请求中返回错误的项目不应在此处返回。即,返回的列表可能是“稀疏的”。但是,返回列表的顺序必须与更新调用的参数顺序相匹配,以允许客户端将phrErrors代码与请求的实际更新相匹配。这是必要的,因为客户端可能在一次调用中对同一项应用多个更新,而知道哪些更新没有成功的唯一方法是按照phrErrors数组的顺序。

9)HRESULT  OnCancelComplete(dwCancelID)

此方法由客户端提供,用于在异步取消完成时处理来自服务器的通知。

此回调仅在异步取消之后发生。请注意,如果Cancel Request返回S_OK,则客户端可能会收到此回调。如果取消请求失败,则客户端不应收到此回调。

未完待续。更多通信资源请登录网信智汇(wangxinzhihui.com)。

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