版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计说明书基于Android系统的自动气象站THEAUTOMATICWEATHERSTATIONBASEDONANDROIDSYSTEM学院(部):电气与信息工程学院专业班级:通信工程学生姓名:指导教师:教授第1章引言1.1项目背景从古至今,天气以及气温的变化就与人们的日常生活息息相关,如今伴随着人们生活水平的逐步提高、科学技术的高速发展,人们对于各种气象信息的需求量越来越大、与之相应的要求也越来越高。同时,对重大活动日天气、灾害性的天气的监测及提前预报也提出了更高的要求。一线气象观测者为了使自己能够减轻作业负担,减少单调而重复的手动记录气象数据等劳动,同时也为了在时间、空间方面取得较高的观测密度,获得较高的观测精度和观测质量,所以他们的当务之急就是尽快实现全自动化、智能化得气象观测,也即自动气象站的建立。所谓自动气象站,就是指按照工作需要而预先设定的各项技术要求,能够自动地采集、传输和处理多种气象要素值并能够及时进行预警信息发布等的地面气象观测设备系统。并且自动气象站能够在电子仪器或计算机的自主控制下自动地进行气象要素观测、资料收集、信息传输和数据存储等动作。传统的气象探测业务如果使用高效的地面观测自动气象站之后,就可以凸显出以下的优势:1)能够使气象观测的质量大幅度提高;2)能够使气象观测业务成本降低、观测条件得到极大的改善;3)能够在短时间和小空间的环境条件下大幅提高作业效率。1.2国内外研究发展状况1.2.1国外研究动态自从上世纪九十年代开始,许多发达国家开始积极投入研究和发展自动气象站技术,并且相继建立起了适合各自国家的综合观测业务和气象监测服务的自动观测站网。大多数发达国家的大部分观测项目实现了自动化。美国、意大利、德国、芬兰等国家建立起了数量较多的自动气象站,如美国使用的ASOS系统;日本、韩国也逐步建立起了本国功能性较为良好的气象自动化观测系统,如日本的AMEDAS系统;法国使用的MITSRAL系统等。上述这些国家的自动气象观测系统的逐步建立和投入运行,为天气预报与观测、科学利用气候资源和合理开发等众多社会活动发挥了指导决策作用,并逐步完善了大量的气象观测资料。自动气象站逐步起步,从刚开始起步发展至今,它的作用不可小觑。1.2.2国内研究动态从1999年7月份开始,我国进口了由芬兰VAISALA公司研究和批量生产的自动气象观测系统,在此之前,我国没有一套完整的气象观测设备,该套设备的引进并正式投入运行意味着我国的气象自动观测跨入一个崭新的阶段。之后的2000年1月1日我国自行研制生产的第一批自动气象观测设备开始正式投入到气象观测业务运行之中。目前经过中国气象局自动气象产品审查合格的国内厂家已经有多个,他们生产的自动气象设备如长春气象仪器厂生产的DYYZ-II系列、北京华创升达高科技发展公司的CAWS-600系列、天津气象仪器厂、广东省气象技术装备中心生产的ZDZ-II型系列己经在全国的气象服务站广泛应用。1.2.3自动气象观测设备的发展改革开放后,我国社会经济开始高速发展,各级政府部门、社会各行业在运筹决策各项活动、安排及制定一些政策时更加需要利用可靠的气象信息因地制宜、趋利避害。我国地大物博,幅员辽阔,地形结构复杂,地势海拔等起伏大,地貌形式多样,全国各地区的气候差异非常明显,各种气象灾害频繁发生,并且呈现出突发性和多样性的显著特点。我国现有气象站各站点之间的相距间隔比较大,气象观测的次数也不够频繁,但是重大天气灾害特别是暴雨、冰雹、大风等气象灾害主要发生在区域性中小范围内,一般范围为十公里到十几公里内,但是当前技术条件下对它们的监测还存在很大的难度。因此,加快投入建设我国地面观测现代化、自动化已迫在眉睫。当今感测、电子、计算机和通信等科学技术的快速发展,为气象站的设计和发展开辟了一条宽阔的道路。1.3本文研究的目的及意义近几年来移动互联网技术迅猛发展,与之相应的应用也越来越普及化、大众化,从个人手机上网到办公单位局域网再到国家广域网,网络及各种入网终端逐渐成为当今社会的一种纽带和工具。移动通信行业近年来如火如荼的发展,也推动了手机等移动终端软件的快速发展和更新,例如Android系统的设备已经占据了当今手机市场份额的一半以上。Android系统就是第一个专门为当今社会众多的移动终端而量身开发的真正算是开放和完整的系统软件。本文中研究的系统旨在建立一个自动接收、存储、处理和发送气象灾情信息的移动手持式终端,使一线气象信息员在他们长期开展工作中有易于携带的微型设备、比较可靠的技术支持和保障,同时也使当前的气象信息收集、存储及转发流程自动化、高效化,也使各种气象信息的收集、处理和保存更加标准、及时、可靠。本系统的总体设计目标是设计一个基于Android系统的自动气象移动终端设备,能够实现户外快捷、高效、及时的信息传输及灾情直报工作。1.4Android系统基础知识1.4.1Android系统介绍Android系统是Google公司花费巨资精心设计开发出来的,它是基于Linux操作平台的一个开源手机或者智能终端的操作系统。Android系统几乎包括了移动电话工作时必要的所有软件,即用户界面、操作系统和应用程序三个部分。许多手机操作系统都存在专有权,但Android系统因为是开放式的所以不会出现这种情况。Android系统是由Google公司与开放手机联盟的所有成员并肩合作共同设计开发出来的,手机联盟主要由中国移动、德州仪器、KDDI和三星等公司在内的总共34家技术和无线应用的大型企业组建而成。与开发商、运营商、设备制造商和其他相关各方面达成深层次的合作伙伴关系,依靠这种合作关系来建立一个标准化、开放式的移动手机软件开发平台,这样就可以在丰富的移动终端产业内部形成一个完全开放式的优秀软件生态系统。1.4.2Android系统架构Android的应用程序是用Java语言编写而成的,它是在一个程序虚拟机VM中运行。Android系统是单独地运行在Linux系统的内核之上的,在此需要我们留意的是,这里的虚拟机是指DalvikVirtualMachine,它是一种名副其实的开源技术方案。每一个Android的应用程序都是在虚拟机中的一个实例进程之中运行,实例一般停留在一个由Linux系统内核管理的进程当中。系统的架构图如图1-1所示。图1-1Android系统架构第2章自动气象站2.1自动气象站的组成框图一个自动气象站的基本模块如图2-1所示。图2-1自动气象站组成框图2.2自动气象站硬件组成根据世界气象组织编写的《气象仪器和观测方法指南》一文中对硬件组成部分的描述,平常一个较为典型的自动气象观测设备要求包括传感器、采集器和外部设备三个主要部分。自动气象站的主要硬件结构如图2-2所示。图2-2自动气象站硬件组成框图为了使自动气象仪能够方便灵活扩充,故提前预设一定的可选传感器接口,如机场中需要的可见度传感器、种植户需要的土壤温度传感器等,并且对设备空间、数据处理能力、供电电源容量、存储器容量等留有一定的余量,同时提供较灵活的软件工作环境以便于修改系统配置和各项参数。2.2.1传感器传感器是一种高级检测装置,它能够灵敏地感受到被测量当前及变化的状态,并能够将其实时感受到的信息按一定的转换规律变换成为电、光信号或其他所指定形式的各种信号形式输出,目的在与达到信息的记录、传输、存储、处理、控制和显示等各项技术要求。温湿度传感器、雨量、气压传感器、风向风速传感器等是当前日常气象工作中经常使用的传感器,尽管内部测量原理不同,但是总体工作流程类似。传感器基本工作流程如图2-3所示。图2-3传感器工作原理图传感器的主要参数有:1)分辨率传感器的分辨率是指其能够测量出来,并且能显示出被测量值的最小间隔。分辨率必须能够满足气象测量的要求,分辨率越高测量值越精确。2)灵敏度传感器在相对比较稳定的工作状态下,参数输出变化量值△y与参数输入变化量值△x之比,称为传感器的灵敏度K。k=3)量程量程是指能够测量和表示出来的被测量值的最大的范围。被测量的气象要素的值决定了量程的范围。2.2.2采集器采集器是自动气象站中最为核心的部分,也称为中央处理机。它从传感器中采集到数据,然后由其系统内部的微处理器CPU芯片按照预先指定的数据算法来进行各类气象数据运算处理和控制,从而生成各种气象要素观测值,再接着以预先指定的数据格式将处理后的观测值存储在存储器内,并能按照规定响应各类信息的传输要求。采集器的主要功能是完成数据的原始采集、存储、及时处理、实时传输和整个系统的总体运行管理等多项功能,所以一个采集器一般情况下是由外部传感器接口电路部分、数据存储器部分、系统微处理器部分和通信接口等四大部分组成。2.2.3外部设备自动气象站的外部设备通常是指除了传感器和采集器这两大部分以外,自动气象站本身所配置的设备,通常情况下主要包括系统的供电电源设备、气象系统业务终端设备、数据通信传输设备等,也把其附属的实时时钟设备和监控检测设备都归类为外部设备。每个自动气象站并不一定配备全部的外部设备,而是根据承担任务的需要来配备所用到的外部设备,这样就可以减少电源消耗,减轻设备体积和重量,从而降低建设和维护成本,实现性能利用效率最大化。2.3自动气象站软件组成自动气象站在运行时必须依靠软件的支撑,采集软件和系统业务软件是自动气象站工作的两个主要运行软件。采集软件是指,在该系统的采集器内部程序中运行,常用来控制气象观测数据的收集、处理、控制、存储、系统状态的检测和实时观测数据传送等各项流程的一个软件。业务软件用于接收仪器观测时收集的数据,手动输入人工观测所得数据,它一般性的功能是进行各种气象数据和资料的处理,梳理和归纳各类地面气象数据的资料报表,实时传送、存储气象观测的全部资料和整个自动气象站系统运行状态的实时监控,编排气象观测数据文件和及时生成地面气象观测资料及信息的报告等。在业务终端或者能够在自动气象系统中心网站上运行的软件也即是业务软件。业务终端的应用主要是指移动终端上安装的气象信息查询、预警信息发布及环境监测等软件,在气象中心网站上运行的软件主要是各种信息发布及应用软件。2.4自动气象站运行流程自动气象站运行流程为:1)将各传感器通过防雷板上相应的安全通道接入到数据采集器,检查各个传感器工作正常后将自动气象站通电开始工作。2)数据采集器的内部程序加载完毕后会对各采集通道进行检测并初始化。例如对于I/0口的状态初始化、计数器端口参数值初始化、CPU工作寄存器状态的初始化、时间和日期重置等。3)数据采集器再根据内部程序预先设定好的时间间隔或者断点进入到各项任务的并行运行状态,定时器的中断处理程序和定时控制程序来完成各项任务的定时操作功能,并且也具有自动地计算年、月、日、时、分、秒的功能,它可以高效地完成系统中需要运行的各项任务所要求的定时或者延时等动作。自动气象站测量工作流程如图2-4。图2-4自动气象站运行流程2.5本章小结本章部分最开始着重介绍了一个自动气象站的组成框图,接着分硬件和软件两方面介绍。硬件部分着重介绍了传感器及其主要指标、采集器的功能、外部设备等。软件部分着重介绍了该自动气象站的两个核心软件,即数据采集软件和业务运行软件,最后较详细地梳理了自动气象站的完整运行流程。本章主要论述了自动气象站的基本运行流程和一些相关知识,对气象站的工作原理和各部分模块也有较为详细的阐述。本章的论述,为后面构建系统奠定了硬件方面的技术知识,是该系统完整构建的基础。第3章基于Android开发平台的构建3.1Android操作系统Android系统是以Linux平台为基础的嵌入式开源手机操作系统,该系统的开发平台是由操作系统部分、中间件部分、用户界面部分和应用软件四大部分构成,它是第一个为众多移动终端设备而编写和开发的一个名副其实的开放且完整的系统软件。3.1.1Android系统的特点Android不仅仅是一个面向移动设备的免费开源操作系统,它也是一个创建移动设备应用程序的优秀开源开发平台,它拥有许多卓越的特性。1)开放性Android平台中的开放性可以描述为:该系统允许也欢迎任何的移动终端厂商及运营商、设备制造商等都能够积极加入到Android联盟中来。开放性对于Android的发展最大的受益就是使它拥有了非常丰富的软件资源。2)应用间无界限Android第一次打破了应用程序之间的传统界限,例如Android操作系统内部嵌入了基于开源引擎的系统内部集成浏览器,程序设计开发人员完全可以把Web上的数据与本地终端上的联系人、位置信息、通话记录、日历等数据有效地结合起来,为Android终端用户创造出一种全新的生活体验。3)应用开发快捷方便Android平台为最大的优点就是它为应用开发人员提供了一些非常有用的工具和实用库,这些工具和实用库能够帮助开发人员快速高效地开发出自己满意的应用。例如基于终端定位的应用程序的开发在其他手机平台上开发是非常复杂的,但是因为Android系统内部在设计时已经集成了GoogleMap,所以开发人员只需调用其中的几个API函数就能够快速地实现一个地图的应用,由此可见其开发的方便快捷程度。除此之外,Android操作系统还有效支持GSM电话、照相机、GPS、蓝牙、WIFI、3G等诸多功能,它自身也集成了标准轻量级的数据库,并能播放各种当前主流的音视频和静态影像文件,包括MP3格式,JPG格式,MPEG-4格式,PNG格式等,其功能异常强大。3.1.2Android操作系统的体系架构Android开发平台的系统架构运用了总体整合的策略和思想,它的系统层次的体系结构总共可以分为四个层次,自下而上的体系结构层次按照顺序依次是Linux之内核层、普通的类库层、应用框架整体所在层和应用程序层,其中在第三层的应用框架层中还包括Android运行环境。如图3-1所示。图3-1Android系统体系结构3.2Android开发环境在设计和开发自动气象站系统之前,我们首先需要构建基于Linux嵌入式操作系的应用开发环境。设置好开发环境之后即可开始搭建该系统,开发出我们需要的项目。3.2.1开发环境的搭建Android系统的所有应用程序常常都是运行在它的虚拟机上的,因而可以在任何支持开发人员所需的工具的平台上来编写这些程序。为了在这些平台上能够高效地进行Android应用程序的开发,我们还需要搭建一个正确的系统开发环境,下面就简要介绍一下在Windows平台上搭建开发环境的基本步骤。(1)安装JDKAndroid的所有程序都运行在Java虚拟机上,因此其开发环境需要JRE的支持,在官网中下载JDK,版本要求在1.5以上。安装JDK完毕之后,还需要对它的环境变量进行一些详细的设置。如图3-2所示。图3-2环境变量的设置1)在“我的电脑”菜单栏的“属性”对话框中打开“环境变量”选项,在用户变量栏中新建一个变量“java_path”,其值一栏就是我们电脑中JDK的安装路径;2)在下面“系统环境变量”一栏中编辑变量Path选项的值,将JDK的bin目录路径添加到后面,用“;”与其它已经存在的值分隔开。(2)下载安装AndroidSDKAndroidSDK的官方网站中给出了许多不同操作系统下的SDK开发包,以便满足多种开发需求。在此,我们只需要下载Windows平台上可以运行的开发包,然后将SDK开发包解压出来,打开运行“SDKManager.exe",如图3-3所示。图3-3AndroidSDK的安装Availablepackages选项菜单中包含了我们可以安装的API版本、各种驱动和一些文档,因考虑到要与当前社会中主流的Android系统设备能够相互兼容,所以在此选择安装“SDKPlatformAndroid2.3.API8,revision1”来进行应用程序的开发。当安装好AndroidSDK之后,在“AndroidSDKandAVDManager”的菜单选项栏中我们选择“Virtualdevices”选项,然后就可以新建一个Android模拟器AVD,版本号为Android2.2。(3)安装并配置EclipseEclipse是开发Android应用程序首选的一个非常方便实用的集成开发环境(IDE),下载名称为“EclipseIDEforJavaDevelopers"完毕之后,解压运行。Android平台为Eclipse专门打造定制了一个ADT插件,运行EclipseIDE出现系统界面之后,在“help”菜单中选择“InstallNewSoftware”来安装“AndroidDeveloperTools”和“AndroidDDMS”这两个插件。其余的选项可设置默为认值,也可按照个人需要更改。各选项的设置界面如图3-4所示。图3-4Eclipse中安装ADT(4)设定AndroidSDKHome当安装插件完毕之后,还需要我们额外地设置SDK所在的主目录菜单。点击“windows”菜单栏选项下的“Preference”选项,在系统弹出的界面左侧部分选择“Android”项,在右面面板中设定AndroidSDK的所在的目录项,单击确认键即可完成当前选项的设置。3.2.2应用程序开发示例完成以上开发环境的搭建后,就可以正式地在Eclipse软件中开发出Android所有需要开发的应用程序了。在菜单栏“File”中选择“new”选项,即可在Eclipse软件中初步创建出一个名称为“HelloWorld”的新工程。创建好工程后,HelloWorld.java中己经有了默认的Activity,它用于在屏幕上显示字符。点击Eclipse软件中Android模拟器按钮即可在Android模拟器上运行该程序,“HelloWorld”被默认的Activity显示在模拟器上。如图3-5所示。图3-5“HelloWorld”示例程序3.3Android应用程序的主要组件Android系统有一个鲜明的特点,就是在提供元素的应用程序授权允许的情况下,其中的一个应用程序能够调用和使用另一个应用程序中的部分元素,基于此,当系统应用程序中的任何一个部分收到程序调用或使用的请求命令时,系统就能马上启动这个应用程序对应的相关进程,与之相对应的Java对象就被快速实例化。因而,Android应用程序与其他大多数程序不同,它的代码没有一个单独的入口,而是反复调用,穿插进行。比如,Android系统的开发语言中没有使用到main函数,但是它包含了程序运行时所必不可少的应用组件,从而该系统就能够实例化活动对象。Android系统中总共有四种重要的组件:1)活动(Activity)在Android系统的开发中,一个活动常常用来表示一些用户的可视化界面,用户可以在一个Activity上面进行一些多样化操作。一般来说,一个Android应用平常只由一个Activity组成,当然它也可以含有多个Activity。活动的形式及内容取决于应用程序结构及功能的设计。2)服务(Services)一个服务在后台中的运行时间一般是没有限制的,但是服务的用户界面一般是不可见的。程序可以连接或者绑定到一个正在运行的服务,当程序连接到一个服务之后,就可以通过这个服务所显示出来的详细接口信息来和此服务进行内部实时通信。服务常常运行于一个程序进程过程的主线程之中,它经常为一些消耗时间比较长的任务单独设置一个线程,此举的目的在于不拥堵用户界面或者其他的组件。3)广播接收器(Broadcastreceivers)Android组件中的广播接收器的功能只是用来接收广播并对广播信息作出及时反应,广播信息的很大一部分是由系统的内部代码发出的。在开发应用程序时,一般定义多个广播接收器,这样就可以对有用的广播信息进行实时监听并能够及时地作出反应。4)内容提供者(Contentproviders)组件中内容提供者的作用,就是使当前程序当中某些特定格式的数据能够被其他的应用程序所使用。当然这些特定格式的数据完全可以存储在SQLite数据库当中,也可以存放在其他可以存储该类数据的地方。3.4本章小结本章主要是构建自动气象站的Android开发平台。首先简略地分析了Android系统所特有的优点,主要有开放性、应用间无界限性、方便快捷的应用开发等,接着分析了Android开发平台的整个系统架构。最主要的还是叙述了Android环境的搭建步骤,包括JDK、SDK的下载及安装和Eclipse的参数配置等,简单地介绍了创建一个应用的步骤。在本章的最后部分简要地介绍了Android应用程序中的几个主要的组件,主要有活动、服务、广播接收器、内容提供者四部分。第4章基于Android系统自动气象站的实现4.1Android系统应用程序的设计在Android平台下开发应用程序的基本框架如图4-1所示。图4-1Android应用程序框架在进行Android系统应用程序的具体设计过程中,应用的视图、布局、XML文件及ID属性是很重要的部分。4.2气象站系统主界面的实现为了方便用户,本系统从简洁原则出发,登录即可显示主页面。本系统主页面包3个按钮,分别是登录、帮助和关于我们,不同的图标点击之后显示不同的功能。该系统的人机交互主界面如图4-2所示。图4-2系统主界面视图4.3帮助界面该系统帮助界面的目的在与方便快捷地向用户提供操作指南及软件版本信息,其界面如图4-3所示。图4-3帮助界面同时为了增加对主菜单的监听功能,所以要在程序中提前对活动进行注册,只有注册成功之后该功能才有效。4.4登录界面当用户点击主菜单中的登录按钮时,触发了OnClick()事件所以会自动弹出相应的登录对话框,该登录对话框优先级高于活动的提示窗口,所以Activity会迷失全部信息,这样窗口便能够接受所有的用户信息交换。Android系统自动气象站系统登录时界面如图4-4所示。图4-4用户登陆界面另外,上述涉及到的对话框,常常用于应用程序的小功能插件及各类信息的提示等。目前比较常用的对话框主要有:1、警告框2、进度框3、时间选择框4、日期选择框4.5气象数据查询与显示界面查询界面实现代码见附4-5。本系统的主要目的在与及时有效地处理气象信息,用户通过登陆之后,就可以查看各种气象数据,把从各传感器发送来的数据显示在系统软件界面。气象要素值查询信息反馈界面如图4-5所示。图4-5实时气象参数其中上图中温度单位为摄氏度(℃),湿度指相对湿度,是一个百分比,无单位。风速的标准单位为m/s,风向的表示是以北方为基准,以度为单位(°),气压单位为Kpa,雨量单位为mm。4.6本章小结本章主要内容是用基于Android系统的气象站应用程序的开发,首先介绍了应用程序框架总体设计。在此基础上设计开发出了气象站的完整项目,包括主界面、帮助信息界面、登录界面和数据查询界面等。并对系统实现过程中相关的一些技术做了简单介绍。本章完成了该项目的人机交互界面及上位机部分,软件部分基本实现。第5章气象数据传输及技术气象信息的实时性非常重要,加之我国地域广阔,地形及气候条件复杂,各种天气状况变化多端,我国经济社会的快速向前发展又反过来对气象数据的实时性提出的要求更高一筹。Android客户端用户对于一些服务的实时性要求比较高,例如需要实时刷新当前某节点的传感器上的数值、要求动态地显示传感网中节点的路由拓扑图、在客户端上操作传感器的节点能使其启动或休眠,这些功能的实现都需要依赖于可靠稳定的客户端‐服务器实时通信技术。本系统使用实时通信技术,能更好的结合当今通信技术发展的成果。通过该系统中传感器网络的采集,气象信息被上传之后保存到服务器中的数据库中,在服务器端使用实时通信技术和Web服务技术等,使得气象工作人员及用户能够在Android系统的智能终端上,以曲线图、表格等各种形式实时查看监测区域的气象信息,同时还能查看网络拓扑结构、接收预警信息等。5.1WebSocket实时通信技术随着HTML5的兴起,出现了一种新的实时通信机制:WebSocket。Web‐Socket是一种通信制式为全双工的双向通信技术,主要作用是在Web浏览器中或其他客户端和Web服务器之间给出一种类似TCPsocket的持续的、双向的、有状态的实时通信方式。WebSocket实时通信技术的优势在于,客户端和服务器之间能够彼此互相推送消息。在Android系统的原生APP客户端中,想要实现与WebSocket服务器之间的实时通信,还需要借助第三方开源库:Autobahn-Android。综合权衡WebSocket的性能优势之后,基于开源项目实现Android客户端与服务器之间的实时通信,服务器端能够将实时更新的传感器数据传送到Android平台客户端,当客户端收到数据之后立即更新信息显示界面。同时,Android系统的客户端一侧能够向其所在的服务器端所在侧实时地发送各种请求命令,用户可以实时地操控传感器节点来使它休眠或者启动。如图5-1所示。图5-1WebSocket工作模式5.2信息推送推送技术就是一种由网络服务器端口一方主动地向客户端所在方发送消息的通信技术,与拉取技术正好相反,推送并不需要用户主动刷新系统以检查是否有没及时更新的消息,它就是主动将更新之后的信息发送给客户端用户。至今,推送服务已经广泛应用于各种类型的智能手机应用中,例如:天气预报的应用程序会主动向用户及时推送灾害性预报信息、新闻应用会主动向用户及时推送重大新闻等等。通过推送服务,一方面能够大幅提高用户的黏度,另一方面能够及时向用户发布一些重要信息。在本系统中,推送服务的主要作用是将气象预警信息及时推送给手持式气象设备的Android客户端,如:雨量传感器测得单位小时降水量超出阈值、温度传感器节点测得的温度超过阈值等。通过推送服务,只要用户的Android智能终端开机且保持网络已连接状态,预警信息就能够以通知的形式即时地显示在屏幕上。推送主要有以下两种技术方案。5.2.1长连接技术方案所谓长连接技术方案是指Android客户端与服务器端之间维护一个长期的TCP连接,当服务器有数据传送时,通过该连接实时地将数据推送到客户端,即Push。为了保持该TCP连接长时间存在,每隔10到30分钟发送心跳包一次。从能耗方面来看,当Android客户端发送心跳时耗电比较多,但在不发送心跳时耗电会极少。从总体上看,通过TCP长连接方式来实现的推送服务耗电少而且实时性比较高。5.2.2开源技术方案目前,以可扩展通讯和表示协议XMPP为基础的开源项目androidopn是一种最为常用的开源项目解决方案。由于XMPP协议体是基于XML的,所以相对而言比较冗余,对于流量和电量较为敏感的手持式客户端来说,开源方案并不是最好的选择。5.3预警信息的实时发布在本系统中,为了快速开发、节约成本,运用了极光推送服务来进行气象预警信息的推送。极光推送,即Jpush技术,它对一般的普通开发者免费开放代码,是一个第三方的信息推送服务。开发人员只需要在自己设计的客户端中集成极光推送所需要的SDK包,就能够简单方便地将PUSH功能添加进自己设计出来的APP客户端。极光推送原理如图5-2所示。图5-2信息推送流程图为了运用国内的极光推送服务,Android客户端中需要加入满足极光推送的一个库文件AndroidSDK,只要借助于这个库文件,客户端就能够与极光云推送服务器之间保持比较稳定的长连接,同时其内部通过心跳包机制来实现跳线重连。在本文设计系统的自建服务器中,通过数据收发板块来过滤掉下层网络传来的气象数据,及时检测到预警信息并能够实时转交给推送服务模块。当推送服务板块收到预警信息后将消息生成易于识别的统一JSON数据格式,然后通过HTTP请求来调用极光推送的远程API将预警信息推送出去,几秒钟之内Android客户端用户就能够接收到Notification格式的气象预警信息。5.4本章小结本章主要介绍了气象数据传输及涉及到的主要技术。首先介绍了WebSocket实时通信技术,它主要作用是在Web浏览器中或其他客户端和Web服务器之间给出一种类似TCPsocket的持续的、双向的、有状态的实时通信方式,它是一种通信制式为全双工的双向通信技术。接着介绍了其工作模式。其次,介绍了信息推送技术的定义,并简略介绍了两种推送技术方案,即长连接技术方案和开源技术方案,分别简要地介绍了两种技术方案。最后介绍了预警信息实时发布技术以及流程图。通过本章,对气象信息收集、传输及预警信息发布等流程有了较为深刻的认识。结论本论文主要目标在于设计出一种基于Android系统的自动气象站,目标是提高终端灵活性和方便性,即设计出一种手持终端,方便信息采集、浏览、存储和处理。本论文在大量阅读了自动气象站和Android系统的相关资料的背景下,简单的介绍了自动气象站在国内外的发展,提出了该系统的研究目标和意义。在以Android系统为开发基础的自动气象站的设计上,本文首先介绍了气象站的组成、各部分传感器及采集器的工作原理和流程等,在此基础上,构想出用Android系统来开发气象站的目标。接着问问介绍了Android系统的特点、体系结构、开发平台的搭建、软件安装和应用程序的组件等知识。以上部分知识是开发该系统的基础,接着本文介绍了应用程序的框架,重点介绍了系统的实现,另外介绍了系统的主界面、登录界面、帮助界面等,还给出了系统运行时采集来的数据样式。最后介绍了气象数据传输及发布等所涉及到的一些技术,如WebSocket这种实时通信技术,信息推送技术等,并在最后介绍了预警信息的发布等,设计中的主要步骤基本完成。在整个设计过成功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44874-2024葡萄酒产地识别技术导则
- 《单片机测控技术课程设计》课程教学大纲
- 2024年伐木设备出租合同范本
- 2024年出售精装修住房合同范本
- 2024年出口导弹合同范本
- 商业街开业活动
- 培训机构转介绍数据
- 中医针灸学基础培训课件
- 《餐饮服务与管理》高教版(第二版)5.3宴会准备工作单元练习卷(解析版)
- 分子诊断与肿瘤靶向治疗
- 220kV输变电工程电能损耗计算方法分析
- (完整word版)售后服务流程图
- Photoshop图层蒙版PPT课件
- 全国中学生英语能力测评(NEPTS)高一年级组初赛试题解析(六)
- 市主城区装饰装修垃圾专项治理工作方案
- 2022年普通高中地理课程标(完整哦)
- 艺人授权书范本
- 水泥土搅拌桩施工监理实施细则
- 市政工程合同与造价管理PPT学习教案
- 人教版二年级上册数学全册教案
- 计算材料学实验(燕友果)实验七利用 material studio研究晶体材料性能
评论
0/150
提交评论