前言

近期,小黑在写程序的时候,经常会遇到一些重复性的工作。尤其是在写到QMH(Queued Message Handler)程序时,经常需要创建UI界面上的一些控件引用,并且在程序中捆绑成簇使用。

今天,小黑将以JKI StateMachine来介绍脚本编程,通过一些脚本编程来简化机械开发,让自己的程序6的飞起。

设计说明

JKI状态机中,在 "Initialize Core Data" 分支里,我们通常需要初始化一些数据,当涉及到UI界面上属性的一些变化时,需要将引用作为关键数据结构存储。

这时,创建引用以及引用的数据结构将会非常机械,每次操作都会是一次重复劳动。
 细数我们的重复劳动主要包括以下几点:
0.整理控件
如果你不会用快捷键,整理控件是一个考验耐心的活动....
1.为每一个控件创建引用
这里在高版本的LabVIEW中,你可以一键创建所选控件的引用,而在低版本LabVIEW中,是无法一起创建的。重复为每一个控件创建引用将是比较繁琐的工作。
2.为每一个控件引用创建常量,作为数据结构
当你创建引用后,你需要一个簇常量来定义你的结构,这时右键也没有相关的操作可以实现快速创建常量。
 
你不得不一个个为其创建引用常量

3.创建完毕后,你需要将其控件引用整理,并且一一对应初始化,如果赋值顺序弄错,这也是比较闹心的
为此,小黑非常希望自己可以一键创建相关的内容,可以解决如上的烦恼

设计目标

发现问题是解决问题的开始,自从有这个需求后,小黑变开始学习脚本编程,希望通过自动化的程序,实现如下的步骤:
1.自动整理控件,所有标签放置于左侧
2.自动创建控件引用,并且排列顺序和控件顺序一致
3.自动创建引用的簇常量

设计结果

经过设计后,小黑成功实现了如下的功能,再也不用担心控件多,不用担心控件的引用创建问题啦:
UI设计完成后,程序框图如下:
 通过脚本编程,一键实现如下功能:
选中需要创建引用的控件
弹出QuickDrop窗口

使用快捷键创建脚本,一键搞定,轻松又愉快
 特别是涉及到大量的控件引用需要创建时.....这就是神器....

那如何开始脚本编程呢?

第一步:打开脚本编程

在Option-->VI Server中勾选VI Scripting ,你将开启脚本编程之旅

这时,你的Application Control将会多出VI Scripting 选板,增加了脚本编程所必须的一些函数
你将会增加一些Scripting的属性和方法,也将可以创建一些蓝色的属性节点


第二步:掌握脚本编程

置于如何掌握脚本编程,这就同你如何掌握LabVIEW开发一样,通过源码的阅读是最快的途径
D:\Program Files (x86)\National Instruments\LabVIEW 2015\resource\dialog\QuickDrop\plugins\ 

读取源码,了解脚本编程的奥秘
 
通过脚本编程的练习,你将写出各种各样的工具,来实现自己快速编程的想法,想想也是蛮有趣的。

后续我将会抽时间介绍一些脚本编程常用的开发技巧~

后记

如果你对我之前开发的工具包感兴趣,我也开发了一个安装包可以使用,LabVIEW 2015版本支持(低版本的没做成工具包,需要手动安装,最低2013版本)

如果想要此工具包,可以后台联系我。需要注意的是:尊重劳动成果,工具包会收取一些费用,如果有必要再询价获得~

 

 

 

 

【VI Script】你不知道的脚本编程的更多相关文章

  1. Shell脚本编程(一):初识shell script

    Shell简介 Shell是一个命令解释器,它是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核 ...

  2. SHELL脚本编程的常识和VI常用技巧

    来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

  3. shell script 脚本编程

    介绍 Shell脚本编程30分钟入门 Shell 教程 Linux 的 Shell 种类众多,常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again ...

  4. Bash脚本编程基础

    为实现某个任务,将许多命令组合后,写入一个可执行的文本文件的方法,称为Shell脚本编程. 按照应用的Shell环境不同,可以将Shell脚本分为多种类型.其中最常见的是应用于Bash和Tcsh的脚本 ...

  5. Shell脚本编程学习入门 01

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  6. 【Shell脚本编程系列】知识储备以及建立规范的脚本

    前言 学习shell脚本编程需要的知识储备: vi/vim编辑器命令 vimrc设置要熟练 基础命令,100多个要熟练 基础和常用的网络服务命令要会:nfs . rsync. inotify . la ...

  7. Shell脚本编程与文件系统修复

    导读 Linux基金会发起了LFCS认证(Linux 基金会认证系统管理员)Linux Foundation Certified Sysadmin,这是一个全新的认证体系,旨在让世界各地的人能够参与到 ...

  8. Shell脚本编程30分钟入门

    Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...

  9. linux(七)__shell脚本编程

    一.什么是shell脚本 shell除了是命令解释器之外还是一种编程语言,用shell编写的程序类似于DOS下的批处理程序. 它是用户与操作系统之间的一个接口. shell脚本语言非常擅长处理文本类型 ...

随机推荐

  1. BZOJ3526 [Poi2014]Card 【线段树】

    题目链接 BZOJ3526 题解 思来想去,发现很显然可以用线段树维护 每个区间保存所有合法方案的左右端点[当左端点一定是,右端点当然存最小的那个就行了] 这么整的数,\(\frac{1}{1000} ...

  2. bzoj4870: [Shoi2017]组合数问题(DP+矩阵乘法优化)

    为了1A我居然写了个暴力对拍... 那个式子本质上是求nk个数里选j个数,且j%k==r的方案数. 所以把组合数的递推式写出来f[i][j]=f[i-1][j]+f[i-1][(j-1+k)%k].. ...

  3. bzoj3694: 最短路(树链剖分/并查集)

    bzoj1576的帮我们跑好最短路版本23333(双倍经验!嘿嘿嘿 这题可以用树链剖分或并查集写.树链剖分非常显然,并查集的写法比较妙,涨了个姿势,原来并查集的路径压缩还能这么用... 首先对于不在最 ...

  4. Json对象转为实体对象

    Json对象转为实体对象 1.Bean中申明 trainTypeList: public class TrainTypeQueryParam implements Serializable { pri ...

  5. Codeforces Round #331 (Div. 2) B. Wilbur and Array

    B. Wilbur and Array time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  6. swift的一些东西

    .cmd+k 键盘toggle .模拟器的handware设置ios键盘 .设置textfield的return类型为搜索 k.returnKeyType=UIReturnKeyType.search ...

  7. bzoj 2654 tree 二分+kruskal

    tree Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 2739  Solved: 1126[Submit][Status][Discuss] Des ...

  8. [解决]java.io.IOException: Cannot obtain block length for LocatedBlock

    在hadoop测试集群运行job的过程中发现部分运行失败,有Cannot obtain block length for LocatedBlock,使用hdfs dfs -cat ${文件}的时候也报 ...

  9. 使用VS2010编译MongoDB C++驱动详解

    最近为了解决IM消息记录的高速度写入.多文档类型支持的需求,决定使用MongoDB来解决. 考虑到MongoDB对VS版本要求较高,与我现有的VS版本不兼容,在leveldb.ssdb.redis.h ...

  10. mybatis 热部署xml文件(spring boot和springmvc两种方式)

    参考:http://thinkgem.iteye.com/blog/2304557 步骤:1.创建两个java类 (1)MapperRefresh.java   :用于刷新mapper (2)SqlS ...