通讯协议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)。
相关文章:
通讯协议057——全网独有的OPC HDA知识一之接口(十二)IOPCHDA_DataCallback
本文简单介绍OPC HDA规范的IOPCHDA_DataCallback(客户端接口)接口方法,更多通信资源请登录网信智汇(wangxinzhihui.com)。 1)HRESULT OnDataChange(dwTransactionID, hrStatus, dwNumItems, pItemValues, phrErrors) 此方法由客…...
后端SpringBoot+前端Vue前后端分离的项目(一)
前言:后端使用SpringBoot框架,前端使用Vue框架,做一个前后端分离的小项目,需求:实现一个表格,具备新增、删除、修改的功能。 目录 一、数据库表的设计 二、后端实现 环境配置 数据处理-增删改查 model…...
docker 安装 MySQL5.7
1、拉取镜像 docker pull mysql:5.7 2、创建容器 docker run \ -d \ -p 3306:3306 \ --name mysql \ --privilegedtrue \ -v /var/docker/mysql/log:/var/log/mysql \ -v /var/docker/mysql/data:/var/lib/mysql \ -v /var/docker/mysql/conf:/etc/mysql/conf.d \ -e MYSQL_…...
分布式session的4种解决方案
分布式session的4种解决方案 1、cookie和session cookie和session都是用来跟踪用户身份信息的会话方式。 cookie存储的数据保存在本地客户端,用户获取容易,但安全性不高,存储数据小。 session存储的数据保存在服务器,用户不易获取…...
SQL Server2008下载地址
SQL Server2008下载地址 https://www.microsoft.com/zh-CN/download/details.aspx?id30438 版本说明 Microsoft SQL Server 2008 R2 Express Service Pack 2 是功能丰富的 SQL Server 免费版本,是学习、开发桌面、Web 及小型服务器应用程序并为它们提供功能的理…...
MySQL函数和约束
MySQL常见函数 字符串常见函数 # concat : 字符串拼接 select concat(Hello , MySQL); # lower : 全部转小写 SELECT LOWER(Hello); # upper : 全部转大写 SELECT UPPER(hello); # lpad : 左填充 SELECT LPAD(hello,10,0); # rpad : 右填充 SELECT RPAD(hello,10,0); # trim…...
关于一个git的更新使用流程
1.第一步使用git bash 使用git bash命令来进行操作(当然我是个人比较喜欢用这种方法的) 2. 第二步:连接 3.第三步:进入 4.第四步:查看分支 5.第五步:切换分支 将本地文件更新后之后进行提交 6.第六步&am…...
vue 对后端返回字段值为null的变成空字符串
// 字段null转字符串 1.export function null2str(data) { for (let x in data) { if (data[x] null) { // 如果是null 把直接内容转为 data[x] ""; } else { if (Array.isArray(data[x])) { …...
C++,菱形继承和虚继承
一、菱形继承的基本概念 菱形继承又称为钻石继承,由公共基类派生出多个中间子类,又由多个中间子类共同派生出汇聚子类。汇聚子类会得到,中间子类从公共基类继承下来的多份成员。 菱形继承的格式: A --------公共基类/ \…...
js实现一行半文本的截取
最近遇到一个需求是要在第二行的中间截取文本,因为在后面得贴一个图标,所以这种情况用常规的css截取文本有点难处理。于是在上网查阅后发现了几个方法:第一种是用伪元素加定位,把.;11..盖在文字的上面;第二…...
计算一个区间时间差值,时间保留剩下的差值
解决目的 begin end,去除集合类的其他区间差值List<rang> r1 new ArrayList(); 得到差值package com.jowoiot.wmzs.utils.date;import com.google.common.collect.Lists; import com.google.common.collect.Range; import org.apache.commons.lang.time.Dat…...
uniapp 微信小程序添加隐私保护指引
隐私弹窗: <uni-popup ref"popup"><view class"popupWrap"><view class"popupTxt">在你使用【最美万年历】之前,请仔细阅读<text class"blueColor" click"handleOpenPrivacyContract…...
行业追踪,2023-08-30
自动复盘 2023-08-30 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…...
Redis——》Redis的部署方式对分布式锁的影响
推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…...
VTK——使用包围盒切割医学图像
VTK 库 vtkDICOMImageReader:专门用于读取医学图像格式 DICOM 的类。DICOM(Digital Imaging and Communications in Medicine)是医学图像和信息的标准。 vtkImageGaussianSmooth:用于图像的高斯平滑处理,主要用于去噪…...
在工具提示中使用自绘修改字体
在上一篇文章中,我们学习了如何在应用程序中添加工具提示。在之前的例子代码中,我们通过简单地为创建的工具提示设置了目标字体,这种方法很简单,因为自始至终,我们都只创建了一个工具提示。 但是,如果在应…...
【Git管理工具】使用Docker部署GitLab服务器
【Git管理工具】使用Docker部署GitLab服务器 一、GitLab介绍1.1 GitLab简介1.2 GitLab特点二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本三、Docker CompseV2版本升级(可选)3.1 创建…...
安装kali虚拟机镜像的坑
1.0 安装虚拟机镜像成功之后,只有光标,没有界面 在VMware上安装kali linux环境时,根据提示操作完成后,开启虚拟机,屏幕黑屏,左上角有一个光标在闪,一直开不了机。 出现问题的原因,…...
【Android】TextView适配文本大小并保证中英文内容均在指定的UI 组件内部
问题 现在有一个需求,在中文环境下textView没有超过底层的组件限制,但是一切换到英文环境就超出了,这个如何解决呢?有啥例子吗? 就像这样子的。 解决 全部代码如下: <?xml version"1.0"…...
【力扣每日一题】2023.8.31 一个图中连通三元组的最小度数
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个无向图,要我们找出三个节点,这三个节点他们两两相连,这三个节点除了连接到对方的其他线…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
