下载

5下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 宋丁丁毕业设计说明书

宋丁丁毕业设计说明书.doc

宋丁丁毕业设计说明书

飞行者
2011-04-16 0人阅读 举报 0 0 暂无简介

简介:本文档为《宋丁丁毕业设计说明书doc》,可适用于IT/计算机领域

山东建筑大学本科毕业设计说明书题目:基于SuperMap的交通救援GPS实时定位数据采集技术研究院(部):土木工程学院专业:地理信息系统班级:地理姓名:宋丁丁学号:指导教师:蔡菲完成日期:年月日目录TOCo""hzu摘要IIABSTRACTIV本文研究的背景和意义背景意义地理信息系统开发方式的种类和比较全球定位系统概述全球定位系统全球定位系统的组成及特点全球定位系统实时动态技术介绍开发工具的选择二次开发平台SuperMapR二次开发语言VisualC#NET数据库MicrosoftSQLServer软件体系结构选择通信协议的选择Socket通信技术Socket简介Socket的分类套接字的常用属性用WindowsSocket实现网络进程设计中Socket通信的实现开发环境运行环境数据传输的设计数据传输结构传输GPS数据字符串结构通信GPS监测终端GPS数据获取中心数据库更新数据管理GPS数据解析及存储GPS数据在地图中显示结论谢辞参考文献摘要交通救援系统是为提高政府和公共场所管理部门应对突发事故、事件和灾害的能力而开发的GIS应用系统。GPS可以为交通救援系统提供监测目标的实时定位数据在系统的运行过程中采取何种技术传输与存储GPS数据对交通救援系统使用者能否及时做出正确决策具有非常大的影响基于此本文重点进行了交通救援系统GPS实时定位数据采集技术的研究。本文首先介绍了地理信息系统(GIS)和全球定位系统(GPS)的基本原理然后详细介绍了Socket通信技术并对数据库技术和开发工具VisualC#NET做了简要的说明。交通救援系统的GPS实时定位数据获取设计是基于SuperMap二次开发平台实现了对GPS实时定位数据的采集、传输、手动或自动存储以及在地图上显示的功能。最后提出来一种可通过网络远程获取GPS数据的方法可进一步解决交通救援系统中GPS数据采集的问题。关键词:地理信息系统全球定位系统数据更新SuperMapSocket通信技术ResearchontheTechnologyofAcquiringGPSRealtimeDatainEmergencyRescueCommandforTransportationABSTRACTEmergencyrescuecommandfortransportationsystemisaGISapplicationsystemdesignedforenhancingtheabilityofgovernmentandmanagementdepartmentsofpublicplacestodealwithunexpectedincidents,eventsanddisastersGPScanprovidetherealtimepositioninginformationoffocusedobjectsfortheemergencyrescuecommandfortransportationsystemDuringtheoperatingofthissystem,thetechnologiesofdatatransmissionandstoragehavegreatinfluenceonwhethertheusermakestherightdecisionaccordingtothedataacquiredAccordingtotheabove,thisarticlefocusesontheresearchofacquiringGPSrealtimepositioningdatainemergencyrescuecommandfortransportationsystemThisarticlefirstintroducesthebasicprinciplesofGeographicalInformationSystem(GIS)andGlobalPositioningSystem(GPS),thentellsthedetailsofthesocketcommunicationstechnology,andbrieflyintroducesdatabasetechnologyandVisualC#NETThedynamicdataacquisitionmoduleinemergencyrescuecommandfortransportationsystemisbasedonSuperMapseconddevelopmentplatformThemodulehassuchfunctions,thecollection,transmission,manipulatingordynamicstorageofGPSrealtimepositioningdata,andeventuallydisplayingthedatainthemapFinally,anewmethodofacquiringGPSdatatoupdatedatabaseviathenetworkismentioned,whichcanaddressthedynamicupdatingproblemsoftheemergencyrescuecommandfortransportationsystemKeywords:GeographicalInformationSystemGlobalPositioningSystemDataUpdateSuperMapSocketCommunicationsTechnology前言地理信息系统(GIS)作为一门交叉学科其技术体系已渗透到各行各业并建立起大量的专业应用系统。这些系统功能主要集中于系统采集、管理与统计分析而这些都是基于数据的没有现势性好的数据再谈地理信息系统的功能是毫无意义的即使它功能再强大分析再准确有时甚至会因为数据的更新不及时而造成决策失误。良好的交通救援系统对于实时数据的更新要求更为严格对这些数据的分析结果最终关系着维护社会的稳定和保卫人民群众的生命和财产安全。另外数据更新直接决定了一个系统的成败和生命周期。本文研究的背景和意义背景随着我国经济的迅速发展信息化建设迅速展开并发展起来人们对社会服务行业和部门的完善性、保障性提出了更高的要求人们希望能在家中就能获得自己想要的信息希望信息更加形象、直观希望有一种智能分析系统辅助人们进行决策节省时间提高效率。地理信息系统(GIS)的引入和发展成为解决这一问题行之有效的工具和手段各种应用地理信息系统相继建立起来。但由于这些行业的数据往往具有信息来源广、种类多、变化快、信息量大、时空相关性强的特点数据的实时获取和动态更新成为影响系统性能的关键一环。全球定位系统(GPS)具有全球性、全天候、连续的精密维导航与定位能力而且具有良好的抗干扰性和保密性。近年来GPS定位技术在我国迅速发展广泛的应用到了经济建设和科学技术的各个领域。利用GPS获得实时定位数据可以作为GIS的数据来源。GIS与GPS集成已在定位(旅游、探险)、测量(土地管理、城市规划)、监控导航(车辆船只的动态监控)等方面有了很好的应用。空间信息系统的建设已由以技术为中心向以数据资源为中心的方向转变。其中如何管理和维护基础空间数据维护空间数据的现势性和有效性是空间信息系统数据体系需要解决的重要问题之一。在这种背景下数据动态获取设计的研究迅速展开。意义数据是地理信息系统(GIS)的血液是其他一切工作的基础数据动态获取更新是监测部门的一项必备技术其目的是实现数据库的实时更新把握区域最新的整体状况辅助用户做出决策。GIS系统中数据除了具有时间性和动态性的特点外还往往具有明显的空间分布特点。因此进行数据动态获取必须采用强有力的计算机信息技术建立基于整个区域的监测网络。该设计具有很大的现实意义对于保持应用地理信息系统的生命力具有重要作用。特别是在灾害监测预报领域由于各个监测因子(致灾因子)变化经常且无规律特别是全球气候变化背景下的今天各种不确定因素使得灾害预报工作开展十分困难其对于快速做出反应的要求越来越高高效、及时、准确的数据获取手段是其重要的保障。这就要求对致灾因子进行实时监测数据动态更新只有这样才能提高预报的准确及时性为人们的生产生活提供服务。同时该设计的设计不仅对于交通救援系统有很大意义而且对于整个地理信息系统(GIS)在中国的发展和应用具有一定的促进作用对国内其他相关的研究具有一定的参考价值。地理信息系统开发方式的种类和比较GIS根据其内容可分为两大基本类型:一是应用型GIS以某一专业、领域或工作为主要内容包括专题地理信息系统和区域综合地理信息系统二是工具型GIS也就是GIS工具软件包如MapInfo、ArcGIS等具有空间数据输入、存储、处理、分析和输出等GIS基本功能。一般而言应用型GIS开发有三种主要的实现方式:⑴独立开发独立开发是指不依赖于任何GIS工具软件从空间数据的采集、编辑到数据的处理分析及结果输出所有的算法都由开发者独立设计然后选用某种程序设计语言如VisualC、DeIPhi等在一定的操作系统平台上编程实现。⑵单纯二次开发单纯二次开发是指完全借助GIS工具软件提供的开发语言进行应用系统开发。GIS工具软件大多提供了可供用户进行二次开发的宏语言如ESRI的ArcView提供了Avenue语言MapInfoProfessional提供了MapBasic语言等。⑶集成式二次开发集成二次开发是指利用专业的GIS工具软件如ArcView、MapInfo等实现GIS的基本功能以通用软件开发工具如DeIPhi、VisualC、VisualBasic、PowerBuilder等为开发工具进行二者的集成开发。由于独立开发难度太大所需时间长单纯二次开发受GIS工具提供的编程语言的限制因此结合GIS工具软件与当今可视化开发语言的集成二次开发方式就成为GIS应用开发的主流。它的优点是既可以充分利用GIS工具软件对空间数据库的管理、分析功能又可以利用其他可视化开发语言具有的高效、方便等编程优点集二者之所长不仅能大大提高应用系统的开发效率而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果更强大的数据库功能并且具有可靠性好、易于移植、便于维护等特点。全球定位系统概述全球定位系统全球定位系统(GlobalPositioningSystemGPS)是美国国防部主要为满足军事部门对海上、陆地和空中设施进行高精度导航和定位的要求而建立的。GPS作为新一代卫星导航与定位系统不仅具有全球性、全天候、连续的精密维导航与定位能力而且具有良好的抗干扰性和保密性。目前GPS精密定位技术已经广泛地渗透到了经济建设和科学技术的许多领域。它在大地测量学及其相关学科领域如地球动力学、海洋大地测量学、天文学、地球物理勘探、资源勘查、航空与卫星遥感、工程测量及工程变形监测、运动目标的测速以及精密时间传递等方面的广泛应用充分地显示了这一卫星定位技术的高精度与高效益。全球定位系统的组成及特点全球定位系统(GPS)主要有三大组成部分即空间星座部分、地面监控部分和用户设备部分。GPS空间星座部分由颗卫星组成其中包括颗备用卫星。卫星分布在个轨道面内每个轨道面上分布有颗卫星。GPS地面监控部分目前主要由分布在全球的个地面站所组成其中包括卫星监测站、主控站和信息注入站。GPS用户设备部分主要是GPS接收机、车载GPS等设备用户设备的主要任务是接收GPS卫星发射的无线电信号以获取必要的定位信息及观测量并经数据处理而完成定位工作。目前美国的GPS、俄罗斯的GLONASS与欧盟的“伽利略”导航定位系统已构成独立的三大全球卫星定位系统。GPS相对于其他导航系统的特点有:⑴全球地面连续覆盖。由于GPS卫星的数目较多且分布合理所以地球上任何地点均可连续的同步观测到至少颗卫星。从而保障了全球、全天候连续地维定位⑵功能多精度高。GPS可为各类用户连续地提供动态目标的维位置、维速度和时间信息。⑶实时定位。利用GPS定位系统导航可以实时地确定运动目标的维位置和速度由此既可保障运动载体沿预定航线的运行也可实时地监视和修正航行路线以及选择最佳的航线。⑷应用广泛。随着GPS定位技术的发展其应用的领域在不断拓宽。目前在导航方面它不仅已广泛地应用于海上、空中和陆地运动目标的导航而且在运动目标的监控与管理以及运动目标的报警与救援等方面也已获得了成功的应用在测量方面这一定位技术在大地测量工程测量工程与地壳变形监测、地籍测量、航空摄影测量和海洋测绘等各个领域的应用已甚为普遍。全球定位系统实时动态技术介绍实时动态(RealTimeKinematicRTK)测量系统是GPS测量技术与数据传输技术相结合而构成的组合系统。它是GPS测量技术发展中的一个新的突破RTK测量技术是以载波相位观测量为根据的实时差分GPS测量技术。实时动态测量的基本思想是在GPS基准站上安置一台GPS接收机对所有可见GPS卫星进行连续地观测并将其观测数据通过无线电传输设备实时地发送给用户观测站。在用户观测站上GPS接收机在接收GPS卫星信号的同时通过无线电接收设备接收基准站传输的观测数据然后根据相对定位的原理实时地计算并显示用户站的维坐标及其经度。系统方案选择开发工具的选择二次开发平台SuperMapR目前国外主流的GIS组件产品有全球最大的GIS厂商ESRI推出的MapObjects、ArcObjects、ArcEngine桌面GIS厂商MapInfo公司推出的MapX。国内有北京超图软件有限公司推出的SuperMapObjects武汉中地信息工程有限公司的MapGIS组件、武汉吉奥信息工程技术有限公司的GeoMap等。本系统采用的是基于北京超图软件有限公司SuperMapR的二次开发。 超图软件是中国和亚洲领先的地理信息系统(GeographicInformationSystem,GIS)平台软件企业主要从事GIS基础平台和应用平台软件的研究、开发、推广和服务。超图软件自年成立以来始终坚持自主创新研发出具有自主知识产权的、面向专业应用的多种大型GIS基础平台软件和多种应用平台软件SuperMapGIS系列。该系列软件在高性能跨平台、海量空间数据管理和多重服务聚合等方面具有核心技术竞争优势先后获得年度“信息产业重大发明奖”、年度“国家科学技术进步”二等奖、年度“北京市科学技术奖”一等奖等项国家和省部级奖励还获得项“国家重点新产品”认定。SuperMapGIS系列软件已经广泛应用于数字城市、国土、水利、环保、海洋、测绘、农业、林业、应急、交通、通信、能源、市政管线、金融、通信、电力、自来水、石油石化等数十个行业在中国大陆和港、澳、台地区构建了数千个大型成功应用案例。 整个二次开发平台都是基于SuperMapR基础平台构建的由基础平台提供基础组件库二次开发平台提供不同开发平台每种平台提供不同的开发模式在二次开发平台之上构建的应用可以是独立的GIS应用也可以综合各种平台的应用而集成一个复杂的系统。由于SuperMap已经成为亚洲最大的GIS软件平台提供商有着广泛的应用背景目前国内很多应用地理信息系统均选用SuperMap作为平台所有本系统采用SuperMap作为二次开发平台。二次开发语言VisualC#NET传统GIS一般都提供一套独立的二次开发语言。这既是GIS基础软件开发者的负担同时也是用户学习上的负担且使用系统所提供的二次开发语言开发能力受到限制难以处理复杂问题。组件式GIS不需要专门的GIS二次开发语言只需实现GIS的基本功能函数按照ActiveX控件标准开发接口有利于减轻GIS软件开发者的负担而且增强了GIS软件的可扩展性。组件式GIS的用户不必掌握专门的GIS开发语言只需熟悉基于Windows平台的通用集成开发环境以及组件式GIS各个控件的属性、方法和事件就可以完成应用系统的开发和集成。组件式GIS控件可以跨语言使用目前可供选择的开发环境很多如VisualC、VisualBasic、VBNET、C#、Delphi等。其中C#是一种安全的、稳定的、简单的由C和C衍生出来的面向对象的编程语言它充分利用了NET框架的优点如严格的类型安全、版本控制及无用信息收集等可以说C#是开发NET框架应用程序最好的语言之一。它在继承C和C强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版不允许多重继承)。C#综合了VB简单的可视化操作和C的高运行效率以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为NET开发的首选语言。基于组件式开发的考虑本系统选择C#作为开发语言并选择VisualStudioNET作为开发环境。数据库MicrosoftSQLServerSQLServer是Microsoft公司推出的功能强大的关系型网络数据库管理系统是BackOffice和WindowsDNA(DistributedinternetApplication)架构下的服务器应用系统之一。SQLServer具有分布式数据库和数据仓库功能支持客户机服务器结构并能够进行分布式事务处理和联机分析处理。SQLServer具有可伸缩性可管理从小型至大型的各种规模的数据库。这使得它成为能适应任何规模组织需求的数据库管理系统。同时SQLServer具有强大的数据库管理功能它提供了丰富的管理工具以支持数据的安全性管理、完整性管理和作业管理。SQLServer还具有强大的网络功能,支持发布Web页面和接收电子邮件。SQLServer在数据库领域最重要的领先和创新包括以下几方面:⑴第一个能够缩放以适应从便携式移动计算到企业级应用的各种规模的数据库。尽管应用环境差别悬殊但是SQLServer使用的是同一个代码库因此从根本上保证了不同应用环境的数据库之间的兼容性⑵第一个支持自配置和自调整的数据库⑶第一个和联机分析处理(OnlineAnalyzeProcessOLAP)服务器集成的数据库⑷第一个与数据传送服务(DataTransferServiceDTS)继承的数据库⑸第一个提供多服务器管理以适应大量服务器应用的数据库⑹到目前为止最广泛地支持复制任意类型的数据库⑺与目前世界上装机量最大的服务器操作系统WindowsNT和MicrosoftBackOffice服务器家族的最佳集成⑻采用Microsoft的全局数据存取(UniversalDataAccess)策略实现了对大量信息资源的高性能存取。由于地理空间数据的特征目前主流的GIS软件多采用SQL作为数据库并提供了专门的管理组件和搜索引擎如ArcGIS的ArcSDE等考虑到设计的通用性决定采用SQL作为数据库。SQLServerExpressEdition是MSDE的下一个版本它是免费、易于使用、可嵌入的SQLServer轻型版本。可免费下载、重新发布、嵌入便于新的开发人员立即使用。SQLServerExpress包含强大的功能可以轻松地管理数据库。本文使用其中的SQLServerManagementStudioExpress来管理数据。软件体系结构选择当前软件系统流行的体系结构是客户机服务器(ClientServerCS)结构和浏览器服务器(BrowserServerBS)结构。⑴CS体系结构CS结构起源于年代是目前普遍采用的一种数据库开发和应用模式网络技术的发展和广泛应用为实现CS提供了技术保证和支持。它是一个开放的多平台协同处理的计算机应用模式能适应企业现代化的信息处理和信息服务的需要。客户机服务器模型如图所示。图客户机服务器模型CS结构的应用系统具有高性能、高效率、高可靠性、开放、易扩充、可伸缩等特点适应了当前信息处理的需求为开发企业级的信息系统提供了良好的环境。⑵BS体系结构BS结构是随着Internet技术的兴起对CS结构的一种变化或者改进的结构。在这种结构下用户界面完全通过WWW浏览器实现。BS结构主要是利用了不断成熟的WWW浏览器技术结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能并节约了开发成本是一种全新的软件系统构造技术。具有使用简单、易于维护、兼容性好、易于扩展、信息共享度高等特点。本文交通救援系统数据动态获取设计的设计目前采用CS的体系结构今后可扩展成CS加BS的复合结构以扩展设计的应用范围。通信协议的选择Internet在传输层上有两个主要协议TCP协议和UDP协议。TCP协议是面向连接的UDP是无连接协议两个协议间的差别也是基于该特征的下面从通信方式和报文格式两个方面介绍这两个协议间较重要的差别。⑴通信方式的区别TCP传输层协议实现的是端到端(peertopeer)通信在端主机上实现通信并且屏蔽层网络提供的服务质量的差别为应用程序提供稳定可靠的服务。TCP对上层提供面向连接可靠的通信服务。但TCP只支持一对一的通信用“三次握手”的方式建立连接通过发送方的序号和接收方的序号之和来确立一条连接。用户数据报协议UDP是无连接传输层协议提供应用程序之间传送数据报的基本机制在使用UDP协议进行通信时不需要使用连接虽然这样连接简便但数据传输的可靠性不能保证。另外UDP是基于数据报的所有有消息边界。而TCP则是基于流的所以没有消息边界有必要进行保护消息边界的处理。⑵报文格式的区别TCP协议的源端口和目的端口接收的报文格式都是位分别表示发送方和接收方的端口号。我们知道端口号和IP地址构成套接字(socket)地址的主要内容。源端和目的端的套接字合起来唯一地表示一条连接。TCP协议的序列号和确认号是位的无符号整数其中序列号表示数据部分第一个字节的序列号而确认号表示该数据报的接收者希望对方发送的下一个字节的序号。UDP报文称为一个用户数据报它分为两部分:头部和数据区。报文头部中包含有源端口和目的端口、报文长度以及UDP检验。考虑到TCP协议传输数据的可靠性所以本文交通救援GPS数据动态获取系统采用TCP协议作为网络通信协议。Socket通信技术Socket简介Socket是建立在传输层协议(主要是TCP和UDP)上的一种套接字规范。它定义两台计算机间进行通信的规范(也是一种编程规范)如果说两台计算机是利用一个“通道”进行通信那么这个“通道”的两端就是两个套接字。套接字屏蔽了底层通信软件和具体操作系统的差异使得任何两台安装了TCP协议软件和实现了套接字规范的计算机之间的通信成为可能。Socket最初是由加利福尼亚大学Berkeley学院为UNIX操作系统开发的网络通信接口随着UNIX操作系统的广泛使用套接字成为当前最流行的网络通信应用程序接口之一。BerkeleySocket只能用于UNIX操作系统它不能支持DOS操作系统和MicrosoftWindows环境。九十年代初由SunMicrosystems、JSBCorporation、FTPsoftware、Microdyne和Microsoft等几家公司共同参与制定了一套标准即WindowsSocket规范。他们试图使Windows下Socket程序设计标准化。在实际使用过程中发现了一些问题因此由MartinHall领导的WindowsSocket委员会于年推出版规范。WindowsSocket是MicrosoftWindows的网络程序设计接口它是从BerkeleySocket扩展而来的。WindowsSocket在继承了BerkeleySocket主要特征的基础上又对它进行了重要扩充。这些扩充主要是提供了一些异步函数并增加了符合Windows消息驱动特性的网络事件异步选择机制。这些扩充有利于应用程序开发者编制符合Windows编程模式的软件它使在Windows下开发高性能的网络程序成为可能。Socket的分类NET的Socket提供下列三种类型套接字:⑴流式套接字(STREAM)该类套接字提供了一个面向连接、可靠的、数据无差错、无重复的数据发送服务。而且发送的数据是按顺序接收的。所有利用该套接字进行传递的数据均被视为连续的字节流并且无长度限制。这对数据的稳定性、正确性和发送接收顺序要求严格的应用十分适用TCP协议使用该类接口。但其对线路的占用率相对提高。流式套接字的实现屡见不鲜如远程登录(TELNET)、文件传输协议(FTP)等均使用流式套接字。⑵数据报式套接字(DGRAM)数据报式套接字提供了面向无连接的服务它独立的数据包形式发送数据(数据包长度不能大于KB)不提供正确性检查也不保证各数据包的发送顺序因此可能出现数据的重发、丢失等现象并且接收顺序由具体路由决定。然而数据报的实现对网络线路占用率较低。NFS(网络文件系统)即是采用此类套接字在TCPIP协议族中UDP(UserDatagramProtocol)也使用该类接口。⑶原始套接字(RAW)原始套接字一般不会出现在高级网络接口的实现中因为它是直接针对协议的较低层(如IP、TCP、UDP等)直接访问的。常用于检验新的协议实现或访问现有服务中配置的新设备一般不提倡它的直接应用。应用程序一般仅在同一类的套接字间通讯。不过只要底层的通讯协议允许不同类型的套接字间也照样可以通讯。套接字的常用属性⑴Socket类常用属性下面将详细介绍和网络通信有关的Socket类中的一些属性。①Blocking属性它表示套接字是否处于阻塞的状态如果这个套接字当前处于阻塞状态并且调用了这个套接字里的一个需要花一定时间来执行的方法那么应用程序将阻塞直到请求的操作完成后才解除阻塞。如果希望应用程序在请求套接字的操作尚未完成的情况下也可以继续执行有必要将Blocking属性更改为false。②Connected属性这个属性可以反应出操作的连接状态Connected属性获取截止到最后的IO操作时Socket的连接状态。从取值的情况来看当它返回false时表明Socket要么从未连接要么已断开连接。③LocalEndPoint属性这个属性可以用来表述本机的终结点即IP地址与端口号的组合。④RemoteEndPoint属性如果使用面向连接的协议则RemoteEndPoint属性将获取包含Socket连接到的远程IP地址和端口号EndPoint。而如果当前使用的是无连接的协议则RemoteEndPoint包含将要和Socket通信的默认远程IP地址和端口号。RemoteEndPoint是在调用Accept或Connect之后设置。如果试图提前访问该属性那么RemoteEndPoint将引发SocketException。⑵Socket类常用方法①Socket(AddressFamilyaf,SocketTypest,ProtocolTypept)创建套接字并且返回新建套接字句柄st。对于客户端来说也是在本地创建套接字。②bind(IPEndPointiep)对于服务器方的程序来说建立的套接字必须要绑定到本地计算机的IP地址和端口号上。③listen(intbacklog)这个方法用于等待客户端发出连接的请求待其执行完则说明服务器方已经准备好接受来自客户端的连接。其中的backlog参数是指用户的连接数超过连接数的其他客户不得与服务器方进一步通信。④accept()它的功能是当有新客户进行连接时返回一个新的套接字句柄。⑤connect(IPEndPointiep)此方法是客户机独有的它负责把自己新创建的套接字与本地地址相绑定与bind()方法相对应。⑥Send()Receive()这两个方法在完成了客户端的连接后就可以通过它们进行数据传送了。用WindowsSocket实现网络进程不论何种套接字编程均采用客户机服务器方式先分别生成服务进程和客户进程在通信前必须创建各自的套接字以便建立连接然后对相应的套接字进行“读”、“写”操作实现信息的交换。⑴面向连接的套接字面向连接的套接字一般是针对TCP协议来建立两端之间的通信。只要建立了连接就可以在设备之间进行可靠的数据传送。要通过互联网进行通信至少需要一对套接字一个运行与客户机端称之为ClientSocket另一个运行与服务器端称之为ServerSocket。根据连接启动的方式以及本地套接字要连接的目标套接字之间的连接部分可以分为三个步骤:服务器监听客户端请求连接确认。基于客户机服务器结构的面向连接的套接字工作流程图如图所示。其说明了套接字在工作流程中的重要步骤:①通过套接字的构造函数方法创建套接字对象并与本地的终结点进行绑定。②在端口上使用listen方法侦听是否有连接请求如果侦听到连接请求则开始准备连接。③Accept方法则会从客户端介入连接建立连接后accept方法会返回一个新的套接字如果没有连接请求则进入循环阻塞直到收到连接请求才开始进行连接。④待数据传送结束后双方使用shutdown方法释放连接接着调用close()关闭套接字。图面向连接的套接字工作流程图⑵面向无连接的套接字面向无连接的套接字并不需要像面向连接的方式那样发送连接信息。通常UDP协议就是基于面向无连接的套接字。相对于有连接的方式无连接有如下几点区别:①都是采用了bind()方法做了对本地地址和套接字的绑定。这里强调一下只有正确的完成了绑定才能进行下面的数据传送。②由于是面向无连接的方式所以不需要向之前那样建立连接可以在绑定完成之后即开始传输数据。③无连接方式采用SendTo方法和ReceiveFrom方法这一点要和面向连接方式区分开来因为无连接方式不进行连接所以一定要指定目标主机的地址。这是一定要注意的。④最后只要释放连接关闭套接字即可。面向无连接的套接字工作流程图如图所示。图面向无连接的套接字工作流程图设计中Socket通信的实现在数据动态获取设计中的Socket通讯采用VisualC#编程采用TCP传输协议使用Winsock控件。在服务器端添加一个Winsock控件并对Winsock控件设置其端口号和绑定一个套接字到本机的地址将Winsock控件初始化Socket连接将Winsock组件设置成侦听模式随时侦测是否有连接请求。如果服务器接受了客户程序的连接请求则触发ConnectionRequest事件然后可用DataArrival收发数据。开发与运行环境开发环境硬件配置计算机:满足下面软件的硬件需求即可软件配置操作系统:Windows中文版集成开发程序:VisualC#NET数据库管理系统:SQLServerEXPRESS运行环境硬件配置其他无特殊要求满足相应地理信息系统和数据获取硬件需要即可软件配置操作系统:无特殊要求满足相应地理信息系统需要即可数据库管理系统:SQLServerEXPRESSGPS动态数据获取关键技术实现及主要代码实时获取监测信息将信息更新到SQL数据库以服务于交通救援系统。监测终端利用GPS接收机、车载GPS等数据获取手段获取实时数据将这些数据进行预处理并进行格式化随时等待数据获取中心的连接。数据获取中心可自主决定连接哪一个或哪几个监测终端当连接后监测终端即将数据实时传输给数据获取中心数据获取中心将接收到的GPS数据字符串进行解析然后写入SQL数据库更新监测对象的记录。从而实现数据动态获取更新的功能。数据传输的设计由于GIS应用系统中数据除了具有时间性和动态性的特点外还往往具有明显的空间分布特点。另外网络通信功能分散化是在线状态监测的发展趋势因此网络通信功能是GIS数据获取必不可少的功能。考虑到这些因素设计选择TCP传输协议通过WindowsSocket编程实现数据的通信功能。若通过无线通讯网络进行数据传输还可实现对移动对象的跟踪监控。数据传输结构设计的数据传输结构图如图所示。图数据动态获取数据传输结构图传输GPS数据字符串结构车辆实时数据采集是根据车辆运动过程中车载单元(GPS接收机)传送的实时信号进行接收和解码。目前许多GPS厂商遵循NMEA协议与计算机通信串行通信参数为:<CODE>波特率=数据位=位停止位=位无奇偶校验<CODE>。在这里GPS输出数据格式采用RMC数据句型,形式如下:$GPRMCANE*D<CR><LF>其中:GP为信息来源,RMC为句型识别符,其后依次为UTC时间(格式为hhmmss)、GPS状态(A为定位状态V为导航状态)、纬度(前两位为度后七位为分且精确到小数点后四位)、纬度符号(N或S)、经度(前三位为度后七位为分且精确到小数点后四位)、经度符号(E或W)、速率(单位为公里连小数点共五位)、UTC日期(格式为ddmmyy)和校验码。<CR>为回车控制符<LF>为换行控制符。字符串结构为监测数据进行传输和解析的格式。传输的数据必须严格按照此格式以便与数据库中存储表的字段项对应分隔符“,”是英文状态下输入的若错写成中文的逗号就会出错后期可以处理成非经常用的符号作为分隔在监测端应可自动分割。以后扩展可做成数据库字段结构格式自适应。通信设计选择面向连接的流式套接字进行通信因为其提供的是可靠的、数据无差错、无重复的数据传输服务数据传输稳定性、正确性高。通信流程图如图所示。图通信流程图GPS监测终端监测终端是在被监测对象处运行负责获取监测对象实时数据并按预定格式传输给数据获取中心。监测端程序运行在各个监测端的记算机上监测端程序输入本机IP地址作为服务器建立服务等待数据获取中心的连接。在监测端获得的GPS数据通过它进行预处理、编码传送给监测端。目前试验是手动输入一个监测端获取的GPS数据点击按钮“发送数据”发送。实际中可与监测传感器供应商提供的组件进行嵌入式开发完成监测字段的自动生成另外各个监测终端之间也可进行通信。在以后可改进成本机IP自动识别而不用手动输入。在一台计算机上进行模拟同时运行GPS监测终端程序和GPS数据获取中心程序。在监测端输入服务器IP地址(设为)和服务器端口号(设为)建立服务等待连接。点击“建立服务”按钮后运行界面如图所示。图GPS监测终端主要代码如下:usingSystemNetusingSystemNetSocketsprivatevoidAcceptConnection(){根据DNS协议解析IP地址IPAddressip=DnsGetHostAddresses(textBoxText)listener=newTcpListener(ip,)listenerStart()while(isExit==false){try{allDoneReset()AsyncCallbackcallback=newAsyncCallback(AcceptTcpClientCallBack)listBoxInvoke(setlistboxcallback,"开始等待连接")listenerBeginAcceptTcpClient(callback,listener)allDoneWaitOne()}catch(Exceptione){listBoxInvoke(setlistboxcallback,eMessage)break}finally{}}publicvoidAcceptTcpClientCallBack(IAsyncResultiar){try{allDoneSet()TcpListenermylistener=(TcpListener)iarAsyncStateTcpClientclient=mylistenerEndAcceptTcpClient(iar)listBoxInvoke(setlistboxcallback,"已接受连接:"clientClientRemoteEndPoint)listBoxItemsAdd("已接受连接:"clientClientRemoveEndPoint)comboBoxInvoke(setcomboboxcallback,clientClientRemoteEndPointToString())DataReadWritedatareadwrite=newDataReadWrite(client)clientlistAdd(datareadwrite)SendString(datareadwrite,"监测端已接受连接")datareadwritensBeginRead(datareadwriteread,,datareadwritereadLength,ReadCallBack,datareadwrite)}catch(Exceptione){listBoxInvoke(setlistboxcallback,eMessage)return}finally{}}GPS数据获取中心数据获取中心负责接收监测端传来的GPS数据进行解析后写入SQL数据库并可以当即显示查看存入的数据。其可输入指定的IP地址选择连接监测端获取数据进行主动监测。程序运行后可根据实际需要输入要进行数据获取的监测对象事先分配的IP地址点击“连接”按钮连接成功后即可实时接收监测端GPS数据的获取和更新这样就实现了主动监测。监测端点独立建立连接服务(等待数据获取中心的连接)数据获取中心根据实际进行选择性连接或全部连接获得监测端的数据。在此计算机上运行交通救援系统程序运行界面如图所示。图交通救援GPS数据实时采集与显示界面在交通救援系统窗体中打开济南地图如图、所示。图打开工作空间图打开济南地图点击“GPS数据”中的“数据获取”进入GPS数据获取中心界面如图所示。图获取数据弹出GPS数据获取中心界面在此界面输入要连接的服务器IP地址()和服务器端口号()点击“连接”按钮如图所示。图GPS数据获取中心主要代码如下:usingSystemNetusingSystemNetSocketsprivatevoidRequestCallBack(IAsyncResultiar){allDoneSet()try{client=(TcpClient)iarAsyncStateclientEndConnect(iar)listBoxInvoke(setlistboxcallback,stringFormat("与监测端{}连接成功",clientClientRemoteEndPoint))ns=clientGetStream()DataReaddataRead=newDataRead(ns,clientReceiveBufferSize)nsBeginRead(dataReadmsg,,dataReadmsgLength,ReadCallBack,dataRead)}catch(Exceptione){listBoxInvoke(setlistboxcallback,eMessage)return}finally{}}数据库更新数据库选择了现在主流GIS平台软件所支持和为GIS应用系统经常选用的SQLSERVER数据库作为数据存储和管理的平台。这样就提高了设计的通用性。在下一步的工作中可考虑增加对ACCESS数据库和dbf文件的支持这样使该设计满足小型地理信息系统数据更新的需要进一步提高设计的通用性。在SQL数据库中新建一个存储获取的GPS数据的数据库其名为GPS然后在此数据库中新建表其名为gpsDATA表结构是按照获取的GPS数据的格式设计的包括ID、句型标识符、UTC时间、GPS状态、纬度、纬度符号、经度、经度符号、速率、方向、日期、磁极变量、度数、检查位个字段。数据库中表的结构中设有ID字段作为关键字对其他字段没有任何限制(包括句型标识符,UTC时间,GPS状态,纬度,纬度符号,经度,经度符号,速率,方向,日期,磁极变量,度数,检查位等等)对哪些字段更新在传输字段中就可完全体现出来而无须另作更改。程序运行过程中在与数据库连接后获取的GPS数据将自动存入SQL数据库中。在其它应用中数据库的结构可按具体的应用系统为标准设置数据库设置如图所示。图数据动态获取数据库结构图由于前面在进行传输字串结构设计时考虑到数据更新的灵活性实现了对数据库数据记录属性项的选择性更新功能。即数据库一条记录中可以不对所有的字段进行更新而是选择性的更新。另外考虑到实际工作中同一个监测对象在不同时刻并不是所有的监测字段值都发生变化不同监测对象(即使是同类对象)监测的属性字段也很可能不同采用上面的传输字串结构设计即可解决这个问题实现针对性的数据获取更新这样利于减少传输数据量减轻服务器的负担。数据管理设计在数据获取中心提供了简单的SQL数据库管理功能可实现对SQL数据库中数据的显示如图所示。图数据管理主要代码如下:privatevoidFormLoad(objectsender,EventArgse){创建数据连接对象stringcs="server=localhostuid=sapwd=sadatabase=GPS"SqlConnectionconn=newSqlConnection(cs)SqlCommandcmd=newSqlCommand("SELECT*FROMgpsDATA",conn)sda=newSqlDataAdapter(cmd)SqlCommandBuilderscb=newSqlCommandBuilder(sda)ds=newDataSet()创建数据集sdaFill(ds,"gpsDATA")填充数据集bindingSourceDataSource=dsTables附加数据源dataGridViewDataSource=bindingSource绑定控件}GPS数据解析及存储本部分实现了对GPS数据的解析及其自动存储是本设计的重点。通过数据存储方式选择手动存储和自动存储手动存储是当监测端传输一条GPS数据用户手动将其存入数据库中自动存储是用户设定读取GPS数据需要的时间间隔的大小系统每隔用户定义的一段时间来读取传输来的GPS数据当无GPS数据传输来时系统自动进入下一个时间间隔内。自动存储方式大大减轻了数据监测中心的负担提高了监测效率还有个好处就是可以对敏感监测对象锁定进行跟踪监测时刻了解它的最新情况。在自动存储中利用timer控件的Enable属性来控制循环。尤其当无GPS数据传输时用到此属性先使timer控件的Enable属性为false再使其为true这样可以使其连续循环。GPS监测终端与GPS数据获取中心已经建立连接然后进行GPS数据的传输。在GPS监测端人工输入一条GPS数据界面如图所示。图终端传输数据然后点击“发送“按钮就可以在GPS数据获取中心接收到GPS数据。运行后GPS数据获取中心的界面如图所示。图获取GPS数据在GPS数据获取中心界面中点击“手动存储”程序会将这条信息存入数据库中。如果想让程序自动存储需点击“自动存储”这是用户自定义时间间隔来存取GPS数据故用户需先在“先输入时间间隔”中输入时间间隔然后点击“自动存储”这样程序就在规定的时间间隔内将传输来的GPS数据存入数据库中实验前数据库如图所示。图手动存储前的数据点击“手动存储”查看数据库如图所示。图

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/43

宋丁丁毕业设计说明书

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利