版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着人们对生活质量要求的提高以及智能家电的发展,普通家庭使用的智能家电设备逐渐增多,迫切需要集中地控制家电设备。与此同时,随着智能手机性未来将成为智能家居控制系统的主流控制终端。在这样的背景下,本文研究了基于手机加速度传感器和陀螺仪的智能家居控AndroidService技术;在分析了系统的功能需求后,给出了基于智能手机加速度传感器和陀螺仪的智能家居控制系统的总体设计方案。在对系统进行总体设计后,本文分别对手机控制端的家电控制、入网设备注册、文件共享以及交互模块进行详细设计与实现,并且在家电控制模块中详细说明了系统采用的手势识别算法,然后对系统服务端的网络服务、命令解析以及命令处理模块分别进行了设计与实现。及手势识别率进行实验测试,并对测试结果进行了分析。关键词:Android 智能家居 手势识别 智能手机AbstractWiththepursuitofabetterlifequalityandmoreinterestsinsmarthomegradually,intelligentapplianceshaveenteredintoordinaryfamiliesandthusacentralizedcontrolsystemfortheseappliancesisessential.Atthesametime,smartphoneshavebecomeanindispensablepartofpeople’slifefortheirimprovingperformanceandtherapidmobileinternet.Thereforetheywillplayanimportantroleincentralizedcontrolsystemofthesmarthomeinthefuture.Againstsuchabackdrop,thispaperstudiesthesmarthomecontrolsystemusingsmartphonesembeddedwithaccelerometersandgyroscopes.ThesystemselectsanAndroidsmartphoneastheterminaltocontrolapplicancesbyrecognizingusers’gesturecommunicatingviaWi-Fi.Afteradescriptionoftheresearchsignificanceandstatusofthesmarthomecontrolsystem,thispaperintroducestheWi-Fitechnology,gesturerecognitionandServicetechnologyusedtoimplementthesystem.Then,thepaperanalyzesthefunctionalrequirementsofthesystemandgivestheoveralldesignofthewholesystembasedonsmartphones’accelerometersandgyroscopes,includingnetworkstructureandarchitectureofthesystem.Afterthat,thispaperdesignsandimplementseachfunctionalmodule,likeappliancescontrolmodule,accessequipmentregistrationmodule,filesharingandinteractionmodule,etc.andfurtherdetailsthehandgesturerecognitionalgorithmusedinthefirtstmodule.Inaddition,thispaperdescribesthedesignandimplementationofnetworkservices,commandinterpretationandcommandprocessingmoduleontheserverside.Finally,thefunctionalmodulesareverifiedbytheblackboxtesting,whiletheWi-Finetworklossrateandgesturerecognitionratearetestedbytheexperiment,ofwhichresultsareanalyzedintheend.Keywords:Android SmartHome Wi-Fi HandGestureSmartPhone目录第一章绪论 1课题背景 1课题来源 1研究意义 1国内外研究现状 2国外研究现状 2国内研究现状 3本文研究目的 3章节安排 4第二章相关技术研究 5技术研究 5网络的基本结构 5网络工作原理 7基于智能手机的手势识别 7手势识别概述 7基于智能手机的手势识别技术 8Service 8本章小结 10第三章系统的总体设计与实现 系统总体需求分析 功能性需求 非功能性需求 12系统的设计原则 12系统总体设计 13系统网络结构设计 13系统体系结构设计及模块功能分析 14应用层协议的设计 16数据库的总体设计 18本章小结 19第四章手机控制端的详细设计与实现 21家电控制 21家电控制的设计 21轨迹还原算法的设计 23家电控制的实现 33入网设备注册 34文件共享 36交互模块 37本章小结 40第五章系统服务端的详细设计与实现 41网络服务的设计与实现 41网络服务模块 41服务模块 44命令解析的设计与实现 46命令处理的设计与实现 48本章小结 52第六章系统测试 53系统测试环境 53系统功能测试 53系统性能测试 55本章小结 57第七章结束语 59本文工作 59总结与展望 59参考文献 63第一章绪论本章主要阐述本文写作的课题来源、研究意义、研究现状以及研究目的。课题背景智能家居是物联网在家庭环境中的体现,不仅为人们提供了安全的、便利的、舒适的基础生活设施,而且还能保证人们的居住环境环保节能[1][2]。随着普通家庭使用的智能家电设备逐渐增多,迫切需要集中地对家电设备进行控制,因此需要引入家居控制。家居控制主要是通过无线通信技术来控制家庭中的设备,如空调设备、影音设备、电灯、厨房设备等。(1)键盘、红外线遥控器、触摸平板等作为控制终端,这些方式需要对控制终端的软硬件分别进行设(2PC控制终端,这种方式存在非常明显的成本高、不易携带、体积大等问题,不能满(3)手机作为控制终端,这种方式为用户提供方便的、快捷的、统一的控制终端,但是目前采用手机作为控制终端的系统大多采用按键的方式,用户体验不好,而且操作复杂。GSMAndroid操作系统的智能手IDCAndroid操作系统75%随着计算机和网络通信技术的迅速发展,家居的信息化程度越来越高,人们希望随时随地控制家居,创造更加智能化、自动化、人性化的居住环境。人们希望远程控制电饭煲、热水器等,回到家便可以吃饭洗澡;希望远程监控室内环境,随时了解家庭情况,尤其是家中有孤寡老人或小孩子;目前,智能家居已经可以与家庭外部环境进行信息的交互,使得这一切逐渐变为现实,正逐渐改变人们的工作方式和生活方式,家庭的自动化、智能化将逐步进入人们的日常生活。伴随智能家居的不断发展,进入家庭中的智能家电也越来越多,对各种家居设备的控制越来越重要,因此研究智能家居控制系统是非常必要的。智能家居控制系统的研究使用户更加方便控制家电设备,提高家居生活的便利性,已经成为智能家居系统中不可或缺的组成部分。1998、Microsoft、HPIntel、Cisco、3Com、Ericsson、Sony等计算机软硬件、家电、通信厂商纷纷投资于智能家居控制产品的研发与设计[5]。经过多年的发展,智能家居控制系统经历以下三个阶段[](1)(2)住宅自动化,部分的家电为了实现某个单(3)家居智能化,所有家电通过网络相互连接、相互配合工作,为用户提供安全、舒适的家庭生活。位。近年来,以谷歌、迪斯尼公司及国际商用机器公司(InternationalBusinessAndroid@Home项目、迪斯尼公司与微软、惠普共同InnoventionsDreamHomeIBMHomeDirector等均以日趋稳定的技术和强大的研发能力设计和提供了智能家居控制系统的解决方案[7]。国外主要的产品有:X-10系统[8]X-10220V的电力线作为家庭网络的信息传输介质,X-10电气安装总线(ElectricalInstallationBus,EIB)系统[9]8X系统[10]来实现家居控制,具有良好的扩展性并且技术比较成熟。Android@Home[11]Google推出此智能Android2.4GHz900MHz设备的控制,可以播放无线立体声音响系统,目前该方案还在研发当中。智能家居控制系统在国内发展比较晚,目前也有一些企业使用国外提出的技术推出了自己的产品,主要有:海尔的“e家庭”[12],该系统将海尔电脑和海尔手机分别作为控制中心和移动数字控制中心,同时将网络家电设备作为终端设备。这样使用海尔的产品可以打造出一个完整的“ee-home数字家园[13]科龙集团的“现代家居信息服务集散控制系统”[14],该系统以基于OSGi规范的家庭服务器为控制中心,在家庭内外兼容各种网络通信技术,为用户提供远程家电控制和家庭娱乐的服务。目前,国内的智能家居控制系统产品具有操作复杂、价格高、部署难的特点,国内会设计出操作简单、成本低的智能家居控制系统。智能家居可以涵盖人们日常生活中的各种各样产品,随着无线网络与家电信息设备的发展,国内外出现了越来越多的智能家居控制系统。相对于大公司野心勃勃的构建各种家庭智能化的网络与人们日常家庭生活相关的各种产品,本文提出了一种成本低、较轻量化的智能家居控制方案。制端与服务器之间的应用层协议,手机控制端可以与服务器进行通信,进而在家庭内外对智能家电设备进行控制。为了用户方便快捷地对家电设备进行控制,本文为用户提供一种新颖的基于手势识别的操控方式。除此之外,系统还提供文件共享和远程桌面功能,其中文件共享功能可以使用户将有趣的图片或者视频上传到服务器上与家庭用户分享;远程桌面则能够使用户直接查看服务器的桌面,方便对服务器的设置。本文的研究重点是:交互模块。基于手机加速度传感器和陀螺仪的手势识别算法的设计。块以及命令处理模块。本文其余章节安排如下:网络Service技术进行说明与分析。第三章:基于智能手机的家居控制系统的总体分析与设计。首先对系统进行总体的需求分析,然后对系统的网络结构和体系结构进行了设计,接着对系统各组成模块进行划分和设计,接着对服务端与客户端之间的应用层协议进行详细设计,最后系统所需的数据库进行设计。第四章:手机控制端的设计与实现,分别详细说明了家电控制模块、入网设备注册、文件共享以及交互模块的设计与实现,并对家电控制过程中使用的算法了进行详细说明。第五章:系统服务端的设计与实现。首先说明网络服务模块的设计与实现,TCPUDPSOAP务端的命令处理模块的设计与实现。第六章:系统测试,本章首先介绍系统测试的软硬件环境,然后描述系统各组成模块的功能测试,最后对系统性能进行测试。第七章:结束语。本章总结了本文的工作,讨论了本文需改进的地方。第二章相关技术研究Service的相关理论。协议IEEE802.11协议[15],是无线局域网(WirelessLocalAreaNetworks,WLAN)技术—IEEE802.11系列标准的商用名称,是一种可将个人电脑、手机、平板电脑、掌上电脑(PersonalDigitalAssistant,PDA)等终端通过无线进行互连EEE802.1EEE802.1EEE802.1bIEE802.1g三个标准,统称为Wi-Fi。与其他网络协议类似,Wi-Fi协议也是按照层次来组织的。(LogicalLink(MediumAccessControl,MACEEE802.12.1所示。802.2LLC802.11MAC802.11PHYFHSS802.11PHYDSSS802.11PHYIR/DSSS802.11PHYOFDM802.11PHYDSSS/OFDM802.11b11Mbit/s2.4GHz802.11a54Mbit/s5GHz802.11g54Mbit/s2.4GHz图2.1Wi-Fi协议栈802.11a采用正交频分复用技术(OrthogonalFrequencyDivision5GHz54Mpbs的物802.11b采用补码键控技术和直接序列扩频(DirectSequenceSpread2.4GHz11Mpbs的物理802.11g2.4GHz54Mbps。MAC层:IEEE802.11MACMAC/(CarrierSenseMultipleAccesswithCollisionAvoidance,CSMA/CA)协议解决数据冲突、网络信标同步、支持个人区域网络(PersonalAreaNet,PAN)链路的建立和断开等。LLC48MAC地址为无线和有线网络之间的桥接提供方便。网络的基本构成ii网络由站点(tation、基本服务单元(sicServieSt,SS、分配(DistributionSstemS(AcssPointP(ExtenddSrvieSt,ESS、关口(Potal)等六部分组成,下面详细说明这些组成部分。1)StationPDA等手持无线设备,也可以是一台普通的个人电脑。BSSBSS外的站点进BSS的基站。DSBSS。DSBSSDSBSSDSBSS是截然不同的。APBSS里面的基站,其作用与网桥相似。ESSDSBSSBSSDSBSSESS。Portal:是无线局域网与其他网络联系的桥接点。BSS2SSSTA3APPortal802.xDSSLANBSS2SSSTA3APPortal802.xDSSLANDSSDSAPDSSSSSTA2ESSBSS1STA4STA1图2.2Wi-Fi网络的基本结构图工作的基本原理100毫秒会将(ServiceSet封包广播一次,1Mbps1MbpsSSIDSSID的名称以及信号SSID连接。的工作方式提供了两种基本的工作模式:Infrastructure模式和Ad-hoc模式。Infrastructuredhoc(PrtoPr模式由一组无线终端组成,作为独立的基本服务单元,此模式不需要其他额外设施的支持即可使覆盖范围内的站点通信。目前,大多数的智能家居系统仅适用于别墅、洋房、公寓等高级住房,主要在于缺少简单易用的控制终端设备来实现家居智能化的操控[16]如加速度传感器、陀螺仪、触摸屏传感器、光线传感器等,这就为用户提供丰富的控制方式提供了可能性,本文设计的系统综合使用智能手机端的加速度传感器和陀螺仪进行手势识别,通过用户的手势控制家电设备,使得智能家居更加易于操作、更加易于走入寻常百姓的生活。手势识别被广泛认为是人机交互的有效途径,是手势被接收设备识别的过程,一般包括手势设计、手势执行、手势匹配过程。由于手势具有自然性、简洁性、便捷性的特点,使得其在人机交互中的作用越来越大[17]。手势作为一种新型的、自然的人机交互方式得到了广泛的研究,已经逐渐应用于手持移动设备和远程控制领域。(1基于图像的手势识别方式基于三维加速度的手势识别技术。其中,基于图像的手势识别技术的理论研究较为成熟,相关算法的识别成功率高且复杂度低,然而这些方法依赖于外部环境,需要充足的光线和背景条件才能较好地获取手势图像。而基于三维加速度的手势识别仅跟手势的移动相关,基本不受外部环境条件的影响。因此,在移动终端控制领域,基于图像的手势识别技术受限于外部条件难以得到应用,而基于三维加速度实现的手势识别系统能较好地识别手势,可以较好地完成控制操作。基于三维加速度的手势识别主要是通过感知手势执行过程中的加速度来识别手势,而手势的执行过程是一个加速度值和方向不断变化的动态过程,因此具有加速度传感器和方向传感器的设备才能根据采集加速度值和方向进行手势识别。目前大多数智能手机都含有加速度传感器和陀螺仪,具有获得某时刻加速度值和[18]主要是设计一些容易被人们掌握和使用的手势,手势执行子过程是执行控制指令相对应的手势,已到达控制的目的,手势识别子过程是最重要的一个过程,该过程必须根据加速度值和方向重构出执行的手势,即手势执行过程中产生的轨迹。目前大多数研究者在三维空间中重构一个物体的运动轨迹会采用惯性导航,本文提出的手势识别算法也是基于惯性导航理论(nrtialvigtionThor。惯性导航是一种不依赖于外界信号源的导航过程,通过测量移动点的加速度并对其两次积分,来获得该点的位置,实现上述导航过程需要利用加速度传感器来感知加速度的各个分量,使用计算单元来对测量数据进行积分,而各个加速度的加速度方向则需要角度或角旋转敏感元件(如陀螺仪)来确定[19]。惯性导航系统(InertialNavigationSystem,INS)的基本原理是在“传感器坐标系”下通过加速度传感器测量加速度矢量值,然后使用计算单元将加速度矢量值转换至导航坐标系,再通过两次积分获得物体的速度和位置。在加速度矢量转换过程中计算单元需要知道导航坐标系和传感器坐标系的角度方位,而角度可以通过积分加速度传感器测量的角速度来获取。Service根据万维网联盟Service是用以支持网络间不同机器相互操作的软件系统,其使用通用的网络协议提供服务保证不同服务注册中心查找发布ServiceService技术作Service式调用系统服务端软件提供的服务。Service是基于面向服务架构(ServiceOrientedArchitecture,SOA)[20]服务注册中心查找发布绑定绑定服务请求方服务提供方图2.3WebService基本体系结构2.3ServiceService2.1Service描述语言ServiceDiscriptionLanguage,WSDL)[212223](UniversalDescriptionDiscoveryand[24]协议将服务接口在服务注册中心进行注册,服务注册中心在使用UDDI协议注册服务接口后就可以接受服务请求方的查询,而服务请求方通过UDDI协议在服务注册中心查询所需的服务,找到服务后绑定所需服务并调用服务来完成需求。发布、查找、绑定操作均采用简单对象访问协议(SimpleObjectAccessProtocol,SOAP)协议[25]来完成。表2.1WebService协议栈层次协议服务发现、集成层UDDI服务描述层WSDL消息层SOAP网络层HTTP、FTP、SMTP...由上面的讨论可知,SOAP、WSDLUDDIService实现跨平Service这三个协议。SOAP是一种轻量的、简单的、基于可扩展标记语言(eXtensibleMarkupLanguage,XML)Service的基本通信协议,被设计成在网络合使用,包括简单邮件传输协议(SimpleMailrnsfrProtool,SMTP、超文本传输协议(HypertextTransferProtocolHTTP、多用途网络邮件扩充协议(MultipurpsenterntMailExtensions,MME。WSDLServiceService描述为进Service在通信中所涉及的细节进行结构化描述。具体来说,WSDLServiceXML2.2所示。表2.2WSDL元素信息元素类型描述Type数据类型定义的容器,它使用某种类型系统(如XSD)Message通信数据的抽象类型化定义Part消息参数Operation对服务所支持的操作进行抽象描述PortType一个或多个端点支持的操作的抽象集Binding特定端口类型的具体协议和数据格式规范Port定义为绑定和网络地址组合的单个端点Service相关端口的集合,包括其关联的接口、操作、消息等UDDIXMLService的发现和注册功能,是集描述(UnivrslDsription、检索(Discry)与集成(Integration)为一体的互联网服务注册机制[26]。UDDI提供了一组可公开访问的接口,服务提供方通过这些接口可向服务注册中心注册其所拥有的网络服务,而服务请求方可通过这些接口查询网络服务。Service势识别的基本概念以及基于智能手机的手势识别技术,最后介绍了用于手机客户Service技术。第三章系统的总体设计与实现本章首先对系统的需求进行总体分析,在此基础上对系统的网络结构和体系结构进行设计,接着按照功能需求以及系统设计原则对后台服务端和手机控制端进行模块划分,最后设计了手机端与服务端之间的应用交互协议和系统所需的数据库。手势作为控制方式的智能家居控制系统,用户使用手机终端简单地执行几个手势就可以方便地控制家庭中的家电设备,下面从功能与非功能两个方面来分析系统的需求。是一个理想的选择。这里采用家居服务器作为家电控制中心,用户使用控制终端InternetInternet控制电灯、空调、热水器等家电设备。为了使用户方便、快捷地以一种自然的方式进行家居控制,本文设计了一种新颖的基于手机三维加速度的手势识别控制方式,这种控制方式是基于惯性导航理论的轨迹还原方法实现的。网络时,首先搜索附会经常更换、变动位置,使得这种配置方式难以用于家电设备。为此本文提出了家电设备注册到家庭网络中。SD将拍的照片或视频上传到家居服务器与家庭成员共享,也可以将家居服务器中共享的文件下载到手机上。这样使得用户可以随时随地对家居服务器进行参数设置,使家居服务器更好地为用户工作。结合上述的功能性需求给出的系统用例图,如图3.1所示。家电控制WiFi设备配置家电控制文件共享用户文件共享图3.1用例图
远程桌面本系统属于家庭控制领域,且与人们的日常生活密切相关,因此除了满足上述功能外,还需满足下列非功能性需求。均能够方便地进行操作,否则会大大影响系统的适用范围。不同型号的智能手机。CPU面。本系统可在不打开手机屏幕的情况下进行操作,因此可以大大降低耗电量;CPU和内存的消耗,第六章通过实验进行了定量分析。设计智能家居控制系统需遵循的原则:可靠性:系统应用于家庭控制领域,可靠性是首先需要考虑的原则,因为智能家居控制与人们的生活息息相关,需要高可靠性,如果经常出现问题会对人7x24小时不间断的运行。安全性:本文设计的系统与用户的家庭生活和家电设备相关,系统必须保证数据传输的安全性,为了保证数据传输的安全性,手机控制端和家居服务器进WS-Security规范[27],WS-Security能够满足传输消息的完整性和机密性要求。实用性:即设计的系统必须要贴近人们的生活,不能漫无边际、天马行空本文设计的系统使得用户可通过手机简单方便地操控家电设备,操作方式自然简单,易于推广。不能因为追求技术领先性和高端形象,使系统需要付出几倍于其他系统的代价。本系统在设计与实现中仅使用常见的Android手机和普通的PC设备,与其他同类系统相比成本比较低。发生变化,这就要求系统必须良好的可扩展性。为了方便添加新功能或修复现有功能,对本文的系统进行层次化设计,对功能进行模块划分,使得系统具有良好的扩展性。智能家居控制系统的网络包括家庭内部网络和外部互联网两部分,整个系统PC统的家居服务器和biiAndoid智能手机作为控制终端。在家庭中时,Android控制命令,然后家居服务器通过AndroidGPRS对应的家居设备,从而实现远程控制家电设备的功能。本系统的方案不仅避免设计复杂的家庭控制器和家庭网关,而且不必破坏隔墙,部署简单,降低用户的使3.2WWW具有网络服务功能。Web服务器家居服务器电缆电缆Web服务器家居服务器电缆电缆InternetWiFi无线路由器光缆WiFi3G、GRPS基站远程控制风扇 电灯 空调GUIWiFi或Internet命GUIWiFi或Internet命令解析命令处理WiFiWiFi设备WiFi加速度 陀螺传感器Android内核数据存取手机控制端数据库Web服务模块交互模块文件共享入网设备配置家电控制WiFi手机控制端
图3.3系统体系结构图
服务端Android务端,服务端软件解析控制命令,然后再将控制指令发送给相应设备来完成用户的需求。手机控制端软件采用模块化的设计思想,各模块实现具体的功能,各个3.3备配置、文件共享、交互4个模块。制,其综合利用手机的加速度传感器和陀螺仪,使用一种基于惯性导航理论的轨迹还原方法来实现手势识别,识别用户的手势控制命令后,将识别出的控制命令发送到服务端,服务端软件根据这些控制命令为用户执行相关的操作。家居设备注册到家居控制系统中能家电入网设备,大大提高系统的实用性。同时可以对手机和家居服务器中的文件进行重命名、删除等操作。ServiceServiceWS-Security规范保证服务端3.3块、命令解析模块、命令处理模块。总体上采用模块化设计,以下对每个模块分别进行分析。逻辑层提供数据存取服务,向下屏蔽不同数据库的差异。当前系统使用的数据库MySQLServer5.6.10SQL式提供给业务逻辑层。TCPSocket技术向Axis2采用XMLHTTPSMTPJMSTCP服务模块可根据用户的需求快速实现和部署新的服务。进行解析,在获取数据包中设备名称、设备地址以及控制命令等信息后,将这些信息传输给相应的命令处理子模块处理相应的命令。务器、文件共享、远程桌面、家电控制等子模块,而每个子模块又可以处理多个控制命令,该模块是系统主要的功能模块。应用层协议定义了运行在不同端系统上的应用程序进程相互传递报文的协(2)(3)字段(4)进程何时及如何发送报文和响应报文。在本系统中,手机控制端和服务端之间使用一种自定义的、简单的应用层协议来交换不同类型的数据。根据系统的功能需求以及应用层协议所包含的内容,本文设计的应用层协议主要包括基本、控制、图像以及确认等四种协议数据包,其他几种数据包均是对基本数据包的拓展,下面分别进行介绍。据包的长度等信息,每种协议数据包都包含这些基本信息,不同仅在于其他的扩3.1所示。表3.1基本数据包字段数据类型数据含义Command枚举命令CommandType枚举命令的类型Length整型数据包字节长度信息都包含在基本数据包的扩展字段中,下面仅列出主要控制命令的扩展字段,如表3.2所示。在实现远程桌面过程中,服务端将家居服务器桌面按照从上到下、从左到右的顺序划分为若干片,当桌面发送变化时,服务端为了减少传输的数据仅会将包含桌面变化部分的图像片发送到手机上,每个图像片用二维坐标标识,下面列出用于3.3所示。据,包含操作是否成功以及使用错误码表示某种错误。本系统的控制命令均采用请求/响应模式,几乎所有请求数据包都有一个相应的确认数据包,这里确认数据包由基本数据包和一个执行标志组成,执行标志表示请求是否执行成功或者某种错误。表3.2主要控制数据包控制命令字段数据类型数据含义登录UserName字符串用户名Password字符串登录密码登出无无无鼠标点击mouseEvent枚举鼠标点击事件,如点击、双击、右键等鼠标移动diffX短整型在X方向的偏移量diffY短整型在Y方向的偏移量鼠标滚轮wheelAmount整型鼠标滚轮滑动的数据量键盘keyCode整型按键的键盘码家电控制SubCommand枚举具体控制命令Status整型用来表示设备的工作状态DeviceID整型数据库中的设备标识号文件共享subType枚举文件操作的命令,如上传、下载、重命名、删除等Path字符串文件的完整路径reName字符串文件的新名字表3.3图像数据包数据包名称字段数据类型数据含义TileClickReqtileIdX整型片在X轴上的ID号tileIdY整型片在Y轴上的ID号pixelOffsetInTileX整型在X轴上片内偏移pixelOffsetInTileY整型在Y轴上片内偏移mouseEvent枚举鼠标执行的操作事件TileUpdatePackettileIdX整型片在X轴上的ID号tileIdY整型片在Y轴上的ID号imageData字节数组tileIdX和tileIdY表示的片的图像数据TileSetReqtile1X整型IDID(tile2X,tile2Y)构成的矩形区域tile1Y整型tile2X整型tile2Y整型数据概念的结构设计用户ID登录密码用户名用户ER构,系统中需要保存的信息包括用户、家电设备以及手势识别需要的信息,实体用户ID登录密码用户名用户3.4设备通信端口设备工作状态家电设备设备通信端口设备工作状态家电设备设备ID设备ID设备网络地址设备名称3.5实体矢量码的属性包括手势编码序列、手势名称;实体手势命令的属性包括手势名称、手势表示的控制命令;实体矢量码与实体手势命令是一一对应关系,两者之间的联系如图3.6所示。1:1对应对应手势编码序列手势名称手势名称令手势命令矢量码3.6数据逻辑的结构设计由于本文所设计的系统选用关系型数据库管理系统,所以使用关系模型来描述逻辑数据结构。下面给出的逻辑数据结构:用户信息表(用户ID,用户名,用户登录密码)家电设备信息表(作状态)矢量编码表(手势编码序列,手势名称)手势命令表(手势名称,手势表示的控制命令)数据物理的结构设计MySQL据结构表如表3.4—表3.7所示。表3.4用户信息表属性类型描述约束UserIDInt用户ID主键UserNameVarchar(50)用户名非空PasswordVarchar(50)用户登录密码非空表3.5家电设备信息表属性类型描述约束DeviceIDInt设备ID主键DeviceNameVarchar(50)设备名非空AddressVarchar(50)设备网络地址非空PortInt设备的通信端口非空StatusInt设备的工作状态非空表3.6属性类型描述约束GestureCodeVarchar(50)手势编码序列主键GestureNameVarchar(50)手势名称非空表3.7属性类型描述约束GestureNameVarchar(50)手势名称主键CtrlCmdVarchar(50)手势表示的控制命令非空本章首先对系统进行总体需求分析并给出系统的用例图,然后介绍了智能家居控制系统的设计原则,接着对系统的网络结构和体系架构进行设计,在此基础上进行模块划分以及功能分析,最后设计了系统服务端和手机控制端之间的应用层协议以及系统所需的数据库。第四章手机控制端的详细设计与实现Android平台开发实现的,AndroidGoogleLinux用户界面和应用程序构成,是主流的移动开发平台[28]产生控制命令手势匹配轨迹还原动作执行手势设计设备执行操作手机控制端的家电控制模块使用基于智能手机的手势识别方法识别用户手势来产生控制命令,然后根据控制命令对家电进行控制。其中,本文的基于智能手机加速度传感器和陀螺仪的手势识别方法包括手势设计、动作执行、手势轨迹还原、手势匹配等过程,这些过程再加上控制命令产生和设备执行相应操作就构成了家电控制的过程,如图4.1所示。产生控制命令手势匹配轨迹还原动作执行手势设计设备执行操作4.1(1)手势应尽(2)手势易被计算机识别。由于本系统主要用于控制电灯、电扇、空调等家电设备,根据这些家电设备的特点设计几种4.1所示。4.1手势手势描述动作意义∨手由上向下划动然后返回打开∧手由下向上划动然后返回关闭∧手由左向右划动然后返回增加1∧手由右向左划动然后返回减少10-手划动绘制出LED类型的数字表示相应的数字4.1感器和陀螺仪感知的信息还原用户手机的移动轨迹,再使用下面的手势匹配方法在二维空间进行手势识别,这里的手机移动轨迹还原方法将在4.1.2节详细说明。由于手机计算能力相对较弱和电池续航能力时间较短,本文没有采用基于隐马尔科夫模型(HiddenMarKovModel,HMM)是使用一种基于矢量特征编码[29]对手势进行矢量特征编码。使用矢量的方向编码表示手势的每一组成部分4.2
8标记164.2向作为基准方向,允许这些基准方向在顺时针和逆时针方向最大偏移160到16和到0,16到16向每增加16160~F“\EE上与2的方向相同,故第二部分的编码2E2。5 4 36 27 1089 FA EB DC4.2手势的每一组成部分的矢量编码方法如下:取得手势组成部分的起点坐标和终点坐标,分别设为(Sx,Sy和(ExEy;如果SxExVecCode=4,5);;Direction确定手势组成部分在第一象限的矢量编码VecCode,如果0Direction
VecCode;如果
16),则VecCode=1;
16),则VecCode=2;如果
16)VecCode=3;
16),则VecCode=4;5)根据坐标值确定手势组成部分的所在象限,若是第二象限,则VecCode=8-VecCode;若是第三象限,则VecCode=8+VecCode;若是第四象限,VecCode=(16-VecCode)%16;方法执行结束,VecCode就是笔画的矢量编码。进行比对,把最相似的标准手势作为匹配的手势。设手势的矢量编码序列为C、C、…、C,而标准手势的矢量编码序列为C、C、C、…、C,则2 3 N 1 2 3 N由式(4-1)和式(4-2)可计算两个序列的相关值。iE1NCiNi1CiE'1N CiNi1
1NN'1NNi1
(CE)2ii(C'E'ii
式(4-1)式(4-2)1N
(CE)(CE)Ni
i
式(4-3)其中,N是手势的基本组成部分的数目,EE'和'的绝对值应1,的绝对值最大时的手势作为识别的结果。在使用上述方法进行手势匹配时,系统需要建立标准手势的矢量编码库。在手势匹配时需要将绘制的手势的矢量编码与矢量编码库中标准手势的矢量编码相匹配,从矢量编码库中选出的绝对值最大的那个手势。这里手势的矢量编码库采用数据库建立,数据库中一条记录存储一个矢量编码序列和相应的手势,如第三章的表3.6所示。本节首先给出基本的用户手机轨迹还原方法,然后对该基本方法进行误差分析和误差补偿,并给出带有误差补偿的轨迹还原方法,最后给出将三维空间轨迹4.1.1基本的用户手机轨迹还原方法基本的用户手机轨迹还原方法是基于惯性导航的基本原理设计的一种轨迹还原方法,并将其用于手势识别中,根据手势识别对操作时间和精度的要求,在使用惯性导航理论时作出如下的假设[]((2将地球表面看(3设重力加速度矢量G恒为,,gT(gm/s2)YbXbObZbXnZYbXbObZbXnZn手机坐标系bYnOn导航坐标系n4.3根据惯性导航理论,手机首先通过加速度传感器获取加速度矢量,然后为了消除重力加速度的影响,需要将手机坐标系bn中,而加速度矢量转换过程中需要的姿态转换矩阵可以通过手机陀螺仪测得的角n4.4所示。重力加速度fn重力加速度fnG手机b手机b000)(,,)开始fbCnb加速度坐标系转换b->n欧拉角更新姿态矩阵计算3轴加速度传感器3轴陀螺仪初始校准结束位置P结束位置Pn积分Vn积分4.44.34.4bfb[f,f
,f和角速度b[,
,Pn[P
P表示bx by bz
bx by bz
nx ny nz坐标系b的原点投射到坐标系n中的向量,用Vn,V,VPn的变化率;nx ny nz其次,使用由三个欧拉角组成的向量E[,,]T(表示偏航角、表示倾斜角、表示滚动角)来描述手机坐标b相对于坐标系n的姿态,并且按照先绕Zb旋转,再绕Yb轴旋转,再绕Xb轴旋转的顺序进行描述;再根据欧拉角与方向余弦矩阵的转换关系得到坐标系b中的矢量转换到坐标系n中的姿态矩阵为coscos
cossinsinsin
sinsincossincosCncossin cossinsinsin sincossinsin
式(4-4)b sin
sin
coscos Pn、VnE的初始值,再利用b与欧拉角变化率之间的运动学PnVnE,]T。PnVn
式(4-5)bVnCnfbGb
式(4-6)bxsinbzcos)tanbycosbzsin
式(4-7)sincos 式(4-9)cosPn是通过对时间t积分获得的,其中一次积分是根据测量的b值使用式(4-7)-式(4-9)积分获取E,其他两次积分分别是积分加速度和速度来分别获取速度和位置。因此,由陀螺仪产生的任何未知误差引起的位置误差正比于时间t误差引起的位置误差正比于时间t严重影响对用户手机移动轨迹的还原,所以需要对上述方法进行误差分析和误差补偿。误差分析由于存在不同的误差源以及积分的累积效应,用户手机位置误差会随着时间的增加而无限制的增大。为了提高手势识别的准确率有必要分析每一种误差源对惯性导航系统典型的误差源包括以下几个方面3](1(3)由于各种各样的干扰而导致的误差,例如量4.4本误差传播流程图,如图4.5所示。失准失准陀螺仪误差b陀螺仪误差
0,0,0Cnb姿态矩阵计算nG 加速度坐标系转换重力加速度偏差Cnb姿态矩阵计算nG 加速度坐标系转换重力加速度偏差欧拉角更新fbfbfb加速度误差an4.54.5(1姿态误差主要是由陀螺仪误差和初始校准时的欧拉角误差引起的(2位置误差和速度误差则主要是由在导航坐标系n下的加速度误差an(49b经过旋转变换后并没n相重合,而是相差一个欧拉角,设这个由于误差而产生的坐p,则有:PpVp
式(4-10)bVpCp(fbfb)Gpb
式(4-11)bCp为从手机坐标系bpfb为坐标系b中的加速度;在手势识别模块中分别定义位置误差为PpPn,速度误差为VVpVn,用式(4-10)减去式(4-5)得:bPV
式(4-12)用式(4-11)减去式(4-6)得:p b V(ICn)CpfbCpfp b b CpfbCpfbb
式(4-13)其中,GGpGn为重力加速度矢量的误差量,根据之前的假设可以得到G0,Cpn为从p坐标系到nCpp CnCnf(,这是由欧拉角的误差(4.5可知,欧拉角的误差来源于初始校准时产生的误差0,0,0p bCpbb
式(4-14)(412(413(414根据惯性导航理论,手机的位置是通过对an(t进行两次积分获得的,并且ban(tCn(t)ab(t) 式(4-15)babt)是坐标系b4.5和式(413以得到如下等式:b an(t)f(Cn,Cn,fb,fb(t),b p b [ICn(t)]Cp(t)fb(t)Cp(t)fp b
式(4-16)bb当手机加速度传感器的测量值从坐标系b中转换到坐标系n中时,式(4-16)Cp(t)二项揭示出b(t对于an(t的影响也与Cp(t)是一个很复bb杂的关于时间的非线性函数。误差补偿弥补由传感器噪声和积分累积效应造成的误差,但这样会加大对手机硬件配置的要求,增大手机内存以及电量的消耗,而且过高的精度对于手势识别率也没有太明显的效果提升,最终会限制系统在智能家居控制系统中的使用。因此,结合实际需求和应用场景,本文对惯性导航理论做适当的简化以便于满足系统的需求,假设所有误差因素对于加速度的影响满足随时间的线性关系模式。为了获得更高的准确率,最好的方法就是尽量降低欧拉角误差和尽最大努力使建立的线性模型变得准确。户绘制手势的一部分后会停顿一下,然后再绘制手势的另一部分。因此,可以充分利用停顿的时机,将一个手势识别过程以用户手机静止的时刻为节点分成若干0ttt2为手势执行的时间段,t2t为手势执行结束之后的静止0t或者t2t(10(2值和重力加速度值之间的关系获得。基于以上两种十分重要的信息,本文使用一ZVC(ZeroCompensation,零速度补偿)[32]1)静止检测通过对加速度进行分析,根据其波动的大小情况,可以很容易地获得用户手4.6当用户从静止到手势执行再到静止状态时,加速传感器在去除重力影响后各个轴上的数据变化程度。X轴Y轴轴图4.6不同运动状态所对应的加速度这里采用标准差来定量的表示这种抖动的剧烈程度,如式(4-17)所示:[xE(X)]2[xE(X)]2pkkk1EXXXk出现的概率。考虑到三轴的数据的,即1)])。当小于某一个预先设定好的阈值时,就推测此时用户手机处于静止状态。欧拉角补偿(4-7)到式(4-9)来进行实时更新的,需要的角速度信息来自手机内置的陀螺仪。理论上,通过对陀螺仪输出的信号进行积不可能获得准确的欧拉角,但是这种对陀螺仪进行积分所造成的误差会随着时间的增长而逐渐增大。幸运的是,当用户手机处于静止状态时,加速传感器仅能测量到重力加速度的值,可以获得式(418:nfbCbG 式(4-18)nn b 其中,Cb(Cn)1(Cn b fb gn
0
g) x
x fbCbgn
(Cn)T
0gsin()
式(4-19)y
ny
b fb gn g gcos())z z
因此在静止的情况下,滚动角和俯仰角可从加速度值中很容易的计算出来,通过进一步推导可以得到:tan1(fb/fb)y z x x y sin1(fb/g)tan1(fb/(fb)2(x x y
式(4-20)对欧拉角进行重新校正。这里偏航角不能从加速传感器的值中获得,但是如果用户手机静止时手机接近水平位置,那么就可以设置0,这可以通过设计特定的手势来达到。本文定义通过数学演算获得的欧拉角分别为st),st)和st)(1td,而定义在静止状态下通过加速度的值计算的欧拉角分别为acc(t)acc(t)(0tt1,t2t角的补偿办法与此相似,不在赘述。(1)0tt=00增长,则有
acc。t1
(t)
式(4-21)(2)tt2在t1tt2时间段内,只有在t1和t2时刻才可以由加速传感器信息求出滚动角,而中间时刻是无法获得的,因为在中间时刻用户手机处于非静止状态,式(4-20)不在成立。假设该时段的欧拉角误差仍然满足线性误差模型,则有:(t)k2tb 式(4-22)
s(t2)acc(t2)][ins)acc,
b{[ins(t1)acc(t1)]t2[ins(t2)acc(t2)]t1}。2(3)t2t
t2t1
t2t1由于轨迹还原主要由t1tt2时间段的结果决定,这个阶段的误差相对来说不太重要,这里使用与(2)阶段相同的误差模型。综合上述,下面给出欧拉角补偿过程示意图,如图4.7所示。2 2 end2 1 2ktb(ttt )k1t(0t)(t)ktb(ttt)end2tttfb)0ty zacc(t)tan1(fbend0dt(0tt )0tins(t) ((t)ins(t)(t)
图4.7欧拉角补偿过程示意图0(t2ttend)111 22ttˆnt)Vn(t)2(t0(t2ttend)111 22ttˆnt)Vn(t)2(tt)(ttt)0(0t)end12vVn(t)0(0tt,ttt)end0tnnˆV(t) dt(0tt)ˆn(t)0(t2ttend)2 111 2tt(tt)(ttt) 2ˆnt)nˆnV(t)V(t)0(0t)v图4.8速度补偿示意图设经过补偿后的加速度值为an(t),则有ant)ˆnt)ant)
式(4-23)4.8,对Vn(t)ˆn
0(0tˆnt) 2
两端进行求导可得V(t)
2
(tt1)(t1tt2) t2
t
end
)ˆnt)1 ant)ˆnt) 2tt1
式(4-24)t2t1根据式(4-23)和式(4-24)可得
ˆnt)an(t)t2t1
式(4-25)综合以上的姿态补偿和加速度补偿办法,得到带有补偿的手机移动轨迹还原的流程图,如图4.9所示。fbnCnbbfbnCnbbbCnbfb惯性坐标系n中加速度的计算角度误差补偿速度积分加速度速度积分零速度补偿(ZVC)静止检测角度计算角度误差估计开始Vn结束位置Pn结束位置
图4.9带有补偿的手机移动轨迹还原流程图使用上面的方法可以获得手势的三维空间的轨迹,在进行手势识别时,需要将三维轨迹转换到二维平面中,本文采用论文[30]中的空间转换方法。zxy成部分绘制完成后才进行轨迹映射,这时已经有足够的信息来发现另一个平面,该平面与上述平面平行,且会减少一个参数,该平面可表示如下:zxy
式(4-26)为了简化说明,这里把与位置向量Pn(i[P(iP(iP相关的点表示为nx ny nzxiyizii=1,…,m,i=1i=m表示手势组成部分的结束点。找到和的值,必须使得式(4-27)的值最小mE(z){xm
z
式(4-27)i1
i i i可以知道当式(4-28)成立时,式(4-27)的值最小E(z)0和E(z)
式(4-28) 在求解式(4-28)时会产生两个齐次线性方程,它的矩阵表示如式(4-29)所示:mx2
xy
zxm i ii m
iii1
i1 i1 mm
式(4-29)mxy
y2
m
zy
ii i1
ii得到和(4-26)和z和的值后,可以用另外一种方式重写式(4-26)。其中abc1。
axbycz0
式(4-30)i(i,i,zi)(430i(i,i,zi)P'(x'y'z'P'(x'y'z'相关的位置向量i i i i i i i iPn(i)P和P'可使得|Pn(i)-Pn(i)'|i=1,…,m,且向量差i iPn(i)-Pn(i)'与式(4-31)表示的平面相互垂直;另外,由于式(4-30)所示平面的法向量为[a,b,c]T,因此可得Pn(i)-Pn(i)'k[a,b,c]T,接着很容易得到x'xka,y'ykb,z'
式(4-31)i i i i i ii i 因为Pn(i)'[x',y',z']i i 到标量k的值
k(axby
cz)/(a2b2c2)
式(4-32)i i ii i i P'(x'y'z'i i i i i i xy平面上进行,因此还需使用旋转转换将映射点转换到xy平面P'xy'z'y轴旋转i i i 1 0 0 cos 0 sinx' i0 cos sin 0 1 0 y' i0 sin cossin 0 cosz' i
式(4-33)i i x'cosy'sinsinz'sini i i y'cosz'sini i i x'siny'ossinz'osoi i i=1,…,mxyz0该成立i i x'siny'cossinz'cosi i i i i P'x'y'i i i
式(4-34)i i ax'by'i i
式(4-35)比较式(4-34)和式(4-35),可以得到arctan2(b,c)
式(4-36)arctan2(a,b2c2)iPy轴旋转x轴旋转nxyiixyP''和由i式(4-36)
i i i i i P''(x'cosy'sinsinz'sincos,i i i i i
式(4-37)在用户Web成功登录后或者Wi-Fi登录后点击家电控制,家电控制界面会列出注册的所有家电设备,选择其中的一个设备,就可以使用4.1.1节设计的手势进行控制,如图4.10所示,会显示设备的当前工作状态。 4.10结合家电控制界面以及对家电控制的设计,下面给出家电控制模块的实现类图,如图4.11所示,当使用Wi-Fi登录后,进入由类MainActivity表示的界面,4.10SmartHomeActivity表示的界面,该类会列出家庭中所有注册的家电设备,并以列表的形式呈现给用户;然后用户可以选择其中某一个设备进行控制,在控制过程中会使用类GestureRecognitionSensorData来获取手机加速度传感TrajectoryReproduce还原用户绘制的手势,该类实现了4.1.2节设计的轨迹还原算法,该类提供getBaseTrajectory方法、compensation方法、spatialSwtich4.1.2节提到的获取基本轨迹、误GestureRecognitionGestureMatch4.1.1matchMainActivity+onItemClick()11SmartHomeActivity+getDevices()-DeviceID-DeviceName-Address-Port-StatusDevice+getBaseTrajectory()+compensation()-DeviceID-DeviceName-Address-Port-StatusDevice+getBaseTrajectory()+compensation()+spatialSwtich()-values+getVectorCode()+match()+getCommand()SensorDataGestureMatchTrajectoryReproduce+getSensorData()+trajectoryReproduce()+match()-sensorData1*GestureRecognitionErrorCompensationSpatialSwitch+ZVC()+getPlane()+rotateTransform()图4.11家电控制实现类图ErrorCompensationSpatialSwitch+ZVC()+getPlane()+rotateTransform()控制端的添加入网设备,然后再按下入网设备的配置按钮即可连接配置成功,并将入网设备的信息保存到数据库中,配置成功后手机控制端在家庭内外都能够控制入网设备,简化了操作流程。在手机控制端点击添加入网设备按钮后,会提醒是否已连接到家庭的AP列表,接着根据服务集开始连接WiFiY点?NN通过双向认证?结束Y从数据库中获取入网设备信息,并向其发送控制命令建立连接连接到WiFi接入点根据SSID名称进行过滤断开与处于WiFiAP模式的入网设备获取WiFiAP列表发送WiFi接入点信息连接到处于WiFiAP模式的入网设备点击添加入网设备按钮获取WiFi接入点信息(ServiceSetIdentifier,SSID开始连接WiFiY点?NN通过双向认证?结束Y从数据库中获取入网设备信息,并向其发送控制命令建立连接连接到WiFi接入点根据SSID名称进行过滤断开与处于WiFiAP模式的入网设备获取WiFiAP列表发送WiFi接入点信息连接到处于WiFiAP模式的入网设备点击添加入网设备按钮获取WiFi接入点信息图4.12手机控制端入网设备配置流程图APAP所示。入网设备注册模块实现类图如图4.14所示,模块的逻辑功能由类RegisterDevice实现。首先手机控制端软件的主控类MainActivity会引用类RegisterDeviceActivityRegisterDeviceActivityRegisterDeviceserviceAPAPconnectgetAPInfo方sendAPInfo接入点的信息发送给getDeviceInfo函数可以查看注册的设备信息。开始开始N证?Y结束等待接收手机控制端的控制命令注册入网设备的标识符、IP地址以及分配的端口连接WiFi接入点关闭WiFiAP模式接收WiFi接入点信息等待手机端建立连接开启WiFiAP模式按下配置按钮图4.13入网设备注册流程图1Device-DeviceID1-DeviceName-AddressDevice-DeviceID1-DeviceName-Address-Port-StatusRegisterDeviveActivity+onCreate()手机控制端的文件共享模块能够操作手机的安全数码卡(SecureDigitalMemoryCard,SD卡)上的文件和家居服务器上共享目录中文件,通过该功能家PCSD名、下载、删除,文件共享的操作界面如图4.15所示。 图4.15文件共享实现界面FileManager+browseToRoot()+upOneLevel()+getCurDirectory()结合文件共享的功能和实现界面,下面说明文件共享的实现类图,如图FileManagerActivityFileManagerActivity显示两个操作标签分别对应手机端和家居服务器端,其中类FileManagerTabPhoneFileManagerTabPC表示操作showRenameDlgShowDeleteDlg实现重命名和删除功能,文件上传下载是使用单独的线程来处理的。另外,在每个标FileManager+browseToRoot()+upOneLevel()+getCurDirectory()FileManagerActivity-intent-mTabHost+onCreate()FileManagerPC-currentDirectory-browseToRootFileManagerPhone11FileManagerPC-currentDirectory-browseToRootFileManagerPhone11FileManagerTabPhone-mFileManager-file+showRenameDlg()+showDeleteDlg()1FileManagerTabPC-mFileManager-fileAbsolutePath-storagePath+showRenameDlg()+showDeleteDlg()11+browseTo()+fill()11+browseTo()+fill()+browseTo()+refresh()-currentPath图4.16文件共享实现类图手机控制端的交互模块包括两方面的内容,包括用户登录注册以及远程桌面。用户登录注册用户在家庭内外均进行家居设备进行控制,但是由于网络条件和操作需求的登录4.174.18图4.17录现面 图4.18册现面4.19所示,系统主控类MainActivity通过LoginActivity和RegisterActivity为用户提供登录和注册页面;LoginListenerLoginThreadLoginHandlerLoginActivity的内部实现类,LoginListenerLoginActivity上的登录操作,LoginThread表示一个服务模块的登录服务接口,LoginHandler登录和LoginFlagLoginThreadLoginHandlerLoginThreadLoginThread实例会调用服务模块的登录服务接口,这样就把界面和处理逻辑分离开,不会因为调用服务接口而导致手机界面卡死,LoginThread服务模块的反馈后发送消息给oinHndleroinHnder实例接收到消息后,LoginFlag的不同显示不同的操作界面。用户注册的实现方式和登录基本相同,这里就不再赘述。远程桌面手机控制端的远程桌面主要负责将服务端的相应模块获取的桌面图像数据进行显示,并可以将一些操作命令发送到家居服务器,比较直观对家居服务器进行操作。当用户在主控界面中,点击远程桌面后,系统的主控类MainActivity通过Intent将界面跳转到类RemoteDesktopActivity表示的远程桌面操控界面,类+handleReceivedPacket()+handleReceivedPacket()RemoteDesktopActivityPainterThreadTilerThread的实例,其中基于PainterThread实例的线程会根据用户手指的滚动操作更新手机界面,而基于TilerThread实例的线程用来将更新的分片信息绘制到手机界面上;当用户想进行ActivityUtilsend端软件可使用类RemoteDesktopActivity的handleReceivedPacket方法来接收服务端4.204.21MainActivity+onCreate()+onclick()RegisterListener+run()RegisterThread+handleMessage()RegisterHandler1LoginActivity+onclick()RegisterListener+run()RegisterThread+handleMessage()RegisterHandler1LoginActivity1RegisterActivity+handleMessage()+run()+handleMessage()+run()+onClick()LoginHandlerLoginThreadLoginListener-UserName-Password-LoginFlag-UserName-Password图4.19登录注册类图<<interface>>ActivityReceivePacketIF<<interface>>ActivityReceivePacketIF1 1+onItemClick()MainActivityPainterThread+handleReceivedPacket()-mAURemoteDesktopActivityTilerThreadActivityUtil1 +onItemClick()MainActivityPainterThread+handleReceivedPacket()-mAURemoteDesktopActivityTilerThreadActivityUtil1 1+send()4.21本章首先对手机控制端的家电控制模块进行了详细设计,然后对其使用的轨迹还原算法进行详细介绍,接着分别介绍了入网设备注册模块、文件共享模块以及交互模块的设计与实现,并对各模块的实现类图进行了详细说明,还展示了手机控制端的操作界面。第五章系统服务端的详细设计与实现系统服务端的功能模块主要由网络服务、命令解析以及命令处理等模块组成,下面对这三个模块分别进行详细说明。运行在服务端的网络服务模块用于网络数据的接收和发送,具体作用包括:监听手机控制端的连接请求,并与手机控制端进行网络连接;接收手机控制端发送的控制信息并交给命令解析模块进行处理;向手机控制端发送家居服务器桌面图像。为了在家庭内外均可以方便地进行家居控制,系统设计和实现了Wi-Fi和Web两种网络服务模块。Wi-FiJava语言[33]议(UserDatagramProtocol,UDP)[34]和传输控制协议(TransmissionControlProtocol]JavaUDPTCP协议,UDPDatagramSocketDatagramPacketMulticastSocket;TCPServerSocketUDP协议是一种面向无连接的传输层协议,不提供数据包分组、排序和组装的功能,无法获知发送的数据包是否被接收者完整地接收,提供简单不可靠的信息传输服务,适合传输数据较少的应用场景,具有消耗额外资源少、传输速度快的特点;相反,TCP是TCP进行通信需要经过建立连接、传输数据、释放连接三个过程,提供端到端全双工传输的通信方Wi-Fi网络服务模块是手机控TCPUDP协议Wi-Fi网络服务模块的交互过5.1所示。结合图5.1,下面详细说明手机控制端与Wi-Fi网络服务模块的交互过程:UDPWi-Fi局域网内所有计算机发送Wi-FiWi-FiIP地址和TCP连接的监听端口。SocketWi-FiTCP连接。Wi-Fi请求是一个随机的整数。手机控制端将收到的认证请求和输入的密码一起(password+challenge)通过SHA-1加密算法生成一个认证响应(challengeReply)Wi-Fi网络服务模块。Wi-FiTCP连接。TCP当数据传输结束时,手机控制端可以选择断开连接,结束通信。手机控制端WiFi网络服务模块 广播请求服务器信息手机控制端WiFi网络服务模块 服务器信息建立连接认证请求(challenge) 5.6.传输数据释放连接图5.1手机控制端与Wi-Fi网络服务模块的交互流程图5.1Wi-FiSocketSocketWi-FiTCP/IP协议族实现的,目前TCP/IPSocketTCPUDP协议TCPUDP5.2所示。Wi-FiUDPTCPUDPTCP5.35.4UDP是核udpListeningUDPUDPTCP网络服务子模块,TcpConnectionHandler是主控类,它为家居TCPTCP协议 UDP协IP协议12......65535UDP端口12......TCP协议 UDP协IP协议12......65535UDP端口12......65535TCP口UDP套接字套接字绑定到端口......套接字引用TCP套接字应用程序应用程序图5.2套接字与应用程序的关系图MulticastServerClass-socket-inBuffer-packet+run()+udpListening() 1*MulticastSocket1*MulticastSocket+MulticastSocket()*DatagramPacket-buf-length+DatagramPacket()TcpConnectionHandler-dataReceiver-connectionReceiverThread-TcpConnectionHandler()+addConnectionListener()+listenOnAllIpAddresses()TcpConnectionHandler-dataReceiver-connectionReceiverThread-TcpConnectionHandler()+addConnectionListener()+listenOnAllIpAddresses()ConnectionReceiverT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园隐患整改工作制度
- 2026年建筑施工特种作业人员基础理论考试全真模拟试卷及答案(共二十套)
- 2026年高职(国际商务单证)商务单证综合测试试题及答案
- 武汉地区独立学院公共体育课程的现状、困境与革新路径研究
- 武广高铁赋能:湖南省沿线区域空间结构的重塑与发展
- 通过合并、收购、分拆和合资企业创造持久价值
- 正常高值血压合并糖调节受损人群心血管危险因素的深度剖析与防治策略
- 正交异性钢桥面板顶板与纵肋连接焊缝疲劳裂纹数值模拟方法研究:理论、实践与创新
- 欧美杨树皮组织在Lonsdalea quercina感染下的细菌多样性探秘
- 欧盟环境贸易政策视角下绿色贸易壁垒的法律剖析与应对策略
- 健康按摩服务合同范本与风险提示
- 黑龙江小学生诗词大赛备考试题库400题(一二年级适用)
- GB/T 46072-2025聚合物增材制造鉴定原则激光粉末床熔融试样的一般原则和制备
- 人工智能在医学生物化学课程中的应用研究
- 传统文化认知机制的现代神经科学研究
- 成都文职辅警考试真题及答案
- GB/T 24803.2-2025电梯安全要求第2部分:满足电梯基本安全要求的安全参数
- (高清版)DB4415∕T 52-2025 《竹薯种植技术规程》
- 政治理论应知应会知识测试题库(附含答案)
- 2025年广东省中考生物试卷真题(含答案解析)
- 黄帝内经培训课件
评论
0/150
提交评论