[原创]LabWindows/CVI测试技术及工程应用
- UID
- 149966
- 性别
- 男
|
[原创]LabWindows/CVI测试技术及工程应用
最近,我和几个人合著了一本书,是关于虚拟仪器的,名字叫做《LabWindows/CVI测试技术及工程应用》。有兴趣的可以去书店看一下了!除了书面上标明的作者之外,还有一个叫做郭雅萌,她对本书的工作量实际上非常大,在此表示感谢! 书的封面如下图所示: 简介: 本书主要以NI公司最新发布的LabWindows/CVI版本为开发环境展开论述,全书分为基础篇、提高篇和应用篇三大部分,详细论述了如何构建虚拟仪器系统、编程技巧和典型应用实例,使读者更加深入地理解程序设计的思路与方法,从而提高实际应用能力。本书的例程在Windows XP系统下已经全部经过调试,并编译通过。
本书的特色在于通过大量的应用实例,详细介绍了虚拟仪器的基本编程方法、通信接口与动态数据交换技术、ActiveX控件的使用、驱动器函数库的开发与使用、网络化虚拟仪器DataSocket技术、高级系统操作、动态链接库技术和数据库技术等,并结合作者长期以来的编程经验以及对LabWindows/CVI的理解,从代码的角度来展现这项技术的独特魅力。
本书可作为大专院校自动化、机械、测控技术及仪器、测试计量技术、信息技术等专业的教学用书,也可作为相关专业工程技术人员和科技工作者学习设计虚拟仪器的自学用书。 前言: 随着微电子技术、计算机技术和通信技术的迅速发展,测控技术与仪器科学领域发生了巨大的变化,美国国家仪器公司(National Instruments Corporation,简称NI)于20世纪80年代中期首先提出了基于计算机技术的虚拟仪器概念,随后研制和推出了基于多种总线系统和开发平台的虚拟仪器,把现代测试及仪器科学技术带入了新的发展时期。
虚拟仪器技术是日益发展的计算机技术、仪器技术、信息技术密切结合的产物,虚拟仪器就是在通用计算机上加上软件和(或)硬件,使用者在操作这台计算机时,就像是在操作一台用户自己设计的专用电子仪器。在虚拟仪器系统中,硬件仅仅是为了解决信号的输入、输出,软件才是整个仪器系统的关键,任何一个使用者都可以通过修改软件的方法,很方便地改变、增减测控仪器系统的功能与规模,所以有“软件就是仪器”之说。虚拟仪器技术的出现,彻底打破了传统仪器由厂家定义,用户无法改变的模式,虚拟仪器技术给用户一个充分发挥自己的才能、想像力的空间。用户(而不是厂家)可以随心所欲地根据自己的需求,设计自己的仪器系统,满足多种多样的应用需求。它利用计算机系统的强大功能,结合相应的硬件,大大地突破传统仪器在数据处理、显示、传送等方面的限制,使用户可以方便地对其进行维护、扩展和升级。
虚拟仪器系统可以广泛地应用在通信、自动化、半导体、航空、电子、电力、生化、制药和工业生产的各个领域。虚拟仪器发展到现在,实际上它不仅仅局限在测控仪器的范畴,在很多时候、很多场合,它其实是一种思维方式、一种概念化的抽象形式。
本书主要以NI公司最新发布的LabWindows/CVI版本为开发环境展开论述,全书分为基础篇、提高篇和应用篇三大部分,详细论述了如何构建虚拟仪器系统、编程技巧和典型应用实例,使读者更加深入地理解程序设计的思路与方法,提高实际应用能力。本书的例程在Windows XP系统下已经全部经过调试,并编译通过。
本书的特色在于通过大量的应用实例,详细介绍了虚拟仪器的基本编程方法、通信接口与动态数据交换技术、ActiveX控件的使用、驱动器函数库的开发与使用、网络化虚拟仪器Data Socket技术、高级系统操作、动态链接库技术和数据库技术等,并结合作者长期以来的编程经验以及对LabWindows/CVI的理解,从代码的角度来展现其独特的魅力。
本书由天津科技大学王建新博士、杨世凤教授、中国农业大学隋美丽博士主编,郭雅萌为副主编,参与本书编写工作的还有钱东平、张嘏伟、陈浩、童官军、赵继民、李志广等。
由于本书内容涉及面比较广,加上作者水平有限、时间仓促,书中难免有不妥之处,恳请广大读者批评指正。
编者
2006年7月
目录: 第1篇 基 础 篇
第1章 虚拟仪器及其开发语言LabWindows/CVI 1
1.1 虚拟仪器 1
1.1.1 虚拟仪器的基本概念 1
1.1.2 虚拟仪器的结构 2
1.2 LabWindows/CVI 编程语言 3
1.2.1 LabWindows/CVI特性 3
1.2.2 LabWindows/CVI的工作空间 4
1.2.3 LabWindows/CVI的文件类型 5
1.2.4 LabWindows/CVI中的对象编程 5
1.2.5 LabWindows/CVI的基本编程窗口 6
第2章 构建一个简单程序 12
2.1 建立工程文件 12
2.2 创建用户界面文件 12
2.2.1 面板的设置 12
2.2.2 向面板中添加控件 13
2.3 生成源代码文件 15
2.3.1 生成全部源代码框架 15
2.3.2 主函数及回调函数框架分步生成 17
2.3.3 源代码框架主函数 18
2.3.4 向源代码框架中添加回调函数 19
2.4 运行和调试程序 23
2.4.1 程序单步调试 23
2.4.2 程序断点调试 23
2.4.3 程序变量和内存观察 24
2.5 生成可执行文件和发布文件 25
2.5.1 生成可执行文件 25
2.5.2 生成发布文件 26
2.6 LabWindows/CVI编程的基础知识 27
2.6.1 控件模式 27
2.6.2 用户交互事件 27
2.6.3 回调函数的模式 29
第3章 基本控件的使用与编程 31
3.1 文本框、列表框、树控件和表格控件 31
3.1.1 文本框 31
3.1.2 列表框、树控件和表格控件 33
3.1.3 编程实例 37
3.2 定时器控件 41
3.2.1 定时器相关函数 41
3.2.2 编程实例—— 板球游戏 42
3.3 创建菜单 48
3.3.1 菜单编辑器 48
3.3.2 菜单项函数 49
3.3.3 编程实例—— 计算器制作 50
3.4 图表控件 52
3.4.1 Graph控件 52
3.4.2 Strip Chart控件 54
3.4.3 Digital Graph控件 54
3.4.4 绘图控件编程 55
3.5 弹出式面板 58
3.5.1 弹出面板类型 58
3.5.2 弹出式面板编程 61
3.6 Splitter控件 66
3.6.1 Splitter控件设置 66
3.6.2 Splitter控件函数 67
3.7 滚动条及仪器驱动的使用 68
3.7.1 仪器驱动的装载 68
3.7.2 滚动条控件 68
3.7.3 滚动条编程 69
3.8 文件的读写和格式化 73
3.8.1 文件读写函数 73
3.8.2 字符串操作函数 75
3.8.3 数据格式化函数 75
3.8.4 定制用户工具 75
第2篇 提 高 篇
第4章 Toolslib扩展控件编程 77
4.1 Hot Ring控件 77
4.2 3D Graph控件 79
4.3 Animation Control控件 85
4.4 Combo Box与Password控件 89
4.5 File Browser与Path Control控件 95
4.6 Radio Group控件 100
4.7 Graph Cursor控件 103
第5章 数据采集技术 109
5.1 数据采集卡(DAQ) 109
5.1.1 数据采集卡的组成 109
5.1.2 数据采集卡的选择 110
5.2 数据采集卡测试 110
5.2.1 数据采集卡的参数设置 110
5.2.2 数据采集卡属性设置 111
5.2.3 数据采集卡的测试 112
5.3 基于NI-DAQ数据采集 113
5.3.1 Easy I/O for DAQ函数库 113
5.3.2 Traditional NI-DAQ函数库 114
5.3.3 利用Easy I/O for DAQ实现数据采集 119
5.3.4 利用DAQ 助手创建测试任务 122
5.4 基于非NI数据采集卡的应用 128
5.4.1 ISA数据采集卡 128
5.4.2  CI数据采集卡 133
第6章 信号的分析处理技术 141
6.1 信号的分类 141
6.1.1 信号的描述与分析 141
6.1.2 采样技术 142
6.2 信号处理编程 143
6.2.1 信号的产生 143
6.2.2 信号时域分析 149
6.2.3 信号频域分析 156
6.2.4 信号滤波 165
第7章 通信接口与动态数据交换技术 177
7.1 RS-232串口通信 177
7.2 串口数据收发过程 179
7.2.1 RS-232文件发送程序 179
7.2.2 RS-232文件接收程序 183
7.2.3 RS-232与其他设备间的通信 187
7.3 DDE动态链数据交换技术 193
7.3.1 动态数据交换技术 193
7.3.2 LabWindows/CVI动态数据交换的一般步骤 193
7.3.3 DDE与Excel间的通信实例 194
第8章 网络化虚拟仪器设计 202
8.1 网络测控系统 202
8.2 TCP/IP技术 202
8.2.1 OSI体系结构及协议 202
8.2.2 TCP/IP协议 204
8.2.3 TCP/IP参考模型 205
8.3 TCP程序设计 206
8.3.1 TCP服务器程序设计 206
8.3.2 TCP客户机程序设计 215
8.4 DataSocket技术 220
8.4.1 DataSocket技术特性 220
8.4.2 DataSocket服务器和管理器 221
8.4.3 DataSocket程序设计 223
8.5  olling Queue技术 233
8.5.1  olling Queue服务器程序设计 233
8.5.2  olling Queue客户机程序设计 237
第3篇 应 用 篇
第9章 Windows SDK程序设计 243
9.1 SDK和Windows API函数简介 243
9.1.1 电脑驱蚊程序制作 244
9.1.2 特殊图形面板的制作 246
9.1.3 面板的拖拽操作 253
9.2 注册表操作 255
9.2.1 定制IE工具栏 256
9.2.2 开机启动程序制作 263
第10章 动态链接库技术 266
10.1 基本外部模块的编程 266
10.1.1 创建无界面动态链接库 267
10.1.2 创建静态链接库 274
10.1.3 创建目标代码文件 275
10.1.4 各种库函数的产生 276
10.2 创建有界面的动态链接库 277
10.3 外部模块的显式调用方式 283
第11章 高级系统操作 289
11.1 系统托盘设计 289
11.2 工具栏设计 295
11.3 ini文件读取操作 303
11.4 异步定时器 311
11.5 多线程编程 316
11.6 文件拖拽操作 320
第12章 ActiveX技术 325
12.1 ActiveX简介 325
12.2 LabWindows/CVI中ActiveX的调用 326
12.2.1 LabWindows/CVI中ActiveX服务器的创建 326
12.2.2 注册一个外部ActiveX服务器 327
12.2.3 生成仪器驱动 327
12.3 ActiveX应用实例 330
12.3.1 TimePicker 控件的使用 330
12.3.2 Calendar 控件的使用 338
12.3.3 Chart 控件的使用 343
12.3.4  rogressBar 控件的使用 350
12.3.5 MCI控件的使用 352
12.3.6 RichBox控件的使用 358
12.3.7 ShockwaveFlash控件的使用 364
第13章 驱动器函数库开发 375
13.1 驱动器函数库开发实例 375
13.1.1 驱动器函数库的结构规划 375
13.1.2 驱动器函数库的生成 377
13.1.3 其他文件的生成 380
13.2 利用已开发好的工具 382
13.3 驱动器函数库的装载 383
第14章 数据库技术 386
14.1 信息、数据与数据处理 386
14.1.1 基本概念 386
14.1.2 数据处理技术的发展 386
14.1.3 数据模型 387
14.1.4 数据层次 387
14.2 ODBC数据源管理器 388
14.2.1 ODBC配置 388
14.2.2 数据库会话 389
14.3 SQL Toolkit 389
14.3.1 函数详解 389
14.3.2 基本SQL语句 411
14.4 数据库编程举例 413
14.4.1 表格编程举例 413
14.4.2 常规数据库操作编程举例 422
附录A 函数Fmt标识符参考 435
附录B SQL命令 436
|
eYJJ3OrA.rar (104.33 KB)
|
|
|
|
|
|
- UID
- 149966
- 性别
- 男
|
|
|
|
|
|
- UID
- 150053
- 性别
- 男
|
刚和书店联系了,这个书刚到,下午去买,支持小信!呵呵 |
|
|
|
|
|
- UID
- 30051
- 性别
- 男
|
|
|
|
|
|
- UID
- 155541
- 性别
- 男
|
我前几天买的您这本书,我是初学,做毕业设计用的,感觉不错,例题都很新颖,不过对于初学者来说好像讲的有点粗了,我结合其他的教材一起看的。原来楼主就是作者,那以后有不明白的地方就过来问你咯,嘿嘿!~ |
|
|
|
|
|
- UID
- 157044
- 性别
- 男
|
|
|
|
|
|
- UID
- 157044
- 性别
- 男
|
|
|
|
|
|
- UID
- 157044
- 性别
- 男
|
|
|
|
|
|
- UID
- 157025
- 性别
- 男
|
|
|
|
|
|
- UID
- 157990
- 性别
- 男
|
|
|
|
|
|
- UID
- 158257
- 性别
- 男
|
已经买过了,实例很多,也很有用。建议增加一些其他的实例,比如除了sql toolkit以外,如何用ado技术访问sql server 2000。我正需要这方面的实例,不知楼主有没有? 强烈支持楼主出书! 邮箱:kutent@163.com
[此贴子已经被作者于2007-4-18 10:19:55编辑过] |
|
|
|
|
|
- UID
- 158577
- 性别
- 男
|
|
|
|
|
|
- UID
- 158940
- 性别
- 男
|
|
|
|
|
|
- UID
- 159105
- 性别
- 男
|
|
|
|
|
|
- UID
- 158592
- 性别
- 男
|
|
|
|
|
|