智能坏境监控系统设计(设计成果+说明书+任务书+开通报告)_第1页
智能坏境监控系统设计(设计成果+说明书+任务书+开通报告)_第2页
智能坏境监控系统设计(设计成果+说明书+任务书+开通报告)_第3页
智能坏境监控系统设计(设计成果+说明书+任务书+开通报告)_第4页
智能坏境监控系统设计(设计成果+说明书+任务书+开通报告)_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要针对智能环境监控系统,开发了无线传感器网络硬件传感器节点、执行器节点和上位机监控软件。节点通过无线传感器节点来采集环境光照强度和温度,判断参数是否超出正常范围并智能控制执行器使环境参数恢复到正常范围。同时把传感节点信息发送给协调器,无线传感器网络中的协调器节点和上位机通过串口进行数据通信,以监测和控制无线传感器网络。采用VisualC+6.0编程语言,在MFC的基于对话框模式下通过编辑MSComm控件实现了串口通信,利用各种相关类函数及自编函数、数据库连接等在上位机界面上实现了传感器网络拓扑图显示、节点传感量数据显示、控制传感器节点等主要功能。关键词无线传感器网络,环境监控,串口通信AbstractThetopicfocusonthedesignofnodesofnetworkandactuator,PCsoftwareinintelligentenvironmentalmonitoringsystemofwirelesssensornetworks.Wirelesssensornetworkthroughthewirelesssensornodetocollecttheenvironmentaltemperatureandlightintensity,judgingwhethertheparameterisoutsideofthenormalrangeandintelligentcontrolofactuatormakestheenvironmentparametersreturnedtonormalrange.Atthesametimethenodemessagetothecoordinator,wirelesssensornetworksinthecoordinatornodeandthehostcomputerthroughserialdatacommunications,tomonitorandcontrolthewirelesssensornetwork.ThesoftwareusestheVisualC+6.0programlanguage,basedonthedialogboxinMFCmodebyeditingtheMSCommserialcommunicationcontrol,usingavarietyofrelatedfunctionandwritingfunction,databaseconnection,thehostcomputerinterfacerealizationofsensornetworktopologydisplay,nodesensingvolumedatadisplay,controlsensornodemainlyfunction.Keywordswirelesssensornetworks,environmentalmonitoring,serialcommunication目录1引言.11.1课题研究背景及意义.11.2国内外研究与发展现状.11.3课题研究的主要内容.41.4小结.42智能环境监控系统总体方案设计.42.1系统总体设计框图.42.2上位机软件总体设计.52.3系统硬件总体设计.72.4小结.83软件详细设计.83.1软件总体结构.83.2界面设计.93.3主界面主要附属功能实现.153.4自定义WSN串口通信协议.213.5传感器数据显示.233.6数据库实现.253.7小结.284智能环境控制系统硬件详细设计.284.1温度采集模块设计.284.2光照采集模块设计.294.3执行器模块设计.304.4硬件程序设计.314.5小结.365系统测试.375.1硬件测试.375.2软件测试.39结论.41致谢.42参考文献.431引言1.1课题研究背景及意义无线传感器网络(WirelessSensorNetwork,WSN)是当前国际上备受关注的由多学科交叉的新兴前沿研究热点领域1。无线传感器网络是由部署在监测区域内大量的廉价小型或微型无线传感器网络节点组成,通过无线通信形成一个多跳的自组织智能网络系统2。传感器网络综合了传感器技术、嵌入式计算技术、无线网络通信技术、分布式信息处理技术以及微机电技术等,能够通过各类集成化的微型传感器协作地实时监测、感知和采集各种环境或监测对象的信息,通过嵌入式系统对信息进行处理,并通过随机自组织无线通信网络以多跳中继方式将信息传送到终端用户,从而实现无处不在的计算理念3。其应用前景非常广阔,现正逐步深入到人类生活的各个领域,比如国防军事、反恐抗灾、环境监测、交通管理、工程安全、医疗护理、建筑结构、健康监测等。环境监测控制是一类典型的无线传感器网络应用,早在2002年英特尔公司就率先在俄勒冈州建立了世界上第一个无线葡萄园,并获得了成功4。环境监测系统帮助管理人员对设备和现场进行实时监控,预防故障发生或在故障发生后能提供及时的资料。自动监测系统可以减少配备人员的数量并提高监测业务的效率。现有自动监测系统大都采用有线技术进行传感器网络的组建。这类方案扩展性能差,布线烦琐,线路容易老化,更换起来也十分不方便。采用无线方式构建环境监测系统,则可以避免这些不必要的麻烦。而且,无线方式相对灵活,只要在有效范围内,传感器终端可以依据要求随意安放5。ZigBee是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术,主要用于近距离无线连接传输。它依据IEEE802.15.4标准,在数千个微小的传感器之间相互协调实现通信。这种技术在楼宇自动化、工业监控领域具有非常广阔的市场空间6。因此,基于ZigBee的智能环境监控系统的设计在环境监控中有很大的应用价值和前景。1.2国内外研究与发展现状目前,由传感器、微处理器和无线通信接口组成的无线传感器网络得到了空前的发展。由大量的无线传感网络节点自组织组成的无线传感网络能够广泛应用于环境科学、医疗健康、空间探索、智能家居、军事、交通、采矿和灾难拯救等各个领域,无线传感网络已成为下一代“计算无处不在”的关键技术。传感器网络的研究起步于20世纪90年代末期。从2000年起,国际上开始出现一些有关传感器网络研究结果的报道。目前传感器网络已经引起了世界许多国家的军事部门、工业界和学术界的极大关注。美国自然科学基金委员会2003年制定了传感器网络研究计划,投资3400万美元,支持相关基础理论的研究。美国很多大学都已开展传感器网络的研究,其中最具代表性的是加州大学伯克利分校和Intel公司联合成立的“智能尘埃”实验室,它的目标是为美国军方提供能够在一立方毫米的体积内能自动感知和通信设备原型的研制。2001年中科院依托上海微系统所成立微系统研究与发展中心,引领院内的相关工作,并通过该中心在无线传感网络的方向上陆续部署了若干重大研究项目和方向性项目,参加单位包括上海微系统所、声学所、微电子所、半导体所、电子所、软件所、中科大等十余个校所,初步建立传感网络系统研究平台,在无线智能传感网络通信技术、微型传感器、传感器节点、簇点和应用系统等方面取得很大的进展。2004年9月相关成果在北京进行了大规模外场演示,部分成果已在实际工程系统中使用。国内的许多高校也掀起了无线传感网的研究热潮。清华大学、中国科技大学、浙江大学、华中科技大学、天津大学、南开大学、北京邮电大学、东北大学、西北工业大学、西南交通大学、沈阳理工大学和上海交通大学等单位纷纷开展了有关无线传感网方面的基础研究工作。一些企业如中兴通讯公司等单位也加入无线传感网研究的行列7。国内外对温室环境控制技术的研究较早,始于上世纪70年代,先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制。80年代末出现了分布式控制系统,现阶段开发和研究集中于计算机数据采集控制系统的多因子综合控制系统、多数据融合技术等。目前,世界各国的环境控制技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展8。环境监控应用的典型案例有:夏威夷大学在夏威夷火山国家公园部署了WSN进行生态环境监测,用来监测那些濒临灭种的植物所在地的微小气候变化,以揭示为何特定物种只能生存在某些特定环境中9。韩国研究人员ByungrakSon,Yong-SorkHer,KyuwonShim将WSN部署到山地旅游区,来监测旅游者的数目10。监测海燕生存环境及其在气候变化时行为的GDI项目11。该系统将传感器获取的温度、湿度和气压等环境信息以多跳路由的方式发送到监测管理中心,管理中心使用这些信息可以在不干扰野生动植物正常生活的情况下监视其活动和生存环境。美国学者RichardBeckwith,DanTeibel,PatBowen将无线传感器网络放置在葡萄园中12。通过对葡萄园环境的监测来提高作物的品质。研究者通过与农业领域的专家合作,分析了湿度、温度和病虫害对葡萄成熟度和品质的影响。澳洲的科学家利用无线传感器网络来探测北澳大利亚蟾蜍的分布情况13。由于蟾蜍的叫声响亮而独特,因此利用声音作为检测特征非常有效。科研人员将采集到的信号在节点上就地处理,然后将处理后的少量结果数据发挥控制中心。通过处理,就可以大致了解蟾蜍的分布、栖息情况。美国研究者F.J.Pierce,T.V.Elliott在华盛顿东部的农场部署了环境监测无线传感器网络14。该系统除了自身的监测功能外还与相应的控制系统相结合,当测得的环境温度低于某个预先设定的临界值时,系统可以自动启动温控设备,防止出现冻害。国内中国矿业大学学者王晓东、赵晓光等研制了用于煤矿环境监测的环境监测的无线传感器网络系统15。该系统基于加州大学伯克利分校的TMoteSKY节点和TinyOS操作系统,可以用来监测煤矿内部的环境变化,同时还能实现矿工的定位。重庆大学的研究者王韬、苏勤亮、唐松、唐浦钊将无线传感器网络应用到了西双版纳的自然保护区内16。该系统结合了GPRS、GIS、红外夜视和GPS等技术,实现了自然保护区生态环境信息的监测、动物活动路线规律的跟踪、新动物的发现、火灾等自然灾害的预警、以及巡护管理等功能。电子科技大学、中国空气动力研究与发展中心以及北京航天指挥控制中心的研究人员,利用无线传感器网络进行大型风洞测控环境的监测,对旋转机构,气源系统、风洞运行系统,以及其他没有基础设施而有线传感器系统安装又不方便或不安全的应用环境进行全方位检测17。成都无线龙通讯科技有限公司和北京市奥尔斯电子科技有限公司已开发出无线传感器网络智能监控软件,分别是C51RF-WSN监控软件V3.00和奥尔斯物联网综合教学实验平台。近几年随着无线传感器网络的不断发展,以及软硬件设备的逐渐成熟。世界范围内环境监控领域无线传感器网络的应用越来越广泛,新技术和新想法不断涌现,相信在环境和农业监控领域会有广泛的应用前景。1.3课题研究的主要内容本课题围绕智能环境监控系统进行分析和设计。针对以CC2430芯片为核心的传感器节点组成的传感器网络系统,设计出节点的硬件控制部分,编写嵌入式程序完成节点的智能控制功能。采用VisualC+6.0应用程序开发环境,编写程序完成监控传感器网络的上位机软件。研究的主要内容有:a)节点的硬件设计,包括各个传感器设计、信息处理模块、电源模块和控制执行器模块设计;b)采用ZigBee点对多点通信技术协议,应用无线传感器网络节点设计方案;c)对传感器节点进行程序编写的IAR嵌入式工作平台;d)软件设计基本概念和过程;e)单片机与计算机的串口通信技术;f)VisualC+6.0应用程序开发环境;g)软件和硬件调试。1.4小结本章对无线传感器网络作了简要介绍,阐述了智能环境监控系统近几年的发展状况,结合本课题给出了课题研究的主要内容。从中可以了解到智能环境监控系统的应用已经发展到多方领域,其实际应用价值正逐渐凸显。2智能环境监控系统总体方案设计2.1系统总体设计框图电源模块处理器模块无线射频模块(CC2430)温度采集模块(DS18B20)光照采集模块(光敏电阻)温度执行器(风扇)光照执行器(台灯)无线传感器节点协调器(CC2430)用户界面(上位机软件)WSN串口图2.1智能环境监控系统设计框图如图2.1,智能环境监控系统分为无线传感器网络硬件部分和上位机监控软件部分。硬件部分主要由无线传感器网络节点组成。节点根据传感器采集到的数据进行判断环境参数是否异常,如果异常则启动执行器使环境参数恢复到预设值。同时节点把信息发送给网络协调器,由网络协调器把数据整合通过串口发送到上位机软件。上位机软件对接收到的数据进行显示,记录各个时间的环境参数变化。用户可以通过上位机软件设定环境参数的上下限,手动打开或关闭执行器。同时把接收到的数据和操作执行器的记录记录到数据库,方便查询。2.2上位机软件总体设计2.2.1功能需求对于智能环境监控系统,上位机软件具备的基本功能是实时显示网络的拓扑结构,监测各传感器节点采集到的数据、执行器的状态并对传感器进行必要的控制。实时显示传感器状态实时显示传感器网络拓扑结构发送命令和激励信号结构数据库实时记录数据结构上位机软件图2.2智能监测无线传感器网络软件功能如图2.2,上位机软件主要具备四大功能:实时显示传感器状态、实时显示传感器网络拓扑结构、发送命令和激励信号、数据库实时记录数据。借助于IAR嵌入式程序开发平台和VisualC+6.0开发环境,以上功能均具有可行性。上位机与协调器通信在硬件上通过在两者间连接串口线实现,软件上则在VisualC+6.0环境下对MSComm控件的OnComm事件进行程序编写完成。协调器节点与上位机之间相互传送数据采用自定义数据帧格式可更加贴合用户需求。自定义串口通信协议涉及协调器与上位机两方的程序编写,通俗的说是一种“事前约定”,在约定中对数据格式、同步方式、传送速度、传送步骤、检错方式以及控制字符定义等做出统一规定,协调器和上位机必须共同遵守。为此,需在IAR环境下完成对协调器程序的编写,使其能够对上位机发来的数据包根据协议约定进行提取识别,进而响应相应的命令;在VisualC+6.0环境完成对上位机软件相关程序编写,使其能对协调器发来的数据包根据协议约定进行提取识别以监测整个无线传感器网络。2.2.2软件总体框架根据软件的需求分析设计出软件的几大模块,其框架如图2.3所示,从中我们可以看到各模块之间的内在联系。操作控制模块分析模块监视显示模块数据库模块图2.3智能环境监控系统软件框架图操作控制模块:通过监控软件实现对系统的基本设置,主要包括设置串口号、串口波特率、校验类型、设置环境参数的上下限等。另外可对指定节点发送命令或激励信号。监视显示模块:对无线传感器网络进行监测,实时显示网络拓扑结构并能根据用户设置将指定节点采集的温度、光照,执行器状态等基本信息进行可视化显示。分析模块:对采集的各种监测数据进行处理。数据库模块:保存历史实测数据,执行器运行状态历史等。2.2.3各模块任务分配针对操作控制模块,主要任务是在MFC环境下通过编辑MSComm控件的各种属性,使得用户可选择性设置各种串行口通信参数。另外编程实现向传感器节点发送控制命令的功能。针对监视显示模块,主要任务运用MFC中各控件的编程方法及一些必要的绘图知识在界面显示各传感器节点信息、绘制实时网络拓扑图。针对分析模块,主要任务是对采集来的各种监测数据进行处理。针对数据库模块,主要任务是运用VisualC+与数据库的连接技术,完成VisualC+到数据库的数据存储以及数据库表格在VisualC+界面上的显示。2.3系统硬件总体设计2.3.1节点功能分析智能环境监控系统无线传感器节点,能够实时监测、传递环境信息,调节环境参数,支持无线通信。节点可以通过无线传感器网络建立连接,通过传感器采集环境数据。判断环境参数是否正常,若不正常,则启动执行器调节环境参数。同时使用串口把数据传到上位机软件进行处理。这些功能可概括如下:(1)节点数据采集:通过温度传感器、光照传感器实时采集数据。(2)节点通信协议:采用无线通信ZigBee中SPP(简单包协议)协议完成端到端的数据传输。(3)节点数据分析:分析采集到的环境数据,判断是否超出预设值的上下限。若超出预设值,则启动执行器使环境恢复正常。(4)执行器模块:受分析模块的控制。信息采集模块节点数据分析执行器模块执行器模块SPP协议串口图2.4节点功能结构图2.3.2节点硬件组成节点硬件由无线传感器节点模块、处理器模块、无线射频模块、执行控制器模块和电源模块组成。其中,无线传感器模块由温度传感器DS18B20模块、光照传感器光敏电阻模块组成。处理器和无线射频模块采用CC2430芯片。执行控制器模块由电磁继电器和风扇台灯组成。电源模块分为两部分,CC2430芯片由两节电池供电,继电器风扇由220V交流电供电。由无线传感器节点采集环境数据信息,通过处理器执行器模块处理判断,控制环境。同时通过无线射频模块把节点状态发送给数据接收模块,数据接收模块通过串口把数据发送给上位机软件。2.4小结本章对智能环境监控系统做了总体设计,包括上位机软件和硬件的总体设计。根据各部分的功能需求,设计了总体设计框架及其功能模块,明确了为实现各功能需要完成的具体任务。3软件详细设计3.1软件总体结构3.1.1软件界面总体框架图主界面菜单栏工具栏TAB1TAB2端口设置阀值设置其他节点属性节点树拓扑图阀值与控制数据库图3.1智能监测无线传感器网络系统软件界面总体框架图3.1.2软件各部分介绍根据图3.1所示的软件界面总体框架图,对图中各部分做简要介绍如下:菜单栏:菜单栏提供一些必要的操作。本软件菜单栏提供的操作有:设置(端口设置,阀值设置)、通讯(查看串口,打开串口,关闭串口)、视图(拓扑图,阀值与控制,数据库)等。工具栏:工具栏选取菜单栏中常用操作,通过编辑按钮实现菜单栏中的部分功能,是菜单栏选项的一种快捷操作。本软件工具栏“复制”了菜单栏选项中的“查看串口”、“端口设置”、“打开串口”、“关闭串口”等功能。Tab控件1:Tab控件可在程序运行时选择打开选项卡中对应的窗口,操作简单,较友好。Tab控件1下设两个窗口,分别为节点树窗口和节点属性窗口。节点树窗口截取拓扑图窗口中显示的拓扑图,方便用户在做控制与测试网络时,直接获取网络拓扑信息;节点属性窗口对指定的传感器节点显示其网络属性及所含传感器感测的数据。Tab控件2:Tab控件2下设三个子窗口,分别为拓扑图窗口、阀值与控制窗口和数据库窗口。拓扑图窗口显示当前传感器网络拓扑结构;阀值与控制窗口对指定节点的环境参数上下限的设定、继电器的开关控制;数据库窗口用于显示实时更新的数据表。3.2界面设计3.2.1概述基于更加贴合用户需求的思想,本软件共设计了7个界面,分别是智能环境监控系统软件主界面、系统设置子界面、传感器网络节点树子界面、传感器网络节点属性子界面、传感器网络拓扑图子界面、传感器网络阀值设置与控制界面、数据库子界面。以下是对各界面作的详细说明。3.2.2主界面建立一个MFCAppWizardexe工程,工程名称为“wsnd”,采用基于对话框模式,各设置采用默认状态,进入一个系统自生成的工程。主界面的样式如图3.2所示,ID为IDD_WSND_DIALOG,标题为“智能环境监控系统”。主界面共放置三个控件,分别是一个MSComm控件和两个Tab控件。由于VisualC+集成开发环境在默认情况下,不会包含MSComm控件,所以使用MSComm控件必须先将其加载到VisualC+集成开发环境。在VisualC+主界面中,单击【工程】|【添加工程】|【ComponentsandControls】|【RegisteredActiveXControls】|【MicrosoftCommunicationsControl,version6.0】|【Insert】|【确定】|【OK】|【结束】即可将MSComm控件加载进VisualC+工具箱中供使用。图3.2智能环境监控系统软件主界面表3-1为主界面控件的设置表。表3-1主界面控件设置表控件ID标题功能MSComm控件IDC_MSCOMM1无上位机与协调器串口通信所需Tab控件1IDC_TABFORMER无显示节点树及节点属性窗口Tab控件2IDC_TABLATTER无显示拓扑图、阀值与控制、数据库窗口3.2.3端口设置子界面在工程中插入一个新的对话框,ID为IDD_DIALOG_PORTSET,标题为“端口设置”。其界面如图3.3所示,共放置8个控件,分别为3个静态文本控件、3个组合框控件、2个按钮控件。图3.3系统设置子界面表3-2为端口设置子界面控件设置表。表3-2端口设置子界面控件设置表控件ID标题功能静态文本1IDC_STATICCOM端口提示作用静态文本2IDC_STATIC波特率提示作用静态文本3IDC_STATIC校验类型提示作用组合框1IDC_COMBO_COM无列出COM口供选择组合框2IDC_COMBO_BAUDRATE无列出波特率供选择组合框3IDC_COMBO_PARITY无列出校验类型供选择按钮1IDOK确定确定当前的系统设置按钮2IDCANCEL取消取消当前的系统设置3.2.4传感器网络节点树子界面在工程中插入一个新的对话框,ID为IDD_DIALOG_NODETREE,如图3.4所示。设置其属性样式为“Chind”,为作为主界面Tab控件1的第一个显示窗口做准备。图3.4节点树子界面表3-3为传感器网络节点树子界面控件设置表。表3-3传感器网络节点树子界面控件设置表控件ID标题功能树形控件IDC_TREE_NODETREE无显示节点树按钮1IDC_BUTTON_NTSTOP暂停刷新暂停节点树动态更新按钮2IDC_BUTTON_NTSX刷新中节点树动态更新3.2.5节点属性子界面在工程中插入一个新的对话框,ID为IDD_DIALOG_NODEPROPERTY,设置其属性样式为“Child”,为作为主界面Tab控件1的第二个显示窗口做准备。其界面如图3.5所示,共放置24个控件,分别是11个静态文本控件、8个编辑框控件、1个组合框控件、4个按钮控件。图3.5节点属性子界面表3-4为节点属性子界面主要控件设置表。表3-4节点属性子界面主要控件设置表控件ID功能编辑框1IDC_EDIT_NPNODEADD显示节点地址编辑框2IDC_EDIT_NPNODETYPE显示节点网络类型编辑框3IDC_EDIT_NPNMADD显示节点MAC地址编辑框4IDC_EDIT_NPFNMADD显示父结点MAC地址编辑框5IDC_EDIT_NPSENNUM显示传感器类型编辑框6IDC_EDIT_NPTEMPER显示温度值编辑框7IDC_EDIT_NPLIGHT显示光电值编辑框8IDC_EDIT_NPJDQ显示继电器状态组合框IDC_COMBO_NPNODESELECT列出活动的节点供选择3.2.6拓扑图子界面在工程中插入一个新的对话框,ID为IDD_DIALOG_TOPUTABPAGE,设置其属性样式为“Child”,为作为主界面Tab控件2的第一个显示窗口做准备。其界面如图3.6所示,共放置10个控件,分别是3个静态文本控件、5个图像控件、1个按钮控件、1个编辑框控件。图3.6拓扑图子界面按钮控件的ID为IDC_BUTTON_TOPUCD,标题为“拓扑图保存”。主要控件的设置如表3-5所示。表3-5拓扑图子界面主要控件设置控件ID类型功能图像控件1IDC_STATIC_PICTOPU矩形显示拓扑图图像控件2IDC_STATIC_PICDANGER图标显示危险图标编辑框控件IDC_EDIT_DANGER无显示危险信息3.2.7阀值与控制子界面在工程中插入一个新的对话框,ID为IDD_DIALOG_CONTROL,设置其属性样式为“Child”,为作为主界面Tab控件2的第二个显示窗口做准备。其界面如图3.7所示,共放置22个控件,分别是10个静态文本控件、2个组框控件、4个单选按钮控件、1个按钮控件、1个组合框。图3.7阀值与控制子界面表3-6为阀值与控制子界面主要控件设置表。表3-6阀值与控制子界面主要控件设置表控件ID标题功能编辑框1IDC_WENDUMAX_EDIT无显示温度最大值编辑框2IDC_GUANGZHAOMAX_EDIT无显示光照最大值编辑框3IDC_WENDUMIN_EDIT无显示温度最小值编辑框4IDC_GUANGZHAOMIN_EDIT无显示光照最小值单选按钮1IDC_OPENFENGSHAN开控制电扇开单选按钮2IDC_OPENFENGSHAN开控制台灯开单选按钮3IDC_CLOSEFENGSHAN关控制电扇关单选按钮4IDC_CLOSETAIDENG关控制台灯关按钮1IDC_CONTROL_OK确定确定数据发送组合框IDC_COMBO_Nodesel无列出节点供选择3.2.8数据库子界面在工程中插入一个新的对话框,ID为IDD_DIALOG_DBTABPAGE,设置其属性样式为“Child”,为作为主界面Tab控件2的第四个显示窗口做准备。其界面如图3.8所示,共放置3个控件,分别是1个列表框控件、2个按钮控件。图3.8数据库子界面表3-7为数据库子界面控件设置表。表3-7数据库子界面控件设置表控件ID标题功能列表框IDC_LIST_DB无显示表单选按钮1IDC_BUTTON_DBDATA历史实测数据打开“历史实测数据表”单选按钮2IDC_BUTTON_DBYZ当前阈值打开“阈值表”3.3主界面主要附属功能实现3.3.1菜单栏用户与应用程序的交互通常是通过菜单栏中的命令实行的,因此,菜单在应用程序中占有很重要的位置。本软件是基于对话框模式的,故程序没有自动生成菜单栏,需要自行添加。单击【插入】|【资源】|【Menu】|【新建】即可向当前工程添加一个新菜单,默认ID为IDR_MENU1。打开工作空间中的ResourceView选项卡,可对此新菜单做编辑。如图3.9所示为本软件菜单栏菜单项。图3.9菜单栏菜单项表3-8为菜单栏的详细设置表。表3-8菜单栏的详细设置表一级菜单标题一级菜单ID二级菜单标题二级菜单ID系统设置ID_Menu_PortSet设置(&S)无阈值设置ID_Menu_FZSet查看串口ID_Menu_PortSee通讯(&C)无打开串口ID_Menu_PortOpen关闭串口ID_Menu_PortClose拓扑图ID_MENU_TOPUVIEW阀值与控制ID_MENU_CONTROL视图(&V)无数据库ID_MENU_DATABASE对菜单栏进行各菜单项设置后,在主对话框属性中将菜单选为IDR_MENU1,这样在运行程序时菜单栏方可见。另外,需对菜单栏编辑响应事件方可发挥其功用。在菜单资源中右击菜单项,选择建立类向导,选择COMMAND消息,添加对应的功能函数。对主要菜单项编程如下:(1)“端口设置”菜单项对照“界面设计”中的“端口设置”对话框,参看“端口设置”菜单项代码如下:voidCWsndDlg:OnMenuPortSet()/串口参数设置:串口号,波特率,校验位CStringstrStatus,strTemp;if(m_Portset.DoModal()=IDOK)if(m_Portset.m_Com=COM1)myCom=1;elseif(m_Portset.m_Com=COM2)myCom=2;elseif(m_Portset.m_Com=COM3)myCom=3;elseif(m_Portset.m_Com=COM4)myCom=4;elseif(m_Portset.m_Com=COM5)myCom=5;elseif(m_Portset.m_Com=COM6)myCom=6;elseif(m_Portset.m_Com=COM7)myCom=7;elseif(m_Portset.m_Com=COM8)myCom=8;elseif(m_Portset.m_Com=COM9)myCom=9;elseif(m_Portset.m_Com=COM10)myCom=10;if(m_Portset.m_Baudrate=2400)myBaudRate=2400;elseif(m_Portset.m_Baudrate=4800)myBaudRate=4800;elseif(m_Portset.m_Baudrate=9600)myBaudRate=9600;elseif(m_Portset.m_Baudrate=19200)myBaudRate=19200;elseif(m_Portset.m_Baudrate=38400)myBaudRate=38400;elseif(m_Portset.m_Baudrate=57600)myBaudRate=57600;elseif(m_Portset.m_Baudrate=115200)myBaudRate=115200;if(m_Portset.m_Parity=无校验)myParity=N;elseif(m_Portset.m_Parity=偶校验)myParity=O;elseif(m_Portset.m_Parity=奇校验)myParity=E;CStringstrPara,strTemp;/串口参数strPara=COM;strTemp.Format(%d,myCom);strPara+=strTemp;strPara+=,;strPara+=myBaudRate;strPara+=,;strPara+=myParity;AfxMessageBox(strPara);UpdateData(FALSE);(2)“查看串口”菜单项查看串口的功能通过访问注册表信息来实现,主要代码如下:voidCWsndDlg:OnMenuPortSee()/查看串口/TODO:AddyourcommandhandlercodehereCStringstrCommArr;CStringstrTemp;HKEYhKey;intrtn;rtn=RegOpenKeyEx(HKEY_LOCAL_MACHINE,HardwareDeviceMapSerialComm,NULL,KEY_READ,/打开注册表if(rtn=ERROR_SUCCESS)inti=0;charportName256,commName256;DWORDdwLong,dwSize;while(1)dwSize=sizeof(portName);dwLong=dwSize;rtn=RegEnumValue(hKey,i,portName,strCommArr=commName;if(rtn=ERROR_NO_MORE_ITEMS)/枚举串口break;strTemp+=strCommArr;strTemp+=可用!;strTemp+=1512;i+;RegCloseKey(hKey);AfxMessageBox(strTemp);添加以上代码后,PC机连接串口,点击“查看串口”,得其效果如图3.10所示。图3.10查看可用端口(3)“打开串口”菜单项打开串口功能所用关键代码为:voidCWsndDlg:OnMenuPortOpen()/打开串口/TODO:AddyourcommandhandlercodehereCStringstrPara;/串口参数myComm.SetCommPort(myCom);/指定串口号myComstrPara=myBaudRate;strPara+=,;strPara+=myParity;strPara+=,8,1;myComm.SetSettings(strPara);/通信参数设置myComm.SetInBufferSize(1024);/指定接收缓冲区大小myComm.SetInBufferCount(0);/清空接收缓冲区myComm.SetInputMode(1);/设置数据为二进制获取方式myComm.SetInputLen(41);/设置每次读取长度为41个字节myComm.SetRThreshold(1);/OnComm事件门限值myComm.SetPortOpen(1);/打开串口AfxMessageBox(串口打开成功!);添加以上代码后,已查看端口可用,点击“打开端口”,得其效果如图3.11所示。图3.11串口打开成功(4)“关闭串口”菜单项关闭串口功能所用关键代码为:myComm.SetPortOpen(0);/关闭串口(5)“视图”菜单下的“拓扑图”菜单项拓扑图菜单项的关键代码如下:voidCWsndDlg:OnMenuTopuview()/拓扑图菜单项/TODO:Addyourcommandhandlercodeherem_tab2.SetCurSel(0);m_topu.ShowWindow(true);m_kz.ShowWindow(false);m_sjk.ShowWindow(false);3.3.2工具栏同插入菜单栏的方法,插入一个工具栏,ID为IDR_TOOLBAR。双击工具栏上的按钮,设置ID号即完成一个工具栏按钮的新建任务。选取功效易读的图标,引入为工程的Icon资源。选取作用的对象,通过单击【编辑】|【复制】或【粘贴】可将图标加载进工具栏对应按钮,使界面更加美观可读。如图3.12所示为本软件工具栏外观图。工具栏按钮从左到右依次复制了菜单栏的“查看端口”、“端口设置”、“打开串口”、“关闭串口”等功能。图3.12工具栏外观图只需将工具栏按钮的ID改成相应菜单项的ID,即可使按钮具有对应菜单项的功能。至此,最后的问题是工具栏的显示问题以及“工具按钮提示”的显示问题。(1)虽然添加了工具栏资源并对其按钮ID做了编辑,但仅此在运行程序时工具栏是不可见的,更无法对其按钮操作。在主对话框初始化代码段中添加如下代码使工具栏可视化:cToolBar.Create(this);/创建工具栏cToolBar.LoadToolBar(IDR_TOOLBAR);/装载工具栏资源cToolBar.LoadBitmap(IDB_BIT_toolbar);cToolBar.ShowWindow(SW_SHOW);/显示窗口cToolBar.SetBarStyle(CBRS_ALIGN_TOP|CBRS_TOOLTIPS|CBRS_FLYBY);/设置工具栏风格(顶端停靠、光标在按钮上停留显示工具提示和命令描述)RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);(2)工具栏按钮提示可在其属性中添加。但程序运行时鼠标移到按钮区域时不会有提示信息,原因是在基于对话框模式下,“工具栏提示”的相应代码没有被系统封装,需手动添加。而在基于单文档模式下,就没有这种顾虑。添加代码及过程如下:a在wsndDlg.h文件的/AFX_MSG(CWSNJKDlg)/AFX_MSG之后添加:afx_msgBOOLOnToolTipText(UINTnID,NMHDR*pNMHDR,LRESULT*pResult);DECLARE_MESSAGE_MAP()b在wsndDlg.cpp文件的消息映射函数最后添加:ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW,0,0xFFFF,OnToolTipText)/用于工具栏按钮/显示信息ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA,0,0xFFFF,OnToolTipText)/用于工具栏按钮/显示信息c在在wsndDlg.cpp文件中添加:BOOLCWsndDlg:OnToolTipText(UINT,NMHDR*p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论