0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探索LabVIEW编程接口幂等性原理与实践

jf_NKOETB7n 来源:LabVIEW的编程之道 2024-02-29 10:24 次阅读

里讲一个很高大上的概念,但是也是一个很简单,使用非常频繁的功能:接口幂等,然后讲两个实现方式。

一、接口幂等性简介

1.1接口幂等定义:

幂等性原来是数学上的概念,在编程领域可以理解为:多次请求某一个资源或执行某一个操作时应该具有唯一性同样等结果,也就是说,其任意多次执行对资源本身所产生等影响的结果或函数执行的结果,都与第一次执行的结果相同。

1.2在LabVIEW里的主要解决的问题:
1.2.1、在结果没有完成时的重复点击。

1.2.2、无意间的双击导致重复发送命令。

1.2.3、按键防抖。

1.2.4、在生成消费者中,生产数量大于消费数量,且可以忽略多与生成者的情况下。

1.2.5、在操作者架构Actor Framework使用其功能可以避免消息队列堆积。

1.3、接口幂等的使用条件

要实现接口幂等最好是对命令和操作进行解耦,例如以下软件架构:生产消费者,JKI,AMC,DQMH等。

1.4、这里提供两种解决方法

1、控件禁用方式实现。

2、使用唯一ID实现。

二、接口幂等的解决办法1-控件禁用

我们直接用状态机章节中的异步状态机的例子改造下,利用控件禁用实现接口幂等操作。

1、我们要实现的功能就是点击运行后禁用运行按钮,当运行结束或点击复位时使能运行按钮,如下图所示。

f17a673c-d6a1-11ee-a297-92fbcf53809c.png

2、在Run事件中添加禁用运行按钮代码,在洗涤结束流程中添加使能Run代码。

f1918fa2-d6a1-11ee-a297-92fbcf53809c.png

3、在停止和复位事件中天健Run使能代码

f1aa8f5c-d6a1-11ee-a297-92fbcf53809c.png

f1b16764-d6a1-11ee-a297-92fbcf53809c.png

4、下边时运行效果

f1b505f4-d6a1-11ee-a297-92fbcf53809c.gif

可以看到在设备运行时禁用了运行控件,当运行结束后可以再次点击运行。

三、接口幂等的解决办法2-唯一ID

3.1、接口幂等的执行流程

f1f6ee24-d6a1-11ee-a297-92fbcf53809c.png

3.1.1先要创建一个全局的ID

3.1.2、发送命令时读取全局ID并和命定打包

3.1.3、执行单元接收到打包的命令后与将打包的ID和全局ID进行比较

3.1.4、ID相等执行命令后将ID++

3.1.5、ID不同时忽略该命令

3.2、先设计个FGV来保存和ID便于操作

Set

f206ade6-d6a1-11ee-a297-92fbcf53809c.png

Get

f2240b98-d6a1-11ee-a297-92fbcf53809c.png

Unlokc

f23193d0-d6a1-11ee-a297-92fbcf53809c.png

3.3、修改JKI传递的数据类型将原来的字符串改成簇,其中包含ID和命令字符串。

3.4、在处理事件时增加幂等处理,如果ID不等则忽略命令,将退出命令提升到最高优先级

f23f4534-d6a1-11ee-a297-92fbcf53809c.png

3.5、下边是最后运行效果

f253ea0c-d6a1-11ee-a297-92fbcf53809c.gif

四、需要安装的软件或工具包

1.LabVIEW2015中文版

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LabVIEW
    +关注

    关注

    1918

    文章

    3619

    浏览量

    317001
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27182

原文标题:LabVIEW的编程之道-接口幂等

文章出处:【微信号:LabVIEW的编程之道,微信公众号:LabVIEW的编程之道】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LabVIEW 助力优化软件开发实践和源代码控制

    软件的可扩展性和可维护的工程开发实践。正确实施的软件工程可以提高应用程序的全局质量(提高开发者的工作效率并且降低维护成本。在这篇文章中(可以学习到如何使用LabVIEW内建专用的特性和工具来完成最佳
    发表于 09-13 09:30

    高职院校数字电路设计实验的探索实践

    的有效途径,具有综合、创新探索性[[4]。数字电路设计实验是学生根据教师给定的实验任务和实验条件,自行查阅文献、设计方案、电路安装
    发表于 10-25 11:59

    高职院校数字电路设计实验的探索实践

    深人到综合、设计实验,从利用实验来加深对已学理论知识的理解,深人到将实验作为学生学习新知识、新技术、新器件,培养学生实践能力、创新能力的重要目的仁‘〕。  1高职院校实验教学存在的问题  数字电路
    发表于 10-28 14:58

    《开关电源设计与调试》课程建设实践探索

    《开关电源设计与调试》课程建设实践探索,《开关电源设计与调试》课程建设实践探索
    发表于 06-15 23:36

    LabVIEW 深入探索

    LabVIEW 深入探索
    发表于 07-01 10:54

    基于实践LabVIEW零基础入门视频教程---03 LabVIEW编程小技巧

    本课程将用项目与实践的方法带领大家零基础入门LabVIEW,通过教大家用不同的方法编写一款计算器软件,来彻底学会和掌握LabVIEW。看完视频,大家肯定会有收获。03 LabVIEW
    发表于 01-16 22:01

    【下载】《LabVIEW编程样式》——有关LabVIEW编程的最佳实践指南

    `内容简介 《LabVIEW编程样式》是一本有关LabVIEW编程的最佳实践指南。针对应用程序的易用
    发表于 08-14 18:11

    离线计算中的和DataWorks中的相关事项

    考虑到,导致对应的单据有两条确认记录。点此查看原文:http://click.aliyun.com/m/42758/概念这个词在软
    发表于 02-27 13:24

    LabVIEW 编程指南

    LabVIEW 编程
    发表于 07-01 10:32 315次下载

    LabVIEW与C接口设计

    LabVIEW与C接口设计 介绍一种LabVIEW与C接口的设计方法。利用此接口方法,可以根据实际应用的要求,扩展
    发表于 10-16 09:30 3592次阅读
    <b class='flag-5'>LabVIEW</b>与C<b class='flag-5'>接口</b>设计

    中科慧宝“用户零投入”的探索实践

    中科慧宝“用户零投入”的探索实践 摘要:“一个20瓦的LED灯成本要200元,一个普通白炽灯泡才卖多少钱?”中科慧宝总裁胡冰,一
    发表于 04-10 10:28 808次阅读

    Labview编程举例

    简单易懂的labview编程实例 适合Labview的新手教程
    发表于 12-22 14:38 0次下载

    LabVIEW编程技巧

    LabVIEW编程技巧LabVIEW编程技巧LabVIEW编程技巧
    发表于 02-23 16:59 137次下载

    LabVIEW编程的实用技巧系列(5)

    LabVIEW编程的实用技巧系列第五讲视频教程
    的头像 发表于 06-25 12:11 2000次阅读
    <b class='flag-5'>LabVIEW</b><b class='flag-5'>编程</b>的实用技巧系列(5)

    测控工程实践LabVIEW实践教程

    测控工程实践LabVIEW实践教程说明。
    发表于 04-19 14:29 42次下载