跳到主要内容

《我和LabVIEW》全书目录

· 阅读需 17 分钟
I    前言 I.I    我和LabVIEW I.II    本书的内容和特点 I.II.I    本书特点 I.II.II    内容选取 I.II.III    LabVIEW版本 I.II.IV    插图和示例 I.II.V    更正和注解 II 序 0    什么是LabVIEW 0.1    LabVIEW与文本编程语言的区别 0.2    G语言 0.3    LabVIEW的应用领域 0.4    LabVIEW的发展历史 1    LabVIEW入门 1.1    “Hello,World!”程序 1.1.1    启动界面 1.1.2    创建一个新的VI 1.1.3    让VI显示“您吃了吗?” 1.1.4    LabVIEW程序的运行逻辑 1.2    如何学习LabVIEW 1.2.1    学习LabVIEW的三种方式 1.2.2    自学LabVIEW 1.2.3    LabVIEW的帮助文档 1.2.4    LabVIEW的范例 1.2.5    寻求他人帮助 1.3    编写更复杂的程序 1.3.1    美化VI 1.3.1.1    添加图标 1.3.1.2    设置字体 1.3.1.3    设置标题 1.3.2    让VI持续运行 1.3.3    项目 1.3.4    使用子VI 1.3.5    创建子VI 1.3.6    从程序框图创建子VI 1.4    按自己的喜好设置编程环境 1.4.1    LabVIEW的设置选项 1.4.2    函数和控件选板的设置 1.4.3    工具选板 2    数据 2.1    数值 2.1.1    数值控件及其显示格式 2.1.2    常量 2.1.3    表示法 2.1.4    数值运算的常用函数 2.1.5    表达式节点 2.1.6    公式Express VI 2.1.7    公式节点 2.1.8    MathScript脚本节点 2.1.9    数值的单位 2.2    其它数据类型 2.2.1    枚举 2.2.1.1    枚举型控件与下拉列表控件的比较 2.2.1.2    单选按钮控件 2.2.2    布尔 2.2.3    数组 2.2.3.1    数组数据 2.2.3.2    数组数据的运算 2.2.3.3    数组数据的比较 2.2.3.4    数组索引 2.2.3.5    数组合并 2.2.3.6    其它类型的数组控件 2.2.4    簇 2.2.5    字符串 2.2.5.1    字符串与显示方式 2.2.5.2    正则表达式 2.2.6    路径 2.2.6.1    路径数据 2.2.6.2    相对路径 2.2.6.3    路径常量 2.3    数据类型间的转换 2.3.1    数值表示法之间的转换 2.3.2    数值与字符串之间的转换 2.3.3    数值与布尔类型之间的转换 2.3.4    路径与其它数据类型的转换 2.3.5    与时间相关的转换 2.3.6    变体 2.3.6.1    变体数据类型 2.3.6.2    类型转换 2.3.6.3    变体的应用 2.3.7    数据平化至字符串 2.3.8    数据平化至XML 2.3.9    强制转换 2.3.9.1    强制转换的含义 2.3.9.2    强制转换的用途 2.3.9.3    布尔与U8之间的转换 2.3.9.4    字符串与U8数组之间的转换 2.3.9.5    时间与数值间的转换 2.3.9.6    引用句柄数据类型 2.4    控件和数据在程序中的使用 2.4.1    控件与变量的关系 2.4.2    控件的标签和标题 2.4.3    控件的默认值 2.4.4    局部变量 2.4.4.1    创建局部变量 2.4.4.2    把数据写入控制控件,或从显示控件读取数据 2.4.4.3    应用于多线程间的共享数据 2.4.5    属性节点 2.4.6    调用节点 2.5    应用实例 2.5.1    字符串公式求值 2.5.2    字符串转换为布尔数组 2.5.3    程序运行中改变控件标题 2.5.4    禁止枚举控件中的某些项 2.5.5    在字符串中显示多种字体 3    基本程序结构 3.1    顺序结构 3.1.1    程序执行顺序 3.1.2    创建顺序结构 3.1.3    层叠式顺序结构 3.1.4    平铺式顺序结构 3.1.5    无形胜有形的最高境界 3.2    条件结构 3.2.1    布尔类型条件选择结构 3.2.2    其它数据类型的条件选择 3.2.3    合理设置选择条件 3.2.4    隧道 3.2.5    选择函数 3.3    程序框图禁用结构 3.4    条件禁用结构 3.5    for循环结构 3.5.1    for循环 3.5.2    隧道 3.5.3    移位寄存器 3.5.4    反馈节点 3.5.5    结束条件 3.6    while循环结构 3.7    事件结构 3.7.1    事件结构 3.7.2    按照产生源来区分事件的种类 3.7.2.1    <应用程序> 3.7.2.2    <本VI> 3.7.2.3    动态 3.7.2.4    窗格 3.7.2.5    分隔栏 3.7.2.6    控件 3.7.3    编辑事件 3.7.4    按照发出时间区分事件的种类 3.7.5    事件结构的使用 3.7.6    动态事件 3.7.7    用户自定义的事件 3.8    定时结构 3.8.1    定时函数和VI 3.8.2    使用事件结构 3.8.3    定时循环 4    常用程序结构模式 4.1    错误处理机制 4.1.1    不可预期的错误 4.1.2    可预期的错误 4.1.3    自定义错误 4.1.4    显示错误信息 4.1.5    调试时显示错误信息 4.1.6    错误合并 4.2    可重入VI 4.2.1    同一VI的并行运行 4.2.2    可重入VI的副本 4.3    状态机 4.3.1    循环条件结构 4.3.2    单状态传递的状态机 4.3.3    多状态传递的状态机 4.3.4    状态机的使用 4.3.5    状态图工具包 4.4    全局变量 4.4.1    全局变量 4.4.2    共享变量 4.4.3    功能全局变量 4.4.4    基于功能全局变量的程序功能模块 4.5    界面程序 4.5.1    界面程序的程序框图设计 4.5.2    通用用户自定义事件的设计 4.5.3    对耗时代码的处理 4.5.4    其他注意事项 4.6    多态VI 4.6.1    使用变体作为子VI的参数类型 4.6.2    多态VI的概念 4.6.3    编写多态VI 4.6.4    多态VI的注意事项 4.6.5    菜单设计的小技巧 4.7    Express VI 4.7.1    什么是Express VI 4.7.2    子VI在程序框图上的显示方式 4.8    传引用 4.8.1    LabVIEW自带的传引用数据类型 4.8.2    全局变量 4.8.3    队列 4.8.4    数据记录文件引用句柄 4.8.5    借助C语言 5    调用外部程序 5.1    动态链接库 5.1.1    背景知识 5.1.2    CLN和CIN节点 5.1.3    DLL的加载方式 5.1.4    函数的配置 5.1.5    简单数据类型参数的参数设置 5.1.5.1    数值类型 5.1.5.2    布尔类型 5.1.5.3    数值型数组 5.1.5.4    字符串类型 5.1.6    结构型参数的设置 5.1.7    返回值的设置 5.1.8    对C语言中指针的处理 5.1.9    LabVIEW提供的C接口函数 5.1.10    导入共享库工具 5.2    ActiveX 5.2.1    ActiveX控件 5.2.2    使用ActiveX控件 5.2.2.1    浏览网页 5.2.2.2    播放mp3音乐 5.2.2.3    播放Flash动画 5.2.3    ActiveX控件的事件 5.2.4    ActiveX文档 5.2.5    ActiveX自动化 5.3    .NET 5.4    EXE 6    VI服务器 6.1    概念 6.1.1    VI服务器 6.1.2    VI Scripting 6.2    运行中改变界面 6.2.1    属性节点 6.2.2    VI的属性 6.2.3    得到对象的引用 6.2.4    对象类的层次结构 6.2.5    类浏览器 6.3    装载和运行子VI 6.3.1    静态与动态装载子VI 6.3.2    动态调用VI 6.3.3    插件结构 6.3.4    递归调用 6.3.4.1    为什么VI不能够被静态地递归调用 6.3.4.2    用动态调用方法实现递归 6.3.4.3    使用递归时的几点注意 6.3.5    后台任务 6.3.6    启动画面 6.4    动态创建和修改VI 6.4.1    VI Scripting授权 6.4.2    创建VI 6.4.3    创建新的控件 6.4.4    创建程序框图 6.4.5    批量修改VI 6.5    网络服务 6.6    ActiveX接口 7    测试测量应用程序设计 7.1    “采集、处理、显示”型程序的结构模型 7.1.1    程序结构的划分 7.1.2    普通循环模型 7.1.3    管道流水线模型 7.1.4    生产者消费者模型 7.2    Express VI 7.2.1    测试程序相关的Express VI 7.2.2    应用 7.3    数据采集 7.3.1    使用驱动程序 7.3.2    使用硬件设备的C语言驱动程序 7.3.3    编写驱动程序 7.3.4    可互换虚拟仪器驱动程序 7.3.5    数据采样时钟的设置 7.4    显示 7.4.1    波形图表和波形图控件 7.4.2    波形数据类型 7.4.3    多曲线显示 7.4.4    中断的曲线 7.4.5    大量数据的显示 7.4.6    高速数据的显示 7.4.7    强度图 7.5    存储 7.5.1    文本文件和二进制数据文件 7.5.2    文本文件 7.5.3    二进制数据文件 7.5.4    数据库 7.5.5    生成报表 8    调试 8.1    集成调试环境 8.1.1    列出编译错误 8.1.2    运行时的调试工具 8.1.3    全局选项 8.1.4    VI的属性 8.2    断点和探针 8.2.1    断点 8.2.2    探针 8.2.3    选取其它控件作为探针 8.2.4    条件探针 8.2.5    用户自定义探针 8.3    其它查找程序错误的工具和方法 8.3.1    程序框图禁用结构 8.3.2    使用消息对话框和文件 8.4    LabVIEW代码中常见的错误 8.4.1    数值溢出 8.4.2    For循环的隧道 8.4.3    循环次数 8.4.4    移位寄存器的初始化 8.4.5    簇中元素的顺序 8.4.6    时序错误 8.4.7    竞争状态 8.4.8    等待循环中的延时 8.5    提高程序运行效率 8.5.1    找到影响程序运行速度的瓶颈 8.5.2    查看一段代码的运行时间 8.6    解决程序效率低下的瓶颈 8.6.1    读写外设、文件 8.6.2    界面刷新 8.6.3    循环内的运算 8.6.4    调试信息 8.6.5    多线程和内存的使用 8.6.6    利用等待用户反馈的时间 8.7    DLL调试 8.7.1    调试LabVIEW调用的DLL 8.7.2    调试LabVIEW生成的DLL 9    管理LabVIEW项目 9.1    项目浏览器 9.1.1    项目浏览器的功能 9.1.2    项目中的层次结构 9.1.3    文件结构 9.1.4    按照文件的物理结构来查看项目 9.1.5    源代码管理 9.1.6    比较和合并VI 9.1.7    运行环境 9.2    库 9.2.1    创建库 9.2.2    VI的名字空间 9.2.3    为库中VI设置权限 9.2.4    LLB文件 9.3    发布产品 9.3.1    应用程序 9.3.1.1    应用程序生成规范 9.3.1.2    文件路径的变化 9.3.1.3    其它设置 9.3.2    共享库 9.3.3    源代码 9.3.3.1    发布源代码 9.3.3.2    编辑控件选板和函数选板 9.3.4    网络应用 9.3.4.1    远程前面板 9.3.4.2    web发布 9.3.4.3    web服务 9.3.5    安装程序 9.3.6    压缩包 10    界面设计 10.1    界面设计原理 10.1.1    一致性 10.1.1.1    程序内部的一致性 10.1.1.2    与约定俗成的习惯保持一致 10.1.1.3    与真实事物保持一致 10.1.1.4    建立并遵循界面规范 10.1.2    界面元素的关联 10.1.3    帮助和反馈信息 10.1.4    限制 10.1.4.1    限制输入数据 10.1.4.2    防止误操作 10.1.5    突出重点 10.2    界面设计中常用的规范和实现方法 10.2.1    控件尺寸 10.2.1.1    手动调整控件尺寸和位置 10.2.1.2    自动调整控件尺寸 10.2.2    应用程序的退出按钮 10.2.3    菜单 10.2.4    控件快捷菜单 10.2.5    使用键盘操作界面 10.2.6    用户自定义控件 10.2.6.1    创建一个自定义控件 10.2.6.2    自定义控件的组成部分 10.2.6.3    修改控件组成部分 10.3    界面设计实例 10.3.1    利用LabVIEW自带控件 10.3.2    实现运行时改变界面的代码 10.3.3    装饰和背景图片 10.3.4    用户自定义控件 10.3.5    改进界面的实现方法 10.3.6    使用绘图控件 10.3.7    界面的特殊效果 10.3.7.1    半透明效果 10.3.7.2    不规则形状 10.3.8    动画 11    代码风格与优化 11.1    LabVIEW的运行机制 11.1.1    LabVIEW的编程思想 11.1.2    LabVIEW与文本语言的差异 11.1.3    LabVIEW是编译型语言还是解释型语言 11.1.4    数据流驱动的编程语言 11.1.5    传值和传引用 11.1.6    VI中的数据空间 11.2    内存优化 11.2.1    VI在内存中的结构 11.2.2    内存泄漏 11.2.3    缓存重用 11.2.3.1    一般的运算节点 11.2.3.2    移位寄存器 11.2.3.3    调用库函数节点 11.2.4    子VI参数的缓存重用 11.2.5    输入输出参数的排布 11.2.6    良好的数据流结构可以优化程序内存效率 11.3    多线程编程 11.3.1    LabVIEW是自动多线程语言 11.3.2    LabVIEW的执行系统 11.3.3    执行系统与线程的关系 11.3.4    用户界面执行系统 11.3.5    其它几个执行系统 11.3.6    VI的优先级 11.3.7    动态连接库函数的线程 11.3.8    LabVIEW对多核CPU的支持 11.4    代码编写规范和技巧 11.4.1    简洁的程序框图 11.4.2    布局和连线 11.4.3    注释 11.4.4    使用自定义数据类型 11.4.5    连线板 11.4.6    图标 11.4.6.1    制作不规则图形的子VI图标 11.4.6.2    隐藏程序框图上的大个簇常量 11.4.7    VI分析器 12    界面的模块划分和XControl 12.1    复杂界面的模块划分 12.1.1    界面的模块划分 12.1.2    选项卡控件 12.1.3    子面板 12.1.4    XControl 12.2    XControl 12.2.1    设计 12.2.2    创建 12.2.3    “数据”功能控件 12.2.4    “状态”功能控件 12.2.5    “外观”功能VI 12.2.5.1    界面 12.2.5.2    工作原理 12.2.5.3    参数 12.2.5.4    数据更改事件 12.2.5.5    显示状态更改事件 12.2.5.6    方向更改事件和执行状态更改事件 12.2.5.7    界面事件 12.2.6    “转换状态以保存”功能VI 12.2.7    “初始化”功能VI 12.2.8    “反初始化”功能VI 12.2.9    属性 12.2.10    方法 12.2.11    事件 12.2.12    棋盘XControl的使用 12.2.13    实现动画 12.2.14    得到调用XControl实例的VI的信息 12.2.15    错误处理 12.2.16    调试 13    面向对象编程 13.1    基础知识 13.1.1    程序的模块划分 13.1.2    类和对象 13.1.3    面向对象的程序设计 13.1.4    封装 13.1.5    继承 13.1.6    多态 13.2    LabVIEW的类 13.2.1    创建 13.2.2    属性 13.2.3    方法 13.2.4    继承 13.2.5    多态 13.2.6    面向对象与数据流 13.2.7    面向对象思想对LabVIEW程序设计的影响 13.3    应用实例 13.3.1    管理一个类的多个对象 13.3.2    同一段代码处理多种数据类型 13.3.3    递归 13.3.4    框架插件程序架构 13.3.5    简单的数据容器 A 后记 B 致谢 C 参考书目 

返回[《我和LabVIEW》主页](http://ruanqizhen.wordpress.com/labview/)