实时环境监控系统的图形界面设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.引言
1.1 课题的背景及意义
无论是工业生产、科学研究还是日常生活,一些环境参数都需要被采集并被处理。比如温度、湿度、瓦斯浓度、电脑的CPU使用率等等。有些参数至关重要,因为一时的疏忽很可能会造成重大的安全隐患,比如瓦斯浓度等。对于这样的参数,我们需要对其进行实时监控,当它超过一定的阀值时,就会报警以提醒人们注意。
因此我们需要设计监控系统,在这样的系统中,通常由PC机对数据进行分析并处理,单片机则完成数据的采集和上传等工作,复杂的还要建立数据库。在这样的系统中,单片机系统一般称之为下位机,由PC机、网络设备、数据库组成的应用部分则通称为上位机。二者结合,充分发挥了单片机在实时数据采集和PC机对图形处理、显示以及数据库管理上的优点。
1.2 课题设计目的
本课题主要是设计用于监控环境温度的简易上位机系统。上位机作为主控机一般采用PC机,放置在中央控制室,该上位机主要用来进行人机交互,并向下位机发送命令和接收下位机做出的反应。设计人机交互界面的目的主要是为了用户方便地使用该系统。
这里以监控温度为例,展示了如何设计一款可以满足基本需求的环境监控系统。更复杂的系统可以在此基础上进行扩展。
2 监控系统总体方案
系统的总体方案设计,关系到系统功能模块的划分、硬件设备的选择和配备以及软件的设计和编制。总体方案对整个系统的性能以及运行的可靠性有十分重要的意义。
2.1 监控系统结构分析
图2-1 系统原理框图
如图所示,整个监控系统有两大部分组成:前端采集模块和后端处理模块。前端采集模块通过DS18B20温度传感器采集温度,传递给MCS8051单片机。然后通过RS232串口传递给了PC,做进一步的处理。串口通信未增加校验,所以额外增加了LCD1602显示模块,以便观察是否有数据传送错误。
本人负责开发后端处理模块,即位于PC端的监控系统。前端采集模块有小组另一同学完成。
2.2 监控系统主要功能
系统的主要功能包括两个方面:
1 在PC机上显示温度曲线,以便于对数据进行观测。
2 人为设置温度阀值,当超过阀值时,系统会自动报警以提醒人们注意。
2.3 监控系统总体方案设计
2.3.1 监控系统设计要求
监控系统所面向的对象并非是计算机专业人员,因此系统应具备友好的人机界面以及更好的可操作性。
2.3.2 监控系统开发工具选择
当前,用于设计具有人机界面系统的编程语言和开发环境主要有Visua1C++6.0、Delphi、Visual Basic等。它们风格迥异并且有着出色的功能,其中Visua1C++6.0使用的是面向对象的开发语言,封装继承性好、方便移植,并且具有更大的灵活性。可以在任何时刻调用任何API函数。VC++的优越性主要表现在以下4个方面:
1 开发分布式应用;
2 开发的应用运行效率高;
3 能缩短软件升级周期。C++类的重用特性以及它对函数库、DLL库的支持能使程序更好地模块化,并缩短软件维护和升级时间;
4 VC支持生成多线程编程,而多线程应用对于增加并发响应有实际意义。
综上所述,本课题选用VC++6.0作为监控系统的开发工具。
3 监控系统主要开发技术
3.1 MFC概述
在开发Windows应用程序时,有两种主要方法:基于Window API的开发方法和基于Windows MFC的开发方法。前者需要掌握近千个Windows函数的用法,使用不便,故已不独立使用了。后者借助于其应用程序向导及类向导的帮助,以其封装好的类、构造函数、响应函数及应用程序框架和许多控件等的帮助,大大简化了程序开发的过程并减少了开发的作业量和难度,故获得广泛的应用。基于 Windows MFC的开发方法并不排斥使用Windows API.事实上,在 Windows MFC的开发过程中,总是要使用Windows API函数以完成特定功能。因此本课题的上位机应用程序采用MFC来开发应用程序框架。
MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinDOS下开发人员使用的专业
C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC++血肉相连的部分(注意C++和
VC++的区别:C++是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而VC++只是一个编译器,或者说是一种编译器+源程序编辑IDE,WS,PlatForm,这跟Pascal和Delphi的关系一个道理,Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB 的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规
范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BC++集成的VCL 一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC++专配的。
MFC,API,即微软提供的WinDOS下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对WinDOS下应用程序的开发,使这些被开发出来的应用程序能在WinDOS下运行,比如VB,VC++,Java,Dehpi编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在WinDOS的消息机制和绘图里,遵守WinDOS作为一个操作系统的内部实现,这其实也是一种必要,