第一部分 计算机监控系统基础 2
第1章 概述 2
1.1 计算机监控系统的概念 2
1.2 计算机监控系统的主要特点 2
1.3 计算机监控系统的分类 3
1.4 计算机监控系统的应用 4
1.5 计算机监控系统的实例 4
1.6 串行接口 5
1.6.1 RS-232接口 6
1.6.2 RS-422与RS-485接口 7
1.6.3 对等接口之间的通信连接方法 7
1.7 网络接口 8
1.8 通信协议 9
1.9 本章小结 10
思考与练习 10
第2章 软件仿真模块和常用工具 11
2.1 综合硬件实例 11
2.2 通用多功能计算机监控系统测试软件 12
2.2.1 基本功能 13
2.2.2 充当主控机 14
2.2.3 充当受控机 14
2.2.4 截取通信协议 14
2.2.5 远程调试 15
2.2.6 Modem功能 15
2.2.7 主窗体界面 16
2.2.8 系统设置界面 16
2.2.9 协议管理界面 17
2.2.10 电话簿界面 18
2.2.11 校验码计算界面 19
2.2.12 测试报告界面 19
2.3 开关量I/O软件仿真模块 19
2.3.1 硬件模型 19
2.3.2 通信协议 20
2.3.3 主窗体界面 21
2.3.4 参数设置界面 22
2.3.5 用TestPort测试软件仿真模块 23
2.4 模拟量输入开关量输出软件仿真模块 23
2.5 RS-232/RS-232接口转换软件 24
2.6 通用TCP客户机与服务器 26
2.6.1 通用TCP客户机 26
2.6.2 通用TCP服务器 27
2.7 RS-232/RJ-45接口转换软件 28
2.7.1 应用模型 28
2.7.2 界面介绍 29
2.8 本章小结 29
思考与练习 30
第二部分 编程基础与技巧 32
第3章 Visual Basic 2008入门 32
3.1 Visual Basic 2008的开发环境 32
3.1.1 启动Visual Basic 2008 32
3.1.2 定制IDE 34
3.2 创建Windows窗体应用程序 36
3.2.1 需求分析 36
3.2.2 环境与界面的处理 36
3.2.3 代码编写 39
3.2.4 插入代码段的使用 41
3.3 调试 42
3.4 部署应用程序 43
3.4.1 理解ClickOnce技术 43
3.4.2 使用发布向导 44
3.4.3 测试安装程序 46
3.5 命名空间 47
3.6 本章小结 48
思考与练习 48
第4章 界面设计 49
4.1 公共控件 49
4.1.1 Label 49
4.1.2 LinkLabel 50
4.1.3 TextBox 51
4.1.4 CheckBox 52
4.1.5 RadioButton 52
4.1.6 ComboBox 53
4.1.7 ToolTip 54
4.1.8 NotifyIcon 55
4.1.9 PictureBox 56
4.1.10 ProgressBar 57
4.1.11 TrackBar 58
4.1.12 DateTimePicker 59
4.2 容器 59
4.2.1 GroupBox 60
4.2.2 Panel 60
4.2.3 TabControl 61
4.2.4 SplitContainer 62
4.2.5 TableLayoutPanel 63
4.2.6 FlowLayoutPanel 65
4.3 菜单和工具栏 65
4.3.1 MenuStrip 65
4.3.2 ContextMenuStrip 66
4.3.3 ToolStrip 67
4.3.4 ToolStripContainer 69
4.3.5 StatusStrip 70
4.4 对话框 70
4.4.1 OpenFileDialog 70
4.4.2 SaveFileDialog 72
4.5 组件 73
4.5.1 ErrorProvider 73
4.5.2 HelpProvider 74
4.5.3 Timer 75
4.5.4 SerialPort 76
4.6 本章小结 78
思考与练习 79
第5章 图形程序设计 80
5.1 坐标系及其变换 80
5.2 系统颜色 81
5.3 Pen类 81
5.4 Graphics类 82
5.5 绘制形状 83
5.5.1 绘制直线 84
5.5.2 绘制矩形 85
5.5.3 绘制椭圆 85
5.5.4 绘制多边形 85
5.6 Brush 86
5.7 绘制实时数据线 87
5.8 本章小结 89
思考与练习 89
第6章 My命名空间 90
6.1 访问主机 90
6.1.1 播放音频 91
6.1.2 剪贴板操作 91
6.1.3 访问系统时钟 92
6.1.4 获取主机系统信息 92
6.1.5 访问键盘 93
6.1.6 访问鼠标 93
6.1.7 获取计算机的名称 93
6.1.8 访问网络 94
6.1.9 访问串口 94
6.2 访问应用程序 95
6.3 访问资源元素 96
6.4 访问用户与应用程序级设置 97
6.5 文本文件操作 101
6.6 注册表操作 103
6.6.1 使用My.Computer.Registry访问注册表 104
6.6.2 注册表的访问测试 105
6.7 My命名空间扩展 107
6.8 本章小结 109
思考与练习 109
第7章 常用编程技巧 110
7.1 消息框 110
7.2 输入对话框 111
7.3 模式对话框 112
7.4 获取环境变量的值 113
7.5 识别操作系统 114
7.6 String类及数据的格式化处理 115
7.6.1 String类的使用 115
7.6.2 数据的格式化处理 118
7.6.3 经典字符串函数的使用 120
7.7 日期与时间的处理 120
7.7.1 日期与时间的计算 121
7.7.2 日期与时间的格式化处理 122
7.8 可变数组与控件数组的使用 124
7.8.1 可变数组 124
7.8.2 控件数组 125
7.9 BASE64编码与解码 126
7.10 Stopwatch的使用 127
7.11 控制计算机休眠或待机 128
7.12 Using语句的使用 129
7.13 控件获取焦点 130
7.14 动画精灵的实现 130
7.15 多线程的实现 133
7.16 杂项代码 136
7.16.1 时间相关函数 136
7.16.2 其他函数 139
7.16.3 杂项代码综合测试 140
7.17 本章小结 141
思考与练习 141
第8章 自定义字符串处理类 142
8.1 自定义类的创建 142
8.2 数据与属性的定义 143
8.3 构造函数与销毁函数 144
8.4 Web中文文本分词相关函数 145
8.5 密码穷举相关函数 153
8.6 其他常用函数 157
8.7 类的使用与测试 158
8.8 本章小结 160
思考与练习 160
第三部分 数据库操作技术 162
第9章 数据库基础 162
9.1 Access数据库的创建 162
9.2 关系数据库标准语言SQL 163
9.2.1 SQL的数据查询功能 163
9.2.2 SQL的数据操纵功能 165
9.3 在应用程序中访问数据库 166
9.3.1 连接到数据库 166
9.3.2 数据库的绑定 167
9.4 ADO.NET的基本原理 168
9.5 通过ADO.NET连接到数据源 169
9.6 通过DataReader访问数据库 171
9.7 通过DataAdapter访问数据库 173
9.7.1 DataSet的基本原理 173
9.7.2 用DataAdapter填充数据集 175
9.7.3 使用DataAdapter更新数据源 176
9.7.4 使用CommandBuilder生成命令 177
9.8 本章小结 179
思考与练习 179
第10章 Access数据库类 180
10.1 私有变量与辅助函数的定义 180
10.2 属性 181
10.3 构造函数 183
10.4 数据源的更新 184
10.5 序号自动操作方法 185
10.6 其他方法 186
10.7 应用测试 187
10.8 本章小结 189
思考与练习 189
第11章 DataGridView模板 190
11.1 DataGridView的主要特点 190
11.2 DataGridView的常用属性 190
11.2.1 布局属性 191
11.2.2 数据属性 191
11.2.3 外观属性 191
11.2.4 行为属性 193
11.2.5 杂项属性 194
11.3 DataGridView的常用方法 195
11.4 DataGridView的常用事件 195
11.4.1 CellClick事件 195
11.4.2 CellFormatting事件 195
11.4.3 RowHeaderMouseClick事件 196
11.4.4 RowPrePaint事件 196
11.4.5 RowValidated事件 196
11.4.6 UserDeletingRow事件 197
11.5 非绑定模式的数据显示 197
11.6 BindingSource类用于数据绑定 199
11.7 DataGridView模板的实现 200
11.7.1 变量定义和数据表信息的获取 200
11.7.2 布局自动完成的准备工作 201
11.7.3 代码自动生成与属性的自动获取 203
11.7.4 数据自动更新技术 205
11.7.5 其他相关操作 205
11.8 DataGridView模板的发布与应用 206
11.9 本章小结 207
思考与练习 207
第12章 Windows事务提醒程序 208
12.1 数据库的设计 208
12.2 框架设计 208
12.2.1 需要的软件模块 208
12.2.2 窗体设计 209
12.2.3 项目属性设计 211
12.3 主窗体的代码实现 211
12.3.1 变量与方法定义 211
12.3.2 主窗体的主要事件 212
12.3.3 其他事件的处理 214
12.4 时钟代码的主要工作 214
12.4.1 主窗体信息更新和准备工作 214
12.4.2 记录的检索与处理 215
12.5 时间表设置窗体的代码实现 217
12.6 事务提醒窗体的代码实现 219
12.7 Interlocked类的使用 219
12.8 程序测试 220
12.9 本章小结 221
思考与练习 221
第四部分 串行通信解决方案 224
第13章 数据编码与处理技术 224
13.1 枚举类型和常量的定义 224
13.2 十六进制字符串的预处理 225
13.3 十六进制字符串中插入或删除空格 226
13.4 字节(数组)转换为十六进制字符串 227
13.5 十六进制字符串转换为字节(数组) 228
13.6 普通字符串与十六进制字符串之间的相互转换 229
13.7 字节数组与普通字符串之间的相互转换 230
13.8 普通字符串与Unicode字符串之间的相互转换 231
13.8.1 普通字符串转换为Unicode字符串 231
13.8.2 Unicode字符串转换为普通字符串 232
13.9 中文信息的加密与解密 233
13.10 随机字节(数组)的生成 234
13.11 字节的位操作与二进制转换 235
13.11.1 字节的位操作 235
13.11.2 二进制转换 236
13.11.3 应用测试 237
13.12 本章小结 238
思考与练习 238
第14章 数据包的校验技术 239
14.1 全局枚举类型的定义 239
14.2 累加和(Add)校验 240
14.3 异或(Xor)校验 241
14.4 循环冗余(CRC)校验 242
14.5 累加求补(BCS)校验 244
14.6 结尾码的处理 245
14.7 数据包的统一校验 246
14.8 数据包的综合生成与信息提取 247
14.9 应用测试 248
14.10 本章小结 249
思考与练习 249
第15章 串行接口操作技术 250
15.1 串行接口名称的获取与应用 250
15.2 串行接口的打开与关闭 251
15.3 获取调制解调器的接口名称 251
15.4 获取串行接口的状态 252
15.5 通过串行接口发送数据 253
15.6 通过串行接口接收数据 254
15.7 带延迟的接收数据方法 255
15.8 综合测试 256
15.8.1 变量和辅助方法的定义 256
15.8.2 主要控件对象的关键代码 257
15.8.3 测试效果 259
15.9 本章小结 260
思考与练习 260
第16章 办公电话自动拨号程序 261
16.1 基本原理 261
16.2 窗体布局 261
16.3 项目属性设计 262
16.4 需要的软件模块 263
16.5 窗体代码分析 265
16.5.1 变量与方法的定义 265
16.5.2 主窗体的主要事件 266
16.6 拨号功能的实现 268
16.7 复位操作的主要功能 269
16.8 上下文菜单代码分析 271
16.9 程序测试 272
16.10 本章小结 273
思考与练习 273
第五部分 Java与C语言解决方案 276
第17章 Java通用数据处理技术 276
17.1 十六进制字符串转换为字节(数组) 276
17.2 字节(数组)转换为十六进制字符串 277
17.3 英文字符串与字节(数组)之间的相互转换 278
17.4 字符串转换为Unicode编码 279
17.5 Unicode编码转换为字符串 279
17.6 从ByteBuffer中获取byte数组 280
17.7 十六进制字符串的格式化处理 280
17.8 ByteProcess类的综合应用测试 281
17.9 本章小结 282
思考与练习 282
第18章 Java事件驱动的串行通信实现 283
18.1 Java串行通信开发包的安装 283
18.2 Java Communications API中与RS-232相关的类与方法 283
18.3 串行通信的实现 284
18.4 程序的测试 286
18.5 本章小结 286
思考与练习 286
第19章 Java串行通信类的设计与应用 287
19.1 OperateCOM类 287
19.2 ReadCOM类 289
19.3 串口类的发布 292
19.4 串口类的测试:SerialExample类 292
19.5 本章小结 293
思考与练习 294
第20章 C语言综合解决方案 295
20.1 bioscom通信函数及相关定义 295
20.2 通信函数的设计 296
20.3 通信函数的应用 299
20.4 校验码的计算 300
20.5 数据包的校验 302
20.6 位操作函数 303
20.7 其他函数 304
20.8 综合应用 305
20.9 本章小结 308
思考与练习 308
第六部分 网络通信与Web服务 310
第21章 通用TCP客户机 310
21.1 网络编程的常用类 310
21.2 IP地址的获取 311
21.3 TcpClient类 311
21.4 自定义TCP客户端类 312
21.4.1 基本定义 313
21.4.2 构造函数与销毁函数 314
21.4.3 与远程主机的连接 314
21.4.4 数据接收的处理 315
21.4.5 数据发送的处理 316
21.5 TCP客户机的窗体设计 317
21.6 需要的软件模块 318
21.7 主窗体的代码分析 318
21.7.1 自定义类的事件代理分析 319
21.7.2 主窗体及其他相关控件的关键代码分析 320
21.8 参数设置窗体的代码分析 322
21.9 本章小结 323
思考与练习 323
第22章 通用TCP服务器 324
22.1 TcpListener类 324
22.2 自定义TCP_Server类 325
22.2.1 基本定义 325
22.2.2 构造函数和销毁函数 326
22.2.3 连接请求的处理 327
22.3 TCP服务器的窗体设计 328
22.4 需要的软件模块 328
22.5 窗体代码分析 329
22.6 应用模型 330
22.7 本章小结 330
思考与练习 330
第23章 Web服务 331
23.1 什么是Web服务 331
23.2 Web服务的体系结构 332
23.3 Visual Web Developer 2008的开发环境 333
23.4 天气预报Web服务应用程序 335
23.4.1 准备工作 335
23.4.2 代码分析 337
23.4.3 程序测试 339
23.5 本章小结 339
思考与练习 339
第七部分 受控机与主控机软件开发实例第24章 高山无人站电源监控系统 342
24.1 项目背景 342
24.2 受控站的硬件结构设计 342
24.3 软件实现 343
24.3.1 通信协议说明 343
24.3.2 函数说明 344
24.3.3 主要源代码 345
24.3.4 主控程序的设计 349
24.4 系统调试 349
24.5 本章小结 350
思考与练习 350
第25章 DI/DO主控软件 351
25.1 RS-232主控程序 351
25.1.1 主界面设计 351
25.1.2 关键代码分析 352
25.1.3 软件测试 355
25.2 基于TCP客户机的主控程序 356
25.2.1 主界面设计 356
25.2.2 关键代码分析 356
25.2.3 软件测试 358
25.3 Web服务主控程序 358
25.3.1 创建Web服务 358
25.3.2 调用Web服务 362
25.4 本章小结 365
思考与练习 365
第26章 计算机监控系统模型 366
26.1 计算机监控系统的硬件模型 366
26.2 主控机软件模型 367
26.3 受控机软件模型 369
26.4 网络环境下的主机安全维护 370
26.5 本章小结 371
思考与练习 371
参考文献 372