內容簡介
本書附贈光碟!本書主要以NI公司最新發布的LabWindows/CVI版本為開發環境展開論述,全書分為基礎篇、提高篇和套用篇三大部分,詳細論述了如何構建虛擬儀器系統、編程技巧和典型套用實例,使讀者更加深入地理解程式設計的思路與方法,從而提高實際套用能力。本書的例程在Windows XP系統下已經全部經過調試,並編譯通過。 本書的特色在於通過大量的套用實例,詳細介紹了虛擬儀器的基本編程方法、通信接口與動態數據交換技術、ActiveX控制項的使用、驅動器函式館的開發與使用、網路化虛擬儀器DataSocket技術、高級系統操作、動態程式庫技術和資料庫技術等,並結合作者長期以來的編程經驗以及對LabWindows /CVI的理解,從代碼的角度來展現這項技術的獨特魅力。
適用範圍
本書可作為大專院校自動化、機械、測控技術及儀器、測試計量技術、信息技術等專業的教學用書,也可作為相關專業工程技術人員和科技工作者學習設計虛擬儀器的自學用書。
目錄
第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 PCI數據採集卡 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 Polling Queue技術 233
8.5.1 Polling Queue伺服器程式設計 233
8.5.2 Polling 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 ProgressBar 控制項的使用 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