【LabVIEW学习篇 - 12】:通知器

news2024/9/25 3:21:33

文章目录

  • 通知器
  • 案例一
    • 案例二
    • 案例三(在不同VI中用同一个通知器)

通知器

同步技术:同步技术用来解决多个并行任务之间的同步或通信问题。

通知器比较适合一对多的操作,类似于广播,一点发出的通知消息,
其它多个点可以同时收到这个消息。与设计模式中的“观察者”模式基本一样。

通知器在LabVIEW中,通过名称来区分,这个名称是全局的,所以通知器可以在不同的任务或vi之间传递消息(数据)。
在这里插入图片描述

案例一

使用通知器,实现输入字符串时,分别对字符串进行操作,转为大写和反转字符串。

  1. 在前面板中,放置1个字符串输入控件和2个字符串显示控件,并分别名为为obj1、obj2、obj3,然后在程序框图中设置好while循环结构和事件结构。
    在这里插入图片描述

  2. 在程序框图中,鼠标右键-同步-通知器操作-获取通知器引用,然后在其名称接线端创建常量,输入notifier text,即设置通知器的名称,并将其连接到元素数据类型,即设置为布尔类型,然后鼠标右键-同步-通知器操作-释放通知器引用,并将其连接好。
    在这里插入图片描述

  3. 添加事件分支,为 “obj1”:值改变 ,然后鼠标右键-同步-通知器操作-发送通知,将“通知”接线端连接到“新值”,即obj1的值发生改变时,则会把改变后的新值通过通知器发送出去。
    在这里插入图片描述

  4. 再添加事件分支,操作如下,当前面板关闭时,则会释放通知器引用,停止while循环。
    在这里插入图片描述
    在这里插入图片描述
    Tips:鼠标放入事件、条件等结构中,按住ctrl键,滑动鼠标滚轮,即可切换事件分支。

  5. 在程序框图中,鼠标右键-同步-通知器操作-获取通知器状态,然后将“通知器”端与“通知器输出”端连接,“错误输出”连接到循环条件,接着鼠标右键-字符串-转换为大写字母,将其与获取通知器状态的“最近一次通知”端连接起来。
    当第一个循环停止时,释放通知器引用,则在第二、三个while循环的等待通知器状态的“错误输出”端会输出“T”,循环停止。
    在这里插入图片描述

  6. 在程序框图中,鼠标右键-字符串-附加字符串函数-反转字符串,然后与第五步的操作相同,设置好第三个循环。
    在这里插入图片描述

  7. 最终的程序
    在这里插入图片描述

  8. 在前面板中,选中字符串输入控件,鼠标右键-键入时刷新,目的是当输入数据时,显示控件同步显示。运行结果如下:
    在这里插入图片描述

案例二

使用通知器,实现点击停止按钮时,波形图表停止。

  1. 在前面板中放置一个停止按钮和两个波形图表,并在程序框图中设置好对应的while循环结构和事件结构。
    在这里插入图片描述

  2. 添加事件分支,为 “停止”:值改变,并设置好通知器,其元素数据类型设置为布尔类型,再放置发送通知,其“通知”端连接“T”,即当按下停止按钮时,会发送“T”。
    在这里插入图片描述

  3. 在程序框图中,鼠标右键-同步-通知器操作-等待通知,然后将其放置到第二个while循环中,其“通知器”端连接到“通知器输出”端,“超时毫秒(-1)”设置为100,“通知”端连接到循环条件,最后设置定时时间为100ms,随机生成数据给波形图表。
    第三个while循环的设置与第二个while循环相同。
    在这里插入图片描述

  4. 运行结果:
    在这里插入图片描述
    在这里插入图片描述

案例三(在不同VI中用同一个通知器)

使用通知器,实现在一个VI中输入字符串数据,另一个VI中显示字符串数据,最后点击停止按钮时,两个VI同时停止。

  1. 创建一个VI,命名为 notifier1.vi (可任意命名),然后在前面板中放置字符串输入控件并设置为“键入时刷新”和停止按钮,在程序框图中创建好while循环结构和事件结构。
    在这里插入图片描述
  2. 创建一个通知器,命名为string,并添加事件分支,为“字符串”:值改变,放置发送通知,将其“通知器”端连接到“通知器输出”端,“通知”连接到“新值”,即当字符串输入控件中的字符串发生改变时,发送通知。
    在这里插入图片描述
  3. 再添加一个事件分支,为 “停止”:值改变,在其中放置发送通知,并设置其“通知”端为stop
    stop作为一个自定义的停止信号,即当点击停止按钮时,发送stop通知,另一个VI收到该stop通知后与stop字符串进行比较,当等于stop,则停止程序。
    在这里插入图片描述
  4. 再创建一个VI,命名为 notifier2.vi,在其前面板中放置字符串显示控件,在程序框图中设置好while循环结构。
    在这里插入图片描述
  5. 在notifier2.vi中设置与notifier1.vi相同的通知器,并在其中放置等待通知,其“通知”端连接字符串显示控件,即将收到的“通知”信息显示在字符串显示控件上,同时将“通知”端的信息与字符串stop进行比较,若相同,则停止程序。
    在这里插入图片描述
  6. 同时运行两个VI,在 notifier1.vi 中的字符串输入控件中输入字符串时,会在 notifier2.vi 中的字符串显示控件中显示字符串。
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1971376.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【开源】嵌入式Linux(IMX6U)应用层综合项目(2)--智能家居APP

目录 1.简介 1.1功能介绍 1.2技术栈介绍 1.3演示视频 1.4硬件介绍 2.软件设计 2.1智能家居UI设计 2.2.main函数 3.结尾(附网盘链接) 1.简介 此文章并不是教程,只能当作笔者的学习分享,只会做一些简单的介绍,其…

【电路笔记】-放大器失真

放大器失真 文章目录 放大器失真1、概述2、放大器因幅度失真而产生失真3、削波导致的幅度失真4、谐波引起的频率失真5、相位失真导致的放大器失真放大器失真可以采取许多形式,例如幅度、频率和相位失真,由于剪裁引起。 1、概述 放大器要正确运行且不产生输出信号失真,需要在…

跨境电商做独立站你需要考虑的几个问题

跨境电商卖家无论是做B2B还是B2C的,大部分卖家都是从平台开始做起,后面可能会都接触到独立站,但是说到独立站,相信很大部分的人都不了解,就拿最简单的问题来说,经常有人问,独立站和平台有什么区…

MATLAB(11)智能算法+BP神经网络

一、前言 在MATLAB中实现智能算法与BP神经网络的结合,需要分别编写智能算法的代码和BP神经网络的训练代码,并将两者整合起来。由于篇幅限制,我将提供一个简化的示例,使用遗传算法(Genetic Algorithm, GA)来…

《学会 SpringMVC 系列 · 返回值处理器》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

微调(二)

Selective类方法中的BitFit 它的核心思想是仅更新模型中的偏置项(bias terms)或部分偏置项,从而实现参数的稀疏更新。这种方法在小到中等规模的训练数据上表现出色,有时甚至能够超越全模型微调的性能。对于BERT模型,B…

【PGCCC】PostgreSQL 14 小版本分析,有那个版本不建议使用#PG中级

以下是对 PostgreSQL 14 各个小版本的详细分析,包括每个版本的主要变化、修复的 bug 和潜在的问题: PostgreSQL 14.0 发布日期:2021 年 9 月 30 日 主要变化: 增加了并行查询的改进,提升了性能。增强了 JSON 数据类…

美团2024年春招第一场笔试[测开方向],编程题+选择题详解,ACM式C++解法

编程题&选择题 编程题小美的平衡矩阵思路代码 小美的数组询问思路代码 验证工号思路代码 选择题1.在计算机网络中,端口号的作用是什么2.HTTPS协议通过使用哪些机制来确保通信的安全性3.Etag用于标识资源的唯一标识符,他可以用于4.在一个单道系统中&a…

乱弹篇(40)人类追求长寿

不要认为只有中国的老龄化才严重,实际上全球都面临老龄化,其中日本最为严重。 这是随着人类生活和医学水平的不断提高,寿命才会比过去数十年有了大幅度的提升。据资料显示,目前全球平均预期寿命估计为73岁。与百年之前相比&#…

DNS在架构中的使用

1 介绍 DNS(Domain Name System,域名系统)是一种服务,它是域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。简单来说,DNS就是…

dpdk实现udp协议栈

使用DPDK实现UDP用户态协议栈,实现流程中包括: 三类线程 1、收发包线程 2、用户态协议栈线程 3、udp服务端线程 两类缓冲区: 1、协议栈收包缓冲区和协议栈发包缓冲区 2、udp收包缓冲区和udp发包缓冲区 协议栈缓冲区中存储的数据是str…

在线考试系统产品分析与技术实现的深度融合

在当今数字化教育浪潮中,在线考试系统作为教育信息化的重要组成部分,正以前所未有的速度改变着传统教育模式。它不仅打破了地域和时间的限制,提高了考试效率与公平性,还通过数据分析为教育决策提供了科学依据。本文旨在探讨在线考…

集装箱排柜系统介绍

1.功能介绍 用户导入产品基本信息表,每个货号代表一种货物,它放一个立方体中,此立方体称为托。 之后,用户导入订单表,其中的货号是顾客订购的货物。 用户选好目的港、集装箱类型等信息,集装箱排柜系统开始计…

解锁AI潜能,引领智能新时代——《深度强化学习》

在人工智能的浪潮中,深度强化学习如同一股不可忽视的强流,正以前所未有的速度推动着科技的边界,引领我们进入一个充满无限可能的新时代。这本《深度强化学习》不仅是一部技术宝典,更是一场关于智能探索与梦想实现的深度对话&#…

太阳能光伏气象站:绿色能源与气象科技

在追求可持续发展的道路上,太阳能光伏气象站以其独特的创新设计,成为了绿色能源与气象科技融合的典范。这款设备不仅利用太阳能作为清洁能源供电,还集成了先进的气象监测技术,为光伏发电提供了精准的环境数据支持。 太阳能光伏气象…

无缝融入,即刻智能[1]:MaxKB知识库问答系统,零编码嵌入第三方业务系统,定制专属智能方案,用户满意度飙升

无缝融入,即刻智能[1]:MaxKB知识库问答系统,零编码嵌入第三方业务系统,定制专属智能方案,用户满意度飙升 1.简介 MaxKB(Max Knowledge Base)是一款基于 LLM 大语言模型的开源知识库问答系统, 官方网址:https://maxkb.cn/ GitHub:https://github.com/1Panel-dev/MaxKB…

pycharm如何查看git历史版本变更信息

通过名字查看不同版本 查看版本不同地方

Django REST Framework(十五)路由Routes

如何在Django REST framework中利用SimpleRouter和DefaultRouter来高效生成视图集的路由信息,并详细解释如何使用action装饰器为视图集中的自定义方法生成路由 1.路由的定义规则 路由称为URL(Uniform Resource Locator,统一资源定位符),也可以称为URLconf,是对可以从互联…

【xss-labs-master】靶场通关详解!-----持续更新

XSS基础概念: 跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其…

在线考试系统产品源码功能架构与技术解析

首先,它极大地提升了考试的便捷性和效率,使得教育机构、企业乃至个人能够随时随地组织考试,打破了传统考试在时间和空间上的限制。其次,通过自动化的评分和数据分析功能,在线考试系统能够迅速反馈考试结果,…