本文简单介绍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)。