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

文章目录

  • 通知器
  • 案例一
    • 案例二
    • 案例三(在不同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.rhkb.cn/news/392872.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 3.3 新特性介绍

1. 引言 Spring Boot 3.1.x 停止维护了,而 3.3.x 作为最新发布的版本,带来了许多新特性和改进。本篇文章将详细介绍这些新特性,并通过样例代码加以解释,帮助开发者更好地掌握和应用这些新功能。 Spring Boot 3.3现已正式发布&…

Android studio配置代码模版

一、背景: 在工作中,总是要写一些重复的代码,特别是项目有相关规范时,就会产生很多模版代码,每次要么复制一份,要么重新写一份新的,很麻烦,于是我就在想,能不能像创建一…

小程序开发入门:第一天的学习和实践指南

目录 一. 理解小程序的基本概念 1. 无需安装 2. 快速启动 3. 界面简洁 4. 独立性和封闭性 5. 数据安全 6. 框架结构 7. 生命周期 8. 全局配置 9. API支持 10. 发布和更新 二、选择合适的开发工具 1. 微信开发者工具 2. Visual Studio Code 3. Sublime Text 4. …

Tensor安装和测试

1: 打开git官方 https://github.com/NVIDIA/TensorRT 2: 下载得到:TensorRT-10.2.0.19.Linux.x86_64-gnu.cuda-11.8.tar.gz 3: 下载后配置环境变量,上面地址记得改成真实地址。 4: 如果想python使用tensorrt,那么 解压后目录&#xff0c…

【HTML入门】第二十三课 - 【实战】做一个简单的图书详情页

这一节,我们继续用纯HTML来做一个实战小案例。 我找了一个图书详情的页面,就像这样: 这一小节,我们用纯HTML标签,来实现一下这个图书详情的内容。 目录 1 布局分析 2 用到的标签 3 实战代码 1 布局分析 我们看这张…

吴恩达机器学习-C1W3L2-逻辑回归之S型函数

可选实验:逻辑回归 在这个不评分的实验中,你会 探索sigmoid函数(也称为logistic函数)探索逻辑回归;哪个用到了s型函数 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from plt_one_addpt_onclick import plt_one_addpt_onclick from l…

Flutter 插件之http(介绍、使用、二次封装)

背景 在我们日常开发过程中,经常会使用到网络请求,而在Flutter插件中,最常用的请求插件一共两个,分别是: 1、dio 2、http 其中dio我已经做过详细介绍了(post、get等请求、文件上传、请求重试等),这里就不做过多阐述,下面附上文章链接,如有需要可前往查看。 http…

如何申请一年期IP地址SSL证书

在数字化的时代,网络安全越来越重要,SSL证书已经成为网站的标配,它承担着保护网站安全的重大作用。一般申请SSL证书都是用域名来申请的,不过当没有域名或者域名无法使用时,就需要使用IP地址来申请SSL证书了&#xff0c…

Cursor搭配cmake实现C++程序的编译、运行和调试

Cursor搭配cmake实现C程序的编译、运行和调试 Cursor是一个开源的AI编程编辑器,开源地址https://github.com/getcursor/cursor ,它其实是一个集成了Chat-GPT的VS Code。 关于VS Code和VS的对比可以参考这篇文章VS Code 和 Visual Studio 哪个更好&…

等保测评中的访问控制与用户认证:构建安全的访问管理机制

在当今数字化时代,信息安全已成为企业和组织不可忽视的关键议题。等保测评,作为我国信息安全等级保护制度的重要组成部分,对访问控制与用户认证提出了严格要求,旨在构建安全的访问管理机制,保护信息资产不受未授权访问…

怎么写进修总结汇报ppt?有这3个AI软件做PPT再也没烦恼!

在当今瞬息万变的职场环境中,持续学习和自我提升已不再是一种选择,而是生存和发展的必需。作为一种系统化的学习方式,进修为职场人士提供了宝贵的机会来更新知识储备、提升专业技能,并拓展职业视野。当然,进修的价值不…

Dreamweaver (DW)2021 下载 安装

将 Dreamweaver 2021 压缩包解压到本地: 点击蓝色字体下载压缩包 提取码 ixsu 鼠标右键 点击 Set-up 选择 以管理员身份运行: 点击 更改位置 可以自定义选择安装路径 也可以选择默认位置 点击 继续: 等待安装 正常等待5分钟左右&#xff1…

12月长沙学术会议:EI检索,机器人、自动化与智能控制方向

在春意盎然、生机勃勃的四月,全球科技界的目光聚焦于中国长沙,这里即将迎来一场科技与智慧碰撞的盛宴——第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)。本次盛会由历史悠久、文化底蕴深厚的湖南第一师范学院荣耀主办&am…

电话营销机器人革新电销行业

第一,减少企业各方面的支出 企业需要各方面的支出。例如,招聘成本和管理成本、员工薪资和社保都是非常大的支出。但AI智能电销机器人,只要购买费用和电话费的一小部分,就没有更多的费用。经计算,该机器人的成本仅相当于…

vector 简单模拟实现

目录 一. vector成员变量 二. vector的构造函数和析构函数 三. vector的成员函数 1. 容量操作函数 扩容操作 (1). finish更新问题 (2). 扩容深浅拷贝问题 resize与尾插、尾删与判空 insert与erase与clear 2. 函数重载 (1). 赋值运算符重载 (2). [ ]重载进行访问 四. …

c++ - unordered_set与unordered_map模拟实现

文章目录 前言一、unordered_set模拟实现二、unordered_map模拟实现 前言 1、unordered_set与unordered_map的介绍与接口使用可参考:unordered_set 、 unordered_map。 2、unordered_set和 unordered_map 的底层实现都是基于哈希表的。哈希表是一种通过哈希函数组织…

LoRa无线通讯,让光伏机器人实现无“线”管理

光伏清洁机器人,作为光伏电站运维的新兴关键设备,已跃升为继组件、支架、光伏逆变器之后的第四大核心组件,正逐步成为光伏电站的标准配置。鉴于光伏电站普遍坐落于偏远无人区或地形复杂之地,光伏清洁机器人必须具备远程操控能力、…

深入源码P3C-PMD:rule (4)

系列文章目录 文章目录 系列文章目录rule 的应用类别 rule rule 自定义XML rule 定义Tree 漫游错误报告生命周期 designer rule相关的代码在每个子 module 的 rule 文件夹。而且也以一些 ruleset 为范围分了文件夹,如下图所示: 对每个 rule 来说&#xf…

PHP教育培训小程序系统源码

🚀【学习新纪元】解锁教育培训小程序的无限可能✨ 📚 引言:教育培训新风尚,小程序来引领! Hey小伙伴们,是不是还在为找不到合适的学习资源而烦恼?或是厌倦了传统教育模式的单调?今…

盘点12款企业常用源代码加密软件,源代码防泄密很重要!

在当今的商业环境中,源代码作为企业的核心资产之一,其安全性不容忽视。源代码的泄露可能导致企业丧失竞争优势、面临法律诉讼甚至经济损失。因此,选择合适的源代码加密软件成为企业保护知识产权和核心技术的关键步骤。 1. 安秉源代码加密软件…