智能安防集成监控平台-电子地图子系统-毕业论文_第1页
智能安防集成监控平台-电子地图子系统-毕业论文_第2页
智能安防集成监控平台-电子地图子系统-毕业论文_第3页
智能安防集成监控平台-电子地图子系统-毕业论文_第4页
智能安防集成监控平台-电子地图子系统-毕业论文_第5页
免费预览已结束,剩余46页可下载查看

下载本文档

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

文档简介

厦门大学软件学院毕业论文本科毕业论文(科研训练、毕业设计)题 目:智能安防集成监控平台电子地图子系统姓 名:学 院:软件学院系:专 业:软件工程年 级:学 号:指导教师(校内): 职称: 指导教师(校外): 职称: 年 月摘 要集成监控平台是将安防领域中相对独立的设备、系统、信息、计算机网络系统,经开发整合为一个相互关联的、统一的、协议兼容的,适应于安防行业等不同领域的系统核心平台。如:网络监控、门禁控制、防盗报警、语音信息、环境监控,通过数据库形式链接相关各子系统数据,将采集到的信息进行数字化管理,实现安防多级联动视频监视管理体系。现在的监控平台基本上都是针对某个项目定制,完成的平台在其它类似项目中无法移植,往往使程序员重复的做相同的工作。为了解决这个问题,我们公司经过一段时间的考察,决定开发一个智能集成安防监控平台。智能集成安防监控平台采用C+Builder 6.0作为开发平台。本文介绍安防监控平台的子系统电子地图系统的开发过程和结果。关键词:监控 安防 监控平台电子地图AbstractThe integrated supervision terrace is to defend the opposite and independent equipments,system,information,the Computer network system in the Safety protection realm to be a system nucleus platform,which is mutually of,unify of,protocol compatible, and adapt to defence profession in Anne etc. Such as:The network supervision, controlment of gate, guard against theft to give an alarm,the speech information,environment supervision etc connect each related subsystem data through the database form chain, and carry the collected information to turn a numeral management.Carrying out Anne to defend to be many linkage video frequency surveillance management system.The supervision platform of now is mostly made to order to a certain item. The finished terrace cant transplant in other similar items, usually making the procedure member repeating of doing a same work.For resolving this problem, our company decided to develop an supervision terrace of Anne defends ,which is intelligent and integrated, by investigating a period of time.The intelligence and integrated supervision terrace of Anne defend adopt C+Builder 6.0 Be developing terrace.This text will introduce the development process and results of electronic map system which is the sub-system of the integrated supervision terrace. Key words: Supervision; Anne to defend ; The electronic map of the supervision platform.目录第一章 引言11.1课题背景11.2电子地图系统行业开发现状11.3电子地图系统简介1第二章 开发环境、工具22.1操作系统平台22.2开发平台22.3数据库平台22.4开发语言32.5版本管理器Microsoft Visual SourceSafe6.03第三章 系统的总体设计53.1设计思想53.2系统组成63.3系统流程图73.4系统过程时序图73.5系统数据库设计9第四章 系统的详细设计124.1系统面向对象设计124.1.1类的设计124.1.2类图164.2用例图174.3数据库操作实现184.4功能实现194.4.1权限判断194.4.2主地图的操作204.4.3图片管理214.4.4树形图的操作224.4.5子地图的操作244.4.6设备的操作244.4.7其它操作254.5系统运行测试26第五章 结论27致谢28参考文献29附录A30附录B31ContentsChapter 1 Introduction11.1Topic background11.2Present development condition of the electronic map system11.3Brief introduction of the electronic map system1Chapter 2 Developing environment and tools22.1Operating system terrace22.2Developing terrace22.3Database terrace22.4Developing language32.5The edition manager Microsoft Visual SourceSafe6.03Chapter 3 The total design of the system53.1Design idea53.2The system constitute63.3System flow chart73.4System process sequence diagram73.5The system database design9Chapter 4 The detailed design of system124.1The system OOD124.1.1The design of the classes124.1.2Class diagram164.2Use_Case diagram174.3carrying out of The database operation184.4carrying out of The functions194.4.1judgement of The jurisdiction194.4.2The operation of the main map204.4.3The picture management214.4.4The operation of the TreeView224.4.5The operation of the sub-map244.4.6The operation of the Devices244.4.7Other operations254.5The system running test26Chapter 5 Conclusion27AcknowLedgement28References29Supplement A30Supplement B3144第一章 引言1.1 课题背景安防产品在中国作为一个相对新兴的产业计算机技术的迅速发展和推广,使世界掀起一股强大的数字化浪潮,数字化以其独特的先进性、强大的扩充性等诸多特点成为世界产业发展的一个基本的规律。安防产品在中国作为一个相对新兴的产业,可以说在其迅速扩展式发展的二十一世纪初便深深打上了数字化的烙印。在产业数字化的发展过程中,软件的应用在其发展中起着决定性的作用。1.2 电子地图系统行业开发现状目前在安防行业中做得较好的有华为科技和海康数字科技等,它们在软件的功能实现及界面设计中都有自己的特色与优势。我们的软件在设计初期也借鉴了它们产品的设计。虽然监控平台的设计在最近几年的发展中逐步的完善与改进,但还是存在着一些缺陷,其中最突出的就是缺少再工程监控平台,大部分的平台都是有针对性的开发,针对工程、针对项目或者针对某个地域而开发制作。这必然会使公司的软件开发开销增加很多。1.3 电子地图系统简介电子地图系统主要是对于一个监控网络的平面直观表示,比如在厦门建立了一个监控站,那么我们只要在电子地图的相应位置上添加这些站点的表示,站点上的设备等也添加到电子地图中,那么工作员就能在一个地方监控整个厦门的监控站。所以电子地图的主要功能就在于提供用户一个浏览监控网络的平台及操作各种设备的接口。在我们的电子地图系统中,主要的特点就是稳定性、通用性及可扩展性,这些在安防国内的安防业中是占有很大优势的。第二章 开发环境、工具2.1 操作系统平台操作系统采用的是WindowsXP Professional。该系统具有稳定性好、可靠性高、集成度高和界面友好等特点。2.2 开发平台系统的开发平台采用的是C+Builder 6.0。Borland C+Builder 是Borland公司98年推出的全新32位Windows开发工具。不仅继承了Delphi使用简便,功能强大,效率高等特点,而且它还结合C+语言所有优点。C+Builder相较VC+有其优势所在,比如:通常我们利用Visual C+开发一套软体时,设计GUI所花的时间几乎占掉程式开发周期的三分之一甚至到二分之一以上,而设计和界面无关的核心程式通常只占了不到二分之一左右至三分之二的时间,但是使用C+ Builder则可以大幅简化这个问题。C+ Builder的VCL提供大量的各式各样GUI软体元件,让我们可以将大部分的心力放在核心程式码的设计上,而不必跟Windows系统的讯息 、界面去搏斗。同时C+Builder还有强大的第三方控件支持,大大地提高了编程效率。2.3 数据库平台数据库平台采用的是SQL Server2000。SQL Server2000是为创建可伸缩电子商务、在线商务和数据仓储解决方案而设计的关系型数据库管理与分析系统。随着SQLServer 7.0联机分析处理(OLAP)服务的引入,SQL Server已成为颇受众多客户关系管理(CRM)应用程序、商务智能(BI)应用程序、企业资源计划ERP)应用程序及其它在线商务应用程序厂商和客户所青睐的数据库产品,而这则主要应归功于该产品在对称多处理(SMP)硬件方面所具有的可伸缩性和较低的数据库维护需求。2.4 开发语言本系统采用C+作为主要的开发语言,这主要是由于C+具有以下一些特点:1、性能高C+性能良好,因为它被编译为机器代码。对于VBScript和Java等语言,代码在运行时由程序解释,而且每次运行程序时都要将代码转换为机器码,这样做效率比较低,因为C+是编译语言,而且非常自然,比VB更接近机器代码,所以由C+编译器产生的代码一定比VB的编译代码效率更高。2、错误处理C+中有“异常处理”,所以错误处理比较好。3、最小的依赖性C+是一种编译语言,即C+代码在执行之前已转换为机器码。只要此代码不依赖于外部的动态链接库(DLL),C+就可以在不需要安装额外程序的情况下移动到运行同样操作系统的其他机器和微处理器上,而移动Java程序时需要先安装Java运行期库。4、利用现有的代码由于C和C+已经存在许多年了,现在有许多可利用的代码,你的服务器组件可以使用现有的C/C+代码或库。5、最大化COM特征在C+中,几乎可以使用所有的COM特征。2.5 版本管理器Microsoft Visual SourceSafe6.0VSS6.0是一种版本控制其,它是Microsoft Visual Studio6.0这个开发产品家族的一员。在本系统的编码过程中,我们使用它来控制源代码版本。下面简单介绍VSS的工作原理。VSS有效地帮助项目开发组的负责人对项目程序进行管理,将所有的项目源文件(包括各种文件类型)以特有的方式存入数据库。开发组的成员不能对该数据库中的文件进行直接的修改,而是由该版本管理器将该项目的源程序或是子项目的源程序拷贝到各个成员自己的工作目录下进行调试和修改,然后将修改后的项目文件作Checkin提交给VSS,由它进行综合更新。VSS也支持多个项目之间文件的快速高效的共享。当某个成员向VSS中添加文件时,该文件将会被备份到数据库中,以便所有的成员都能共享该文件。而且每个成员对所有的项目文件所作的修改都将被记录到数据库中,从而使得修改的恢复和撤销在任何时刻,任何位置都成为可能。小组的成员可能得到该项目的最新版本,对它进行修改,并保存一个新的版本。第三章 系统的总体设计3.1 设计思想系统采用C/S结构设计,其逻辑示意图如图 3-1 所示。图3-1 电子地图系统逻辑示意图由图 3-1 可知,系统的设计分成五层,它们是:硬件层、控制层、服务器层、数据库层和客户端层。首先工程施工员连接好硬件,测试硬件的可用性。硬件在连接装备完成后开始正常工作,控制层在硬件工作时实时检测硬件的相关属性,并将操作属性及动作参数返回给服务器,服务器将数据统一记录进相应的数据表中。当客户端要对设备操作或管理时则通过命令连接服务器,获取服务器中硬件的相关数据,初始化客户端,普通客户可以通过服务器访问到硬件的相关参数,高级客户(一般为管理员)还可以通过访问服务器修改数据库中相应的数据,控制层实时检测服务器中相关的数据并对硬件下达命令以完成相关的操作。其中控制层及客户端层要通过程序编码实现。3.2 系统组成系统分为主地图模块和树形图模块,虽然这两个模块都是对这个地图平台的直观表示,但彼此却是相对独立的。主地图模块是以级联的形式表示,它的优点是当前地图上的对象易操作、直观,用户从视觉上可以获取更多该地图的信息。但是相对的却无法知道其它地图的基本信息,要找到一个指定的地图或设备也比较难。而在树形图中则刚好相反,树形图能帮助用户很方便的浏览和查找地图或设备,对地图与地图之间、地图与设备之间的层次关系一目了然,但是从树形图中用户能知道某一个对象的信息却很少。系统结合了这两种宏观和微观的表现方式,并通过管理者角色把相互独立的模块关联在一起,主要表现为:在主地图模块中进入某个地图则在树形图中该地图相应的节点会被设为选中状态;在主地图中添加了一个新对象后,这个新对象在树形图中也会被标识为选中状态;在主地图中删除一个对象后,在树形图中相应的节点也要被删除;在树形图中双击一个地图时,就会在主地图中打开该地图;在树形图中删除一个节点时,在主地图中相应的对象也要被销毁。这样的结合使得系统更具实用性。主地图模块的主要功能有:初始化主地图、进入子地图、打开设备、添加子地图、添加设备、删除地图、删除设备、修改地图、修改设备和返回上层地图等。树形图模块的主要功能有:初始化树形图、添加节点和删除节点等。在划分完模块后,对数据库进行整体设计,数据库的设计不仅要考虑数据的完整性,还要考虑到表与表之间的关联以及创建表对编码的影响等。在项目开发中还必须考虑到权限设计。对用户的管理只有超级管理员才能操作,对地图或设备的管理操作只有超级管理员和管理员能操作,而普通用户只拥有地图的浏览和设备的连接权限。3.3 系统流程图下面将以管理者的角色给出电子地图的流程图,因为在我们的电子地图中最大的特色就在于管理者的功能扩展上,而且管理者几乎包含了整个系统的所有操作。系统流程图如图3-2所示。图3-2 电子地图系统流程图如图3-2中的所有有关修改或删除的操作都是管理者特有的操作,普通用户没有修改及删除的权限。有图中的工作流,我们就可以看到,几乎所有的操作都是在主地图上进行,每执行完一个操作都要返回到主地图。3.4 系统过程时序图从面向对象的角度来看,系统的功能是由一组对象通过相互发送消息来完成的。顺序图就是通过描述这样的对象和消息来描述系统的动态行为的。用例中在表示业务流程时,一般会用到时序图来表示。时序图多数用于描述业务流程,可以供不同种类的用户使用。用户可以从时序图中看到业务过程的细节;分析人员可以从时序图中看到处理流程;开发人员可以看到需要开发的对象和对这些对象的操作;质量保证工程师可以看到过程的细节,并根据这个过程开发测试案例。时序图能够明显的突出对象间交互的顺序,对项目的各方面人员都有用。如图3-3就是电子地图系统的时序图。图3-3 系统序列图在电子地图系统中,主要包括主地图和树形图结构。大部分的业务流程都是由用户提出操作交给系统,系统与数据库交互完成操作并返回操作结果给用户。3.5 系统数据库设计数据库的整体设计是通过各个子模块的数据库设计,再向数据库设计人员提交,设计人员再对各模块的数据需求汇总建立表结构实现的。在系统整体设计中,数据库主要涉及四张数据表,分别是:1、 地图表:存储地图的信息;2、 设备表:存储设备的信息;3、 子地图表:存储子地图的信息;4、 图片表:存储图片信息。表与表之间的关联:1、 地图表中存储了设备表及子地图表的父地图信息;2、 图片表中存储了地图背景图片信息、设备的表示图标信息和子地图的表示图标信息。 电子地图系统数据库ER图如图3-4所示。图3-4 电子地图E-R图在图3-4中我们会发现多了一张表VIDEO_CHANNEL_LIST,这是一张连接视频通道的表,也就是这张表中保存了连接摄像机所需的信息。同样的,如果以后我们要往系统中添加一个设备,首先添加这个设备类的信息表与设备表关联,然后创建一个继承设备类的新类,在新类中定义设备的操作,这样就可以很方便的添加新设备了。下面就以数据表的形式给出电子地图系统详细字段及字段说明。表3-1设备表:名称数据类型长度说明EM_IconIDint4设备流水号EM_DevcieNameVarchar50设备名称EM_ParentMapIDInt4父地图IDEM_PostionVarchar50图标在地图上的相对位置EM_PicIDVarchar50对应的图标图片流水号EM_DeviceStyleChar10设备类型表3-2主地图表:名称数据类型长度说明EM_MapIDInt4地图流水号EM_MapNameVarchar50图片名字EM_MapStyleChar10图片类型,M:地图;S:站点EM_PicIDVarchar50源图片流水号表3-3 源图片表:名称数据类型长度说明EM_PicIDVarchar50源图片流水号EM_PicOLEImage16存储图片流EM_ISMapBit1是否地图:1:图片,0:图标表3-4子地图表:名称数据类型长度说明EM_IconIDInt4子地图对象流水号EM_IconNameVarchar50子地图对象名称EM_ParentMapIDInt4父地图IDEM_SonMapIDInt4对应子地图IDEM_PositionVarchar50图标在地图上相对位置EM_PicIDVarchar50对应的图标流水号EM_SubStyleVarchar10图标对应的操作类型第四章 系统的详细设计4.1 系统面向对象设计4.1.1 类的设计电子地图系统把所有的设备及地图都封装成类,设备有摄像机类、灭火器类、点灯灯类、门禁、温湿感应器类、空调类和报警器类等,每个设备都有其相应的属性及操作,但这些设备类都表示某一类设备,它们都具有设备的属性及操作,所以它们都继承自设备类(TEMDevice)。电子地图系统中有一个抽象基类TEMObject,设备类(TEMDevice)、地图类(TEMap)和子地图类(TEMSupMap)都继承自该基类。在本系统中我们使用了工厂设计模式,创建一个工厂类(factory),由工厂类负责对地图对象及设备对象的创建。该系统用TTreeView类来实现地图系统所有地图及设备的树形直观图。所有电子地图系统的功能实现都封装在管理者类(TEMManager)中,由管理者要求工厂创建地图对象及设备对象,并要求树形图类创建地图对象及设备对象的树形直观图。然后管理者对创建的地图对象、设备对象及树形图进行实时管理。下面简要介绍系统的主要类。1、 抽象基类TEMObject类地图系统的基本对象类,该类是所有地图子对象类的接口,不能实例化。主要成员列表:- virtual TEMObject(); 析构函数,虚函数。- virtual void SetIcon(const int &XPos, const int &YPos ) = 0; 设置图标的属性,纯虚函数。- virtual void Operate(void) = 0; 对子对象的操作,纯虚函数。- virtual const char *GetName(void) = 0; 返回子对象名,纯虚函数- virtual int GetID(void) = 0; 返回子对象 ID 号,纯虚函数。- virtual const char *GetTypeName() = 0; 返回子对象类型,纯虚函数。- virtual const TImage *GetIcon(void) = 0; 返回子对象图标和 Image 对象,纯虚函数。- virtual void _fastcall click(TObject *Sender) ; 点击图标的事件处理器。2、 子地图类TEMSubMap地图对象的类,继承class TemObject,它的实例只是当前地图的一个子对象,当点击该对象的图标时将进入到与该对象对应的级地图。主要成员变量列表:(1) int FSubmapID; 接收地图对象初始化的SubMapID; (2) AnsiString FName; 接收地图对象初始化的Name; (3) TemIcon * m_Icon; 接收地图对象初始化的Icon;主要成员函数列表: (1) InitSubmap()功能说明:实例化地图对象,工厂类要创建地图对象时就把创建任务交给子地图类来完成; (2) SetMenu()功能说明:设置鼠标右击地图对象时弹出菜单;(3) MenuItemOpenClick()MenuItemModifyClick()MenuItemMoveClick()MenuItemDeleteClick()功能说明:菜单项单击事件;(4) IconMouseUp()IconRigthButtonDown()IconRigthButtonUp()功能说明:地图对象显示的图标的鼠标点击事件;(5) SetIcon()功能说明:设置地图对象显示的图标;由子地图类的这些主要成员我们可以看到,在子地图类中封装了对地图上的子地图对象的相关操作,每个子地图对象在被创建并保存到基类数组TEMObject中时,就已经定义了这些子地图对象及图标的相应响应事件。3、 设备类TEMDevice设备对象的类,继承class TemObject,它的实例只是当前地图的一个子对象,当点击该对象的图标时将打开相应的设备。主要成员变量列表:(1) int FDeviceID 接收设备初始化的DeviceID(2) AnsiString FName 接收设备初始化的Name(3) TemIcon *m_Icon 接收设备初始化的Icon主要成员函数列表:(1) InitDevice()功能说明:初始化设备类的对象;(2) SetIcon()功能说明:设置设备对象显示的图标;(3) MenuItemOpenClick()MenuItemModifyClick()MenuItemMoveClick()MenuItemDeleteClick()功能说明:菜单项单击事件;(4) IconMouseUp()IconRigthButtonDown()IconRigthButtonUp()功能说明:地图对象显示的图标的鼠标点击事件;(5) SetMenu()功能说明:设置鼠标右击设备对象时弹出菜单;与子地图类一样,设备类在被创建的同时定义了该对象的鼠标相应事件。4、 摄像机类TEMCamera设备分为很多种,如:摄像机、灭火器、空调、门禁等,这里我们仅以摄像机类为代表。摄像机类是一种设备,所以它继承设备类,并重载了设备类的虚函数Operate()函数来完成摄像机类所特有的操作。主要成员函数列表:(1) SetIcon()功能说明:设置摄像机对象显示的图标;(2) Operate()功能说明:操作摄像机的 Action 接口;5、 工厂类TEMFactory工厂类负责生产子地图对象和设备对象。主要成员函数列表:(1) CreateSub()功能说明:创建地图子对象,调用此方法,工厂将根据对象的类型, 自动完成对象的创建;6、 树形图类TTreeView树形图类主要负责创建及管理系统地图的树形直观图。主要成员函数列表:(1) InitTreeView()功能说明:初始化树形直观图;(2) AddNode()功能说明:在树形图中添加节点;(3) DeleteNode()功能说明:删除树形图中指定的节点。7、 管理者类TEMManager管理者类负责封装系统的功能实现。主要成员变量列表:(1) int m_Count; 主地图子对象个数 (2) AnsiString m_sMapID; 当前主地图流水号主要成员函数列表:(1) InitMap()功能说明:初始化主地图;(2) EnterSubMap()功能说明:进入子地图;(3) LoadVideo()功能说明:打开摄像机;(4) DeleteMap()功能说明:释放当前主地图的所有子对象;(5) AddSubMap()功能说明:添加子地图;(6) AddDevice()功能说明:添加设备(7) ReBack()功能说明:返回上层地图;(8) SetBG()功能说明:设置背景;(9) DestroyDV()功能说明:删除设备;(10)DestroyMap()功能说明:删除地图(11) ModifyDV()功能说明:修改设备;(12)ModifyMap()功能说明:修改地图;4.1.2 类图类图主要用于描述系统中各种类及其对象之间的静态结构,在与数据库设计和代码生成联系方面,比状态图和时序图的意义还要实用。尤其在数据库领域中,类与关系表是相对应的。电子地图的类图如图4-1所示。图4-1电子地图系统关系图4.2 用例图用例图(UseC ased iagram)在各种开发活动中被广泛使用,它在UML中是非常独特的图形元素,它描述了一个系统的如何使用。用例图告诉大家谁是相关的用户,他们希望系统提供什么服务,以及他们需要为系统提供的服务。用例图是面向对象软件工程(OOSE)的关键元素,面向对象的方法在本项目中广泛地被应用,尤其是在描述子系统中是切实可行的。电子地图系统的用例图如图4-2所示。图4-2 系统用例图4.3 数据库操作实现在电子地图系统中,大部分的功能实现都需要数据库操作,系统对数据库的访问十分频繁,所以了解数据库的实现对应设计本系统是有必要的。在C+Builder中提供了很多种访问数据库的方法,不管是连接数据库、访问数据库还是管理数据库都非常的简单、方便,在这么多的方法种有些人可能会觉得很乱,其实只要明白了其中的关系就什么问题都解决了。在C+Builder中,首先通过TADOConnection等连接数据库控件连接数据库,在TADOConnection中可以设定数据库连接字符串,然后由TADODataSet、TADOQuery、TADOTable、TADOCommand等数据库容器控件通过TADOConnection连接数据库,然后设置其所关联的表。这些数据库容器控件其实就是指向数据表的指针,所以这些控件都可以对数据表直接操作,其差别只在于一些特殊的用法上,对于一般的用途,这些控件都能满足用户的要求。C+Builder还提供了一系列数据库视图的控件(DBGrid),只要给这些控件指定数据源(DataSource)就能显示相应数据表的内容,而DataSource通过连接数据库容器控件以指定源数据表。C+Builder给我们提供了很多的方法访问数据库,以致有些人会难以取舍,其实在使用中只要知道其中的一两种使用方法就已经够用了,比如我只要知道了显示表内容的DBGrid连接数据源DataSource、DataSource连接可操作数据表的TADODataSet、TADODataSet连接数据库连接的TADOConnection、TADOConnection连接数据库这一条路线的用法就够了。其它用法用起来也差不多,只要掌握了一种,其它的就很简单了。在电子地图系统中我们创建了一个连接数据库的类供系统所有模块数据库连接使用,避免了数据库连接的重复操作。在本系统的编码过程中对数据表的操作主要应用TADOQuery和TADODataSet等控件。在本系统的使用中,这两个控件的功能是一样的,只有用法上的差别,下面以TADOQuery控件为例简要介绍C+Builder连接数据表及操作数据表的基本操作:先在窗口中添加一个TADOQuery控件pADOQuery,设置它的Connection属性及SQL(用SQL语句设定所要访问的数据集)属性,设置Active属性为true,这样就连接上表了,接下来就是对表的操作了:用TADOQuery控件执行SQL语句:pADOQuery-SQL-Clear();pADOQuery-SQL-Add(SQL语句);pADOQuery-ExecSQL();pADOQuery-Active = true;pADOQuery-First();设定编辑状态:pADOQuery-Edit(); 读取或修改数据表当前记录的某个字段值:pADOQuery-FieldByName(字段名)-AsString;添加一条记录:pADOQuery-Append();提交修改数据表:pADOQuery-Post();4.4 功能实现在管理者类中我们封装了电子地图系统的功能实现,由于篇幅有限,不能对各个功能模块实现办法详细说明,下面只对一些基本功能及主要功能进行阐述。4.4.1 权限判断在系统的全局变量文件中定义了一个枚举类型的全局变量g_Security,如果g_Security等于EM_SUPER即当前用户为超级管理员,如果g_Security等于EM_ADMINISTRATOR则当前用户为管理员,如果g_Security等于EM_USER则当前用户为普通用户。只有超级管理员和管理员能对地图执行修改操作,普通用户只能浏览访问电子地图不能对其进行修改操作。而只有超级管理员能管理用户,其它用户不可以。4.4.2 主地图的操作主地图指的是当前窗口显示的地图,对主地图的操作主要分为三种:(1) 主地图的初始化电子地图系统一开始运行就会默认主地图表中的第一条记录为主地图,因为地图的添加总是从上往下添加,没有父地图的子地图是没有意义的。如果主地图表中没有任何地图记录,则系统会自动添加一条记录作为默认主地图,并取名为“根地图”,表示最上层地图,用户如果进入系统后可重新设置地图背景以达到改变根地图的目的。如果用户是从当前地图中点击某个子地图或在树形图中双击某个子地图节点而进入新主地图的初始化操作则需要向管理者类发送新地图的ID号码,管理者类根据这个ID号码读取新主地图。主地图的初始化首先从主地图表中读取主地图背景图片以设置窗口的背景,然后管理者类从子地图表和设备表中读取主地图的所有子地图和设备的信息,并将这些信息发送给工厂类要求工厂类创建这些子地图和设备对象,创建的子地图对象和设备对象保存在基类数组TEMObject中,所有这些子地图对象和设备对象都是以图标的形式显示在主地图中。主地图的初始化窗口如图4-3所示。图 4-3 初始化窗口(2) 主地图的刷新释放所有子地图对象和设备对象,即释放基类数组TEMObject中的元素,重新执行一次主地图的初始化操作。(3) 返回上一层管理者类首先获取了当前主地图的父地图ID号码,然后释放所有子地图对象和设备对象,以父地图ID号码重新初始化主地图。4.4.3 图片管理图片管理即管理图片表。在图片表中保存了所有地图的背景图片、子地图的显示图标和设备的显示图标等系统需要的图片。图片管理主窗口如图4-4所示。图 4-4 管理图片窗口对图片表的管理主要有三种操作:(1) 添加图片添加图片即从本地磁盘中导入图片添加到图片表中,图片在表中以流的形式储存。在本系统中允许用户添加JPEG和BMP两种格式的图片,在图片存入表之前,先统一这两种格式的图片为BMP格式,如果图片为子地图或设备显示的图标则还需统一图片大小,避免图标在地图上的显示大小不一。(2) 删除图片删除图片操作将删除用户选中的图片,但是如果所要删的图片是地图的背景、子地图显示的图标或设备显示的图标图片,则会提示出错,因为这张图片正被使用中,如果将它删除可能造成程序无法正常运行。(3) 清理图片用户可能需要把系统不需要的图片从图片表中移除,那么只要执行该操作就可以轻松做到了。4.4.4 树形图的操作树形图是对整个监控平台的最直观表示,在树形图中父节点则表示父地图,子节点则表示父节点中的子地图或设备了,在本系统中我们还用图标来标识地图,每层地图有一个图片标识,而设备没有图标标识,也就是说没有图标标识的都是设备。这样,在树形图中就可以很容易地分清哪个是父地图、哪个是子地图、哪个是设备了。对树形图的操作主要有三种:(1) 树形图的初始化树形图的初始化操作是跟主地图的初始化操作同步进行的,不同的是树形图初始化的总是整个平台中的对象。树形图的初始化主要是读取子地图表中父地图与子地图的关联以及设备表中父地图与设备的关联来添加节点的。在添加的节点中保存了设备或地图的ID号码和类型标识等信息。树形图如图4-5所示。图4-5 树形图(2) 添加节点添加节点是主地图中添加子地图或设备的相应操作,管理者类告诉树形图类新节点的ID号码、新节点的父地图的ID号码以及新节点的类型,树行图类根据父地图ID号码找到要添加节点的位置添加新节点,保存该节点的ID号码和类型标识,并设置它为被选择状态。添加的节点放在该节点所在层的最后面。(3) 删除节点删除选中的节点,如果选中的是设备则删除该节点并把该节点的ID号码发送给管理者类,由管理者类执行该设备删除的相关操作,如果选中的是地图则将该节点以及该节点的所以子节点一起删除,并把该节点的ID号码发送给管理者类,由管理者类执行该地图及其所有子地图和设备的删除操作。如果删掉的是当前主窗口则读取上一级的地图的为主窗口。4.4.5 子地图的操作对子地图的操作主要有三种:(1) 添加子地图管理员鼠标右击主窗口并点击“添加地图”选项就会进入添加子地图操作,当用户输入子地图信息完毕并确定后,管理者类将子地图信息写入表中,并要求工厂类创建新添加的地图对象,管理者类把该地图对象保存在基类数组TEMObject中,同时将新地图的ID号码、主地图的ID号码发送给树形图类,要求树形图类添加该地图对应的新节点。(2) 删除子地图管理员鼠标右击主窗口中要删除的子地图图标并点击“删除地图”选项就会进入删除子地图操作,在用户确认要删除该子地图后,管理者类会从数据库中把该子地图及其所有子地图和设备的记录删除,并释放基类数组TEMObject中的该子地图对象,同时还把该子地图的ID号码发送给树形图类要求树形图类完成对该子地图的相应节点的删除操作。(3) 进入子地图用户鼠标右击主窗口中要进入的子地图图标并点击“进入地图”选项或单击该子地图图标就会进入进入子地图操作,管理者类在接受到该消息后释放基类数组TEMObject中的所以元素,获取该子地图的ID号码,用这个ID号码初始化新的主地图。4.4.6 设备的操作设备的操作主要有三种:(1) 添加设备管理员鼠标右击主窗口并点击“添加设备”选项就会进入添加设备操作,当用户输入设备信息完毕并确定后,管理者类将设备信息写入表中,并要求工厂类创建新添加的设备对象,管理者类把该设备对象保存在基类数组TEMObject中,同时将新设备的ID号码、主地图的ID号码发送给树形图类,要求树形图类添加该设备对应的新节点。 (2) 删除设备管理员鼠标右击主窗口中要删除的设备图标并点击“删除设备”选项就会进入删除设备操作,在用户确认要删除该设备后,管理者类会从数据库中把该设备的记录删除,并释放基类数组TEMObject中的该设备对象,同时还把该设备的ID号码发送给树形图类要求树形图类完成对该设备的相应节点的删除操作。(3) 打开设备用户鼠标右击主窗口中要进入的设备图标并点击“进入设备”选项或单击该设备图标就会进入进入设备操作,管理者类在接受到该消息后执行打开相应设备的操作。视频设备的显示窗口如图4-6所示。图4-6视频窗口4.4.7 其它操作(1) 设置背景图片管理员鼠标右击主窗口并点击“设置背景”选项就会进入设置背景操作,在管理员选择好要设置的图片并确认后,管理者类会修改主地图表中主地图相应的记录的图片ID号码,并重载主地图的背景。(2) 移动图标管理员鼠标右击主窗口中要移动的图标并点击“移动”选项后,管理者类设置该图标为可移动状态,管理员可以用鼠标拖动该图标到某个位置并放开鼠标以确认对图标的移动,当鼠标放开后,管理者类设置该图标为不可移动状态,并修改图标相应的记录的坐标为移动后的坐标。4.5 系统运行测试软件测试是软件工程中的一个重要阶段,它的任务是确认和验证软件分析、设计、实现过程中的逻辑正确性以及发现软件产品中存在的问题,并通过测试不断提供和完善软件产品的质量。测试是为了保证产品的正确性和稳定性,测试发现有错误或异常,则要调试以改正。在本系统中我们采用了单元测试和集成测试相结合步骤:(1) 单元测试:在单元测试中分为程序员和测试员职责,程序员需对自己编码的单元块进行白盒测试,必须做到每条代码都跟踪过去,能够得到预期的效果。对于测试员则对功能点进行全方位测试,特别是对一些特殊情况和边界值进行多次的测试,发现了一些编码错误和程序设计上的逻辑错误则及时记录并交予相关的程序员进行调试。(2) 集成测试:把经过单元测试的模块按软件结构组合在一起作为一个系统或子系统来综合测试。模块相互间的协调和通信是这个测试过程中的主要测试内容,因此,这个步骤着重测试模块之间的接口和系统总体功能的执行行为。第五章 结论厦门凯迪空间电子有限公司主要致力于安防监控领域的研究与开发,在以前公司主要以工程开发为主,近年来感到安防业对软件产品的迫切需求,于是决定自主开发安防软件。监控平台就是在这种情形下诞生。在监控平台的开发前期,我们借鉴华为科技、海康威视数字技术有限公司等公司的产品针对一些较小的项目做出了监控平台的雏形。这个原型基本能够实现所有的功能,在工程中能够正常工作,获得的不错的成功,但是它的针对性却成了它的瓶颈,于是公司在觉得时机已经成熟的情况下决定开发出一个通用性的集成监控平台。在这个集成监控平台中分为很多的子系统,目前主要着力于电子地图子系统及视频播放子系统的开发。我也有幸成为开发电子地图子系统的一员。在这个集成监控平台中我们不但要提取原型的功能实现并改进其中发现的问题,更重要的是我们要重新设计系统,把我们的系统做成能够应用于大部分甚至所有的安防监控工程中。这就要求我们全面地考虑到系统的

温馨提示

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

评论

0/150

提交评论