【LabVIEW学习篇 - 12】:通知器
文章目录
- 通知器
- 案例一
- 案例二
- 案例三(在不同VI中用同一个通知器)
通知器
同步技术:同步技术用来解决多个并行任务之间的同步或通信问题。
通知器比较适合一对多的操作,类似于广播,一点发出的通知消息,
其它多个点可以同时收到这个消息。与设计模式中的“观察者”模式基本一样。
通知器在LabVIEW中,通过名称来区分,这个名称是全局的,所以通知器可以在不同的任务或vi之间传递消息(数据)。
案例一
使用通知器,实现输入字符串时,分别对字符串进行操作,转为大写和反转字符串。
-
在前面板中,放置1个字符串输入控件和2个字符串显示控件,并分别名为为obj1、obj2、obj3,然后在程序框图中设置好while循环结构和事件结构。
-
在程序框图中,鼠标右键-同步-通知器操作-获取通知器引用,然后在其名称接线端创建常量,输入
notifier text
,即设置通知器的名称,并将其连接到元素数据类型,即设置为布尔类型,然后鼠标右键-同步-通知器操作-释放通知器引用,并将其连接好。
-
添加事件分支,为 “obj1”:值改变 ,然后鼠标右键-同步-通知器操作-发送通知,将“通知”接线端连接到“新值”,即obj1的值发生改变时,则会把改变后的新值通过通知器发送出去。
-
再添加事件分支,操作如下,当前面板关闭时,则会释放通知器引用,停止while循环。
Tips
:鼠标放入事件、条件等结构中,按住ctrl
键,滑动鼠标滚轮,即可切换事件分支。 -
在程序框图中,鼠标右键-同步-通知器操作-获取通知器状态,然后将“通知器”端与“通知器输出”端连接,“错误输出”连接到循环条件,接着鼠标右键-字符串-转换为大写字母,将其与获取通知器状态的“最近一次通知”端连接起来。
当第一个循环停止时,释放通知器引用,则在第二、三个while循环的等待通知器状态的“错误输出”端会输出“T”,循环停止。
-
在程序框图中,鼠标右键-字符串-附加字符串函数-反转字符串,然后与第五步的操作相同,设置好第三个循环。
-
最终的程序
-
在前面板中,选中字符串输入控件,鼠标右键-键入时刷新,目的是当输入数据时,显示控件同步显示。运行结果如下:
案例二
使用通知器,实现点击停止按钮时,波形图表停止。
-
在前面板中放置一个停止按钮和两个波形图表,并在程序框图中设置好对应的while循环结构和事件结构。
-
添加事件分支,为 “停止”:值改变,并设置好通知器,其元素数据类型设置为布尔类型,再放置发送通知,其“通知”端连接“T”,即当按下停止按钮时,会发送“T”。
-
在程序框图中,鼠标右键-同步-通知器操作-等待通知,然后将其放置到第二个while循环中,其“通知器”端连接到“通知器输出”端,“超时毫秒(-1)”设置为100,“通知”端连接到循环条件,最后设置定时时间为100ms,随机生成数据给波形图表。
第三个while循环的设置与第二个while循环相同。
-
运行结果:
案例三(在不同VI中用同一个通知器)
使用通知器,实现在一个VI中输入字符串数据,另一个VI中显示字符串数据,最后点击停止按钮时,两个VI同时停止。
- 创建一个VI,命名为 notifier1.vi (可任意命名),然后在前面板中放置字符串输入控件并设置为“键入时刷新”和停止按钮,在程序框图中创建好while循环结构和事件结构。
- 创建一个通知器,命名为
string
,并添加事件分支,为“字符串”:值改变,放置发送通知,将其“通知器”端连接到“通知器输出”端,“通知”连接到“新值”,即当字符串输入控件中的字符串发生改变时,发送通知。
- 再添加一个事件分支,为 “停止”:值改变,在其中放置发送通知,并设置其“通知”端为
stop
。
stop
作为一个自定义的停止信号,即当点击停止按钮时,发送stop
通知,另一个VI收到该stop
通知后与stop
字符串进行比较,当等于stop
,则停止程序。
- 再创建一个VI,命名为 notifier2.vi,在其前面板中放置字符串显示控件,在程序框图中设置好while循环结构。
- 在notifier2.vi中设置与notifier1.vi相同的通知器,并在其中放置等待通知,其“通知”端连接字符串显示控件,即将收到的“通知”信息显示在字符串显示控件上,同时将“通知”端的信息与字符串
stop
进行比较,若相同,则停止程序。
- 同时运行两个VI,在 notifier1.vi 中的字符串输入控件中输入字符串时,会在 notifier2.vi 中的字符串显示控件中显示字符串。
相关文章:

【LabVIEW学习篇 - 12】:通知器
文章目录 通知器案例一案例二案例三(在不同VI中用同一个通知器) 通知器 同步技术:同步技术用来解决多个并行任务之间的同步或通信问题。 通知器比较适合一对多的操作,类似于广播,一点发出的通知消息, 其它…...

Oracle一对多(一主多备)的DG环境如何进行switchover切换?
本文主要分享Oracle一对多(一主多备)的DG环境的switchover切换,如何进行主从切换,切换后怎么恢复正常同步? 1、环境说明 本文的环境为一主两备,数据库版本为11.2.0.4,主要信息如下: 数据库IPdb_unique_n…...

【浏览器插件】Chrome扩展V3版本
前言:Chrome从2022年6月开始,新发布插件只接受V3版。2024年V2版已从应用商店下架。 浏览器扩展插件开发API文档 chrome官网(要翻墙): https://developer.chrome.com/docs/extensions/mv3 MDN中文:https:/…...

编码器信号干扰问题、编码器选型
系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、屏蔽技术1.静电屏蔽:2.低频磁屏蔽:3.电磁屏蔽:4.减少“天线” 二、增量编码器的信号选择三、信号电缆选择四、…...

Unity入门5——材质
创建材质 点击Assets → Create → Material,得到一个默认材质球的副本。 使用材质 直接把材质球拖拽到物体上,或设置mesh renderer组件下的Materials 数组中第一个元素...

C的温故而知新:存储类别、链接和内存管理(C Primer Plus第十二章)
存储类别、链接和内存管理 这一章主要涉及到的是一些偏概念的东西,基本上偏向于自己去理解这部分内容。很好地理解这一章可以更好地控制程序,合理的利用内存存储数据。 C语言提供了多种不同的模型或存储类别在内存中存储数据。作用域有块作用域、函数作…...

SpringBoot统一功能处理——统一数据返回格式
目录 一、简单使用 二、存在的问题描述 三、优点 一、简单使用 统一的数据返回格式使用 ControllerAdvice 和 ResponseBodyAdvice 的方式实现 ControllerAdvice 表示控制器通知类。 添加类 ResponseAdvice , 实现 ResponseBodyAdvice 接口,并在类上添加 …...
Milvus 实践(2) --- 2.4.x 安装,脚本分析,数据存储解析
目录 背景 Milvus2.4.x安装脚本分析 etcd组件 container_name image 参数 注意问题 environment volumes 实体化 command 参数 注意事项 healthcheck 参数 作用 下载 minio组件 container_name image 参数 注意事项 environment 参数 ports 参数 注…...
【蛋疼c++】千万别用std::wifstream读取Unicode UTF16文件
上当了。 最近程序要和 Jscript / activex 脚本通信。 ActiveX这玩意,导出文件,如果是UTF8导出,会出现莫名异常:写一半直接退出。或许是系统语言设置的问题。 但是切换为utf16(unicode)导出就没有问题&a…...

[算法] 第二集 二叉树中的深度搜索
深度优先遍历(DFS,全称为 Depth First Traversal),是我们树或者图这样的数据结构中常⽤的 ⼀种遍历算法。这个算法会尽可能深的搜索树或者图的分支,直到⼀条路径上的所有节点都被遍历 完毕,然后再回溯到上…...
放弃使用外键时,sequelize 应该怎么使用?
在使用 Sequelize 时,如果想放弃使用外键,但仍然希望在模型之间建立关联,可以通过设置 constraints 选项为 false 来实现。这允许你定义模型之间的关系,而不在数据库中创建外键约束。以下是具体的实现步骤: 定义没有外…...
Microsoft GraphRAG 输出的配置信息
Microsoft GraphRAG 输出的配置信息 {"llm": {"api_key": "REDACTED, length 9","type": "oci_genai_chat","model": "cohere.command-r-plus","max_tokens": 4000,"temperature"…...

怎么判断张量的维度(形状(shape)),即如何定义行数、列数和深度的?
举一个三维张量吧 # 3行4列深度为2 const3 tf.constant([[[1,2],[3,4],[5,6],[7,8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]] ],tf.float16) shape (3,4,2)--借鉴博主奶油松果的图和代码 分析形状 (3, 4, 2) 最外层的括号&…...

AI入门指南(二):算法、训练、模型、大模型是什么?
文章目录 一、前言二、算法是什么?概念实际应用 三、训练是什么?概念实际应用 四、模型是什么?概念实际应用小结 五、大模型是什么?概念大模型和小模型有什么区别?大模型分类实际应用 六、总结七、参考资料 一、前言 …...
CSS已访问链接的隐私保护
摘抄自:《CSS权威指南 第四版》 有超过十年的时间,已访问的链接可以使用任何可用的CSS属性装饰,与未访问链接没有差别。 然而,大约在2005年,有几个人通过示例揭露,通过视觉样式和简单的DOM脚本就可以判断用…...

代码练习12-排序链表
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 归并排序算法核心步骤 归并排序核心步骤如下: 把长度为n的要排序的序列,分成两个长度为n/2的子序列;对这两个子序列,分别采用归并排序;…...

Linux 内核源码分析---套接字
套接字通信 ISO 设计一种参考模型,定义组成网络的各个层,该模型由7层组成,称为OSI(开放 系统互连)模型如下: 应用层:网络服务与最终用户的接口; 表示层:数据的表示、安…...

vscode配置xdebug断点调试详细教程
注:环境为本地windows开发环境,编辑器为vscode,PHP集成环境工具为EServer vscode安装扩展并配置 安装PHP Debug 扩展中搜索 PHP Debug 并安装: 配置PHP Debug 1、点击扩展设置 2、在设置中,点击 setting.json 3、编…...

【人工智能】Transformers之Pipeline(八):文生图/图生图(text-to-image/image-to-image)
目录 一、引言 二、文生图/图生图(text-to-image/image-to-image) 2.1 文生图 2.2 图生图 2.3 技术原理 2.3.1 Diffusion扩散模型原理 2.3.2 Stable Diffusion扩散模型原理 2.4 文生图实战 2.4.1 SDXL 1.0 2.4.2 SD 2.0 2.5 模型排名 三、总…...

AI Agent 工程师认证-学习笔记(1)——【单Agent】ModelScope-Agent
学习链接: 【单Agent】ModelScope-Agent学习指南https://datawhaler.feishu.cn/wiki/GhOLwvAPkiSWmokjUgqc1eGonDf 手把手Agent开发开源教程(觉得不错的话可以star一下)https://github.com/datawhalechina/agent-tutorial 动手学Agent应用…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...