admin 管理员组文章数量: 1087139
2024年1月13日发(作者:cursor pin s wait on x)
总第193期 2010年第7期 舰船电子工程 Ship Electronic Engineering Vo1.30 No.7 134 MVC设计模式在环境监控系统 终端界面设计中的应用 李黎 陈俊杰”, (东南大学仪器科学与工程学院” 南京摘要210096)(东南大学常州研究院。 常州 213164) 针对温室环境监控系统的具体应用,需要为用户提供友好的交互界面,包括结果显示和实时控制功能,使用当 前流行的优秀的Java语言,运用其GUI组件,从使用MVC设计模式构建系统框架的角度出发,编程实现环境监控系统的 终端界面显示功能。 关键词MVC设计模式;GUI组件;界面显示 TP311.5 中图分类号Application of MVC Design Patterns on Displaying Interface of Environment Inspect and Control System Li Li ’Chen Junjie ’。 (School of Instrument Science and Engineering,Southeast University”,Nanjing 210096) (Changzhou Academe,Southeast Universitye’,Changzhou 213164) Abstract Aiming at the application of greenhouse environment inspect and control system,we need to supply friendly interface for the users,including the results displaying and the function of controlling system timely.We use the fashion and excellent programing language named Java,thinking of using MVC design patterns tO construct the system framework,and using the GUI components,tO achieve the purpose of displaying the environmental inspect and control system terminal inter— face. Key Words MVC design patterns,GUI components,interface display Class Ntmlber TP311.5 1 引言 现代化的温室是比较完善的保护生产设施, 利用这些设施可以人为地创造、控制环境条件,在 界面显示领域各显神通。JAVA因其面向对象等 特点,近些年来呈现了旺盛的生命力。分离稳定 的代码和易变的代码是面向对象设计的一个基本 原则[3j,MVC设计模式分离了程序的表现、控制 和数据,具有设计清晰、易于扩展、运用可分布的 寒冷或炎热的季节进行花卉、蔬果的生产[5]。近 几十年,随着科学技术的进步,人们对温室环境要 求越来越高,以微机为核心的温室综合环境监控 系统获得了长足的发展。环境监控系统终端显示 类型纷呈多样,实现方式更是种类繁多。VB、C+ 特点,因此在构建电子商务平台、CRM和ERP等 类似系统中有显著的优势L2]。本文基于MVC分 离模块的思想,使用JAVA GUI组件构建程序框 架,实现在温室环境监控系统的图形界面显示功 能。 +、JAVA等众多主流语言都有其独到的优势,在 *收稿日期:2010年2月4日,修回日期:2010年3月5日 基金项目:常州市科技攻关计划重点项目(编号:CE20090027);常州市科技攻关计划项目(编号:CE20092010)资助。 作者简介:李黎,女,硕士研究生,研究方向:无线传感器网络。陈俊杰,男,教授,博士生导师,研究方向:无线传感器 网络、机器人感知及控制技术。
2010年第7期 舰船电子工程 2 MVC设计模式 2.1设计模式简介 Christopher Alexander曾说:“每一个模式描 述了一个在我们周围不断重复发生的问题,以及该 问题的解决方案的核心。这样,你就能一次又一次 的使用该方案而不必做重复劳动”。一个设计模式 命名、抽象和确定了一个通用设计结构的主要方 面,这些设计结构能被用来构造可服用的面向对象 设计。设计模式确定了所包含的类和实例,它们的 角色、协作方式以及职责分配。设计模式l】]使人们 可以更加简单方便地使用成功的设计和体系结构, 提高已有系统的文档管理和系统维护的有效性,其 核心在于提供了相关问题的最优解决方案。 2.2 MVC设计模式结构 MVC(Model—VieⅥ卜Controller)是由Small Talk提出的一种著名的设计思想L7]。MVC模式 包括三个部分:模型(Mode1)、视图(View)和控制 器(Controller),分别对应于内部数据、数据表示和 输入输出控制部分。模型(Mode1)是与问题相关 数据的逻辑抽象,代表对象的内在属性,是整个模 型的核心。它采用面向对象的方法,将问题领域中 的对象抽象为应用程序对象,在这些抽象的对象中 封装了对象的属性和这些对象所隐含的逻辑模型。 视图(View)是模型的外在表现,一个模型可以对 应一个或者多个视图。视图具有与外界交互的功 能,是应用系统与外界的接口:一方面,它为外界提 供输入手段,并触发应用逻辑运行;另一方面,它又 将逻辑运行的结果以某种形式显示给外界。控制 器(Controller)是模型与视图的联系纽带,控制器 提取通过视图传输进来的外部信息,并将用户与 View的交互转换为基于应用程序行为的标准业务 事件,再将标准业务事件解析为Model应执行的动 作(包括激活业务逻辑和改变Model的状态)。如 同一般的程序结构一样,MVC有输人、处理、输出 三个部分:Controller对应于输入,Model对应于数 据表示和数据处理,View对应于输出(如图1)。 如果不使用MVC,用户界面设计往往将这些对象 混在一起,而MVC则将他们分离以提高系统灵活 性和复用性。在经典的MVC模式中,Controller 和View时相互独立的l8 ,但是根据Swing开发界 面的特殊性,Controller和View是相互联系,通常 需要紧密结合的,因此就有了改良的MVC模式, 以适应具体的应用(如图2)。包含一个维护组件 的数据模型M和一些继承自JComponent的带有 事件监听器的视图/控制器。 ①二⑤ 图1 MVC模型 图2 Swing改进MVC模型 3 MVC设计模式在界面设计中的应用 3.1温室环境监控系统 现代化温室设施应用先进的科学技术,采用连 续生产方式和管理方式,高效、均衡地生产各种蔬 菜、水果、花卉、药材等。它可以不受地点和气候的 影响,设置在包括寒冷地区或不毛之地的各个地 区。它能够有效地改善农业生态、生产条件,促进 农业资源的科学开发和合理利用,提高土地产出 率、劳动生产率和社会、经济效益。温室设施的关 键技术是环境监控。温室环境监控是在不受外界 气候的影响条件下,通过改变温室内部环境因子 (温度、湿度、光照等)来获得作物最适宜的成长发 育环境[ 。 3.2 基于JAVA GUI组件的终端界面设计 1998年12月,Sun公司正式发布了Java2平 台(JDKl_2)与JDK1.X的AwT(Abstract Win一 dows Toolkit)相比,JFC(Java Foundation Clas— ses)的出现给开发Java图形界面的用户提供了强 有力的工具来构建丰富美观的图形用户界面_6]。 不仅AwT中的所有组件均能在JFC的Swing中 找到其对等体,这些组件还得到了很大的改进。 Swing提供了一套丰富的“轻型”GUI组件,组件以 其灵活的架构、优美的外观、丰富的表现形式对Ja— va界面应用程序设计产生了巨大的影响。环境监 控系统需要在终端为用户提供友好的界面显示,包 括表格数据的显示和动、静态曲线的显示,以便于 用户及时地了解系统的运行情况并根据具体的问 题采取相应的措施。本文采用基于JAVA GUI组 件技术,结合当前流行的MVC模式,开发系统界 面,实现对环境监控系统结果的展示和控制。 3.3 系统程序框架构建思想 界面显示需要与外界环境进行交互,通过串口 传递数据,与基站统一数据格式进行有效沟通。基 站采集传感节点数据,分析之后传递给终端,同时 获得从终端发送来的控制数据,解析后传递给控制 节点,以达到控制具体环境参数的目的。根据改进 MVC思想,将数据控制层和界面显示层分离开来 之后,系统程序的框架可以分为两部分。Model
136 李黎等:MVC没 ‘模式在环境监控系统终端界面设计中的应用 总第193期 层,控制数据的读入读出,以及数据在View层间 SerialPort serialPort一(SerialPort)portId.open(”Comm”, 60); 的传递;View和Controller层相结合,根据需要实 现的具体功能,增加带有监听器的视图控制层,实 现界面的显示。 3.4程序功能具体实现 f 开卑口 serialPort.setSerialPortParams(57600,SerialPort.DAT_ ABITS8,SerialPort.STOPBITS1,SerialPort.PARITY_— 搭建工程Project,根据不同用途建立不同包, 数据控制包DataControl和界面显示包Views。 DataControl包是系统的核心,它担负着Model层 N0NE): //设置串口参数 2)打开输人输出流 InputStream inputStream—serialPort.getlnputStream(); 的功能,起着数据的接收、处理、传送的功能,协调 OutputStream output—serialPort.getOutputStream(); 着数据在程序间的流动;Views包是系统的外在显 示部分,它担负着View层Controller的功能,将数 据处理结果以友好的形式呈现给用户。 使用三维数组data[]r-][-I存储数据,第一维代表 大棚号,第二维代表节点号,第三维存入具体数值。 3)使用经典开源框架Hibernate链接数据库 Mysql,引人配置文hibernate.cfg.xml。 Configuration conf—new Configuration().configure(); DataControl包,具体包含从串口读人数据的类 ReadINta.java,保存数据至数据库的类RerseverDa— ta.java,发送控制数据的类SendData.java。程序的 //创建Configuration实例,管理Hibernate配置信息 SessionFactory factory—conf.buildSessionFactory(); 人口点从ReadData.java类进去,打开输入流,利用 串口读取数据;一方面通过RerseverData.java类将 数据保存至Mysql数据库,以便将来查询历史数据 和历史曲线;另一方面通过控制层和视图层的接口 (一个三维数组),将数据传递至视图层,实时界面显 示数据和曲线。如果有了特定需求,需要利用终端 界面,控制远程节点的运行情况,则通过SendData //构建Session工厂,为后续构造Session准备 Session session=factory.openSession(); //生成Session,产生会话信息 Views包,具体包含节点分布图类Distribu- tion.java,历史曲线显示类HistoryCurve.java,实 时曲线显示类RealCurveView,java,实时数据显示 类RealDataView.java,以及控制面板类Control— java,打开输出流,通过串口将数据写入基站,进而传 递到控制节点,达到实时控制系统的目的。程序主 要实现部分: 1)对串口编程 CommPortldentifier portId=CommPortIdentifier.getPortI— Pane1.java。节点分布图,用来显示温室环境的现 场布置情况(如图3);历史曲线图,通过曲线的直 观形式,展现一段时间内系统相应参数值的变化情 况(如图4);实时数据显示图,以表格数据形式展 现参数值的实时变化情况(如图5)。 dentifier(”COM1”);//串口初始化 图3节点分布图 图4历史曲线显示图 图5实时数据显示图 程序主要实现部分:1)各个类继承自JFrame 类,实现ActionListener接口。类体根据不同的需要选择相应的布局管理器,BorderI ayout、F1ow—Layout、GridLayout等,构造JPanel,JButton, JTextField等GUI组件,绘制NN ̄-N。2)在 public class ControlPanel extends JFrame implements Ac一 tionListener,Runnable{ void m public、…….} l 程序框架构建之后,根据具体需求的不同,包 ControlPane1.java类中,采用了JAVA多线程技 术,实现Runnable接VI。因为从串口读取数据和 向基站发送控制数据是两个并发执行事件,所以需 要开启不同的线程,同步执行。 括大棚数的不同,节点数的不同等,具体部署实施 到项目上。在MVC设计模式的指导下,将控制层 和视图层分离开来,使得程序有了更强的适应性和 灵活性。
2010年第7期 舰船电子工程 4 结语 [3]McLaughlin&Java and XML[M].O’Reilly&Assoiates. Inc.,2000:80 ̄83 Java的主要特征之一是面向对象编程,MVC [4]安国民,徐世艳,赵化春.国外设施农业现状与发展趋 思想是面向对象编程的优秀体现。充分利用语言 势[J].现代化农业,2004,21(2):42 ̄47 本身的优势、MVC设计模式的优势、以及开源框架 [5]孙忠富,曹洪太,杜克明,等.温室环境无线远程监控系 (如Hibernate)的优势,为我们搭建的工程提供更 统的优化解决方案[J].沈阳农业大学学报,2006,37 (1):270~273 好的服务,加强了系统的可扩展性以及可维护性。 [6]于书举.JavaBean与GUI组件数据绑定模型[J].北京 参考文献 工业大学学报,2005,30(1):4 [7]F.Ian,K.Carl,et a1.The AAnatomy of The Grid: [1]L.Baresi,E.Nitto,C.Ghezzi.Towards openworld Enabling Scalable Virtual Organizations[J].Interna— software:Issue and challengesl,J].Software Engineer— tional journal of high performance computing applica— ing Workshop,2006(11):249 ̄252 tions,2004,15(4):200 ̄222 [2]J.Ge,H.Hu,P.Lu,et a1.Translation of nets with— [8]SUN Microsystems Inc.Java Message Service Specifi— in nets in cross organizational software process model- cation.Version1.1[EB/OL].http://java.SUn.com/ ingl'J].ISPW,2005,21(2):360 ̄375 produet/jms,2002 J, 2 J/ 秘J/ 不 尔 乖 乖 矫 乖 不 不 不 ;. ;.币 ; ! (上接第64页) 4所示,其中:“o”代表真实的测量航迹点,*代表 量,可以对有源雷达的残缺数据进行补充。 第一次扫描时的杂波点,“口”代表第二次扫描时的 杂波点,“+”代表第三次扫描时的杂波点,“●”代表 5 结语 第四次扫描时的杂波点。 本文提出了一种复杂电磁环境下集中式组网 雷达的航迹起始方法。该方法将有源雷达与无源 雷达协同使用,综合利用了多部雷达量测信息,采 用一步延迟的航迹起始方法,可以快速有效地起始 航迹。对于观测噪声较大甚至强干扰导致缺少量 测信息的情况,能够利用无源雷达所接收处理的信 息有效补充,建立航迹,并且虚假航迹数较少。能 图4杂波点与真实点 图5航迹起始图 适应复杂环境的变化,有很好的应用前景。 的态势图 参考文献 上述算法综合利用了 多部雷达量测信息,采用 [1]陈小伟,林家骏。等.修正的逻辑航迹起始算法性能研 基于一步延迟的方法得到 究[J].华东理工大学学报(自然科学版),2006 航迹起始如图5,从图5 f2]何友,修建娟,等.雷达数据处理及应用[M].第二版.北 可以看出该算法密集杂波 京:电子工业出版社,2009 条件下能快速有效地建立 [3]袁刚才,吴永强,张杰.无源定位系统的快速航迹起算 航迹。但是当有两批目标 法[J].系统仿真学报,2005 图6被部分干扰后 的回波部分被强电磁波干 [4]LIU Zong-xiang,XIE Wei-xin.A new method for 的航迹起始图 track initiation in a distributed passive sensor network 扰,中心站得不到真实数 [c]//ICSP2OO8 Proceedings 据,于是得到航迹起始如图6所示,很明显失去了 [5]朱洪艳,韩崇昭.航迹起始算法研究[J].航空学报, 两批目标的航迹,这时就需要用无源雷达测的数据 2004,25(3):284~288 协同进行目标航迹起始。而从图3看出在密集杂 [6]刘双全,贺平,李修和.基于一步延迟航迹起始算法研 波条件下无源雷达能对目标方位角进行有效的测 究I-J].电子技术,2009(1)
版权声明:本文标题:MVC设计模式在环境监控系统终端界面设计中的应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1705080255a472411.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论