1、摘要智能安防设备以前沿的技术与设计理念走进了市场,让人们的生活更加便捷智能。通过智能安防设备,用户可以更好的远程感知防护周围环境和信息,这种安防设备,会通过软件支持以及数据交互,实现强大的功能。越来越多的创业者、科技公司、传统厂商加入了智能安防的开发设计当中,然而目前来说智能硬件设备依处在发展早期阶段,市场上大多数的产品都只是空炒概念、缺乏创新,不断叠加各式各样的功能。我们要抓住市场上已有产品的不足,将功能以简单优雅的元素和色调呈现给用户,对其功能进行智能化的时候,要找准用户需求,以需求为导向、以健康安全为切入点,为用户设计一款具有针对性的智能门禁系统。本文主要完成以下工作:1研究智能门禁系统
2、通信模块的需求,根据需求将其分成几个子模块,并将每个模块所需要的技术罗列出来,查阅网上资料、图书、期刊、论文来掌握相关技术。2GSM模块通过串口通信实现拨打电话和发送短信的功能。3掌握Qt配置文件的读写操作,将系统所需要的设置保存到配置文件中。4连接并实现socket通信连接的建立以及数据的发送与接收,数据包格式的定义,数据包的打包解包操作的实现,数据包的完整性验证。5Qt国际化支持的实现。关键词:嵌入式,门禁系统,Linux,QtABSTRACTIntelligent security equipment to the forefront of technology and design c
3、oncept into the market, let the life of people more convenient intelligence. Through intelligent security system, the user can better protective environment remote sensing and information, this kind of security equipment, through software support and data interaction, powerful functions. More and mo
4、re entrepreneurs, technology companies, the traditional manufacturers to join the development and design of intelligent security, for now, however, intelligent hardware equipment according to the development in early stage, most of the products on the market just empty concept, lack of innovation, c
5、onstantly superposition of a variety of functions. We should seize the shortcomings of existing products on the market, the function with a simple and elegant elements and colour presented to the user, to intelligent, its function to get the user requirements, demand oriented, with health and safety
6、 as the breakthrough point, for the user to design a targeted intelligent entrance guard system.This paper mainly do the following:1. Research the demand of the intelligent entrance guard system communication module, according to the demand will be divided into several modules, and will list each mo
7、dule need technology, access to online data, books, journals, papers to master relevant technology.2. GSM module through the serial port communication, we can realize the function of call and send text messages.3. Master the Qt configuration file read and write operations, the system Settings saved
8、to the configuration file you need.4. Establishing the connection and realize the socket communication connection and data sending and receiving, data packet format, the definition of the package of packet unpack the implementation of the operation, the integrity of the data packet validation.5. The
9、 realization of the Qt internationalization supportKeywords: Embedded, entrance guard system, Linux, QT,目录摘要IABSTRACTII1 引言11.1课题背景11.2国内外研究现状21.3研究的主要内容31.3.1系统研究的主要内容31.3.2本文研究的主要内容31.4本文的组织结构42. 系统分析52.1可行性分析52.2功能需求分析52.3系统用例分析62.3.1系统用例概述62.3.2用例分析63. 总体设计83.1总体框图83.2工作流程图83.3嵌入式系统设计方法93.3.1系统软
10、硬件协同设计流程93.4数据库设计103.4.1.E-R图(power designer)104 .系统开发环境构建114.1硬件开发环境介绍114.2软件开发环境介绍124.2.1建立C语言开发环境124.2.2建立Qt开发环境135功能模块的设计与实现165.1GSM模块165.1.1GSM模块(ATK-SIM900A)介绍165.1.2SIM900A介绍175.1.3GSM模块使用介绍185.1.4AT命令介绍185.1.5GSM功能实现195.3socket通信模块205.3.1数据包格式205.3.2Socket建立连接215.3.3数据包的处理226系统测试26总结281 引言1.
11、1课题背景物联网是继计算机、互联网与移动通信之后世界信息产业的第三次浪潮,它将现实的基础设施和信息网络实现了整合。物联网作为互联网和通信网的网络延伸与应用拓展,具有整合感知识别、传输互联和计算处理等功能,是对新一代信息技术的高度集成和综合运用。安防视频联网监控是物联网时代的应用先锋,从某种意义上讲,物联网由于具备实时感知、准确定位、有效控制等安防基本要素,可以说它天生就是为安防准备的,将会对安防产生重大影响,因此而出现了物联网安防,也被称为智能安防。它促使安防产业“互联网”化,使智能视频成为物联网发展的重要部分。公共安全管理的关键是预先感知,物联网在公共安全方面应用的核心是智能化,使得我们能够
12、建立相关技术平台、谋划事件预案,营造安全氛围,使社会环境更加平安与和谐。现代信息社会的发展,人民的生活水准也在不断提升,因而对安全的需求也越来越迫切。尤其自“911”与伦敦爆炸案事件后,国内外安防市场就迫切需要智能安防监控系统产品,近年来,国内外先后涌现出一批不同程度的智能安防监控系统或产品,由此也可窥见,安防监控系统正在由数字化、网络化逐步走向智能化。智能安防监控系统是指采用图像处理、模式识别和计算机视觉技术,通过在监控系统中增加智能视频分析模块,借助计算机强大的数据处理能力过滤掉视频画面无用或干扰信息,自动识别不同物体,分析抽取视频源中的关键有用信息,快速准确定位事故现场,判断监控画面中的
13、异常情况,并以最快速度和最佳方式发出警报或触发其它动作,从而有效进行事前预警、事中处理、事后及时取证的全自动实时智能监控系统。简单地说,智能安防监控就是由计算机替代部分人脑的工作,对监控的图像自动进行分析并作出判断,出现异常时及时发出预警,改变监控系统摆脱不了人工干预以及只能作为场景记录的“事后诸葛亮”角色。而提到智能安防,自然而然就离不开智能门禁系统。门禁系统,又称出入口管理系统,是一种管理人员进出的数字化管理系统。一般的门禁系统通常由门禁读卡器(生物识别仪)、门禁控制器、电控锁、开门按钮、卡片及其他设备组成。历经二十多年的发展,门禁系统已经超越过去单纯的门道及钥匙管理,发展成为一套完整的出
14、入管理系统。通过计算机系统进行何时何处放行某些人、何时何处拒绝某些人、何时发出报警信号及保存出入记录,门禁系统能达到安全防范和及时警报联动的目的,它在工作环境安全、提升企业管理效率中发挥着重大的作用。1.2国内外研究现状 物联网有感知层、网络层和应用层三个主要层面。物联网的第一层就是感知层,而视频监控又是感知层最典型的应用,当前占到物联网应用的约40%.视频监控之所以在物联网中承担如此重要地位,主要原因有三个:其一,视频监控应用最为广泛、市场规模最大,任何监控都要包括图像监控;其二,视频监控是物联网发展初期技术可实现性最强的;其三,随着社会对安全和治安的重视,未来行业推动因素多,行业推动的迫切
15、性强。2011年中国物联网产业市场规模将达到2500亿元,根据“十二五”规划,到2015年,中国物联网整体市场规模将达到7500亿元,年复合增长率超过30%,作为物联网第一环节典型应用的视频监控发展空间巨大。智能安防是物联网当前最重要和最现实的应用平台之一,智能安防具有从“集约安防”到“智慧安防”转变之特征,从单一功能产品到多传感终端集成;从单一变量监测到周边环境全面感知;从被动防御到基于模型分析与态势分析的主动防御,安防行业将会因此实现从提供产品到系统运营服务的全面升级,同时物联网还将对安防行业的发展格局及业务模式产生重大影响。2012年2月14日,我国正式出台了物联网“十二五”发展规划,作
16、为当前世界新一轮经济和科技发展战略制高点之一的物联网,对于促进经济发展和社会进步有重要的现实意义。规划圈定了重点发展的九大应用,包括产业类的智能工业、智能农业、智能物流、智能交通、智能环保,以及民生类的智能电网、智能安防、智能医疗和智能家居。物联网作为一种技术和理念,也是一种应用和发展的模式。它通过云计算中心,将可按约定的协议将物件与互联网连结起来进行信息交换和通信等功能。物联网将可能实现人与物体之间的“对话”、物体和物体之间的“交流”,使得生活中的任何物品都可以变得“有感觉、有思想”。物联网的应用同时将为优化资源配置、加强科学管理、缓解资源能源约束提供可能与拓宽渠道。在安防产业链中,视频监控
17、无疑是重中之重。安防行业主要包括安防设备、安防工程及运营服务三个部分。2010年中国安防行业总产值2270亿元中,安防设备约占1000亿元,安防工程约占1150亿元,运营服务约占120亿元,三个部分占比分别为44%、51%、5%.安防设备又分成电子类安防产品与实体类安防产品两大类。电子类安防产品中,视频监控产品产值约400亿元,占电子类安防产品的58%,是安防产业链中产值最大、行业发展最快的行业。1.3研究的主要内容1.3.1系统研究的主要内容智能门禁系统项目主要是对智能安防的设计与实现,我们是在PcDuino以及pc上借助qt开发平台进行系统的开发测试,在PcDuino上我们连接有多种传感器
18、进行信息的采集通过通信模块和网络将数据共享和同步。系统分为机器端和手机端,机器端主要负责基本功能、人脸识别、发送短信、语音互动等功能的实现;手机端主要负责信息的接收处理和显示、修改和同步设置、个人数据录入到数据库等功能的实现。本系统研究的主要功能如下:机器端(1) 基本功能:门禁舵机控制(2) 其他功能有led手电筒、人脸识别、语音互动。(3) GSM模块实现发送短信、拨打电话。(4) 数据保存和通信方面:支持配置保存到配置文件,利用socket通信在机器端和手机端进行数据的交互如设置的同步,socket通信的时候数据包以一定的格式在发送端打包,在接收端解包,验证数据的完整性,根据校验码执行对
19、应的操作。手机端(1) 设置和机器端的连接参数进行socket连接(2) 连接的同时进行时间等信息的同步(3) 显示摄像头信息(4) 设置机器端的配置并同步1.3.2本文研究的主要内容如本文课题所示,本人主要研究的是红外测距模块与通信模块的设计与实现,其中包含信息的处理与保存,配置文件的读写,GSM模块通过串口通信发送短信,socket通信,数据包格式的编写,数据包的打包解包,国际化支持。具体内容如下所示:(1) 机器端使用的是搭载Ubuntu系统的PcDuino,在开发之前,需要在PcDuino上安装好qt,然后配置运行环境。(2) 机器端所有的配置包括机器自带的设置以及手机端更改的设置都保
20、存在配置文件中,不同设置保存在不同的节(section)下,机器端在启动时会自动加载配置文件的内容,保存机器端设置的同时也会保存到配置文件中。(3) 拨打电话和发送求助短信是利用GSM模块实现的,开发板和GSM模块的数据交互是通过串口。这里本人使用的是网上开源的qt串口读写库,机器端在初始化的时候打开串口并对串口参数进行设置,学习sim900开发手册后,按照说明使用AT指令集完成发送短信的操作。(4) 网络通信使用的是socket,机器端在运行时就开放端口并开始监听。为了实现手机对多个机器的连接,由手机端发起socket连接请求后,机器会对id进行验证,验证通过后才能建立连接,然后双方开始自动
21、同步信息如校对时间、离线时更改的设置等,建立连接后修改的设置会立即同步。socket通信时,数据包都是按照规定的格式进行打包和解包的,接收的数据包会进行完整性验证,无效的数据包会丢弃。(5) 本系统拥有国际化支持,qt自带Qt语言家工具可供更新和发布语言文件,用于本系统在不用环境下的使用。1.4本文的组织结构本文共分六章,具体的内容组织如下:第一章:引言,介绍本系统的研究背景,并根据文献资料,介绍到目前国内外智能安防设备的发展情况,并简述本文研究内容。第二章:系统可行性分析及功能需求,根据当前发展现状,简述本系统的需求,并根据需求进行分析。第三章:开发环境的介绍,介绍开发需要的软件和硬件环境。
22、第四章:系统模块设计与实现,主要根据功能需求,设计实现本模块所涉及的功能,并作代码分析。第五章:系统控制模块运行于测试,主要根据系统的设计,对各功能模块进行测试。第六章:论文结束语。最后是致谢与参考文献。2. 系统分析2.1可行性分析本课题的可行性分析主要对社会、技术、经济方面的研究来确定系统的可行性,根据研究的结果提出可行的解决方案,实现系统的各项功能,具体分析如下:(1) 社会可行性:自从2014年智能硬件的兴起,智能安防设备逐渐成为电子产品的热点,越来越多的创业者和开发者加入了智能安防设备的大军,而智能门禁系统则是结合传统安防以及智能互动之后出来的产物,在目前有很大的市场。(2) 技术可
23、行性:市场上已经有多款智能安防设备,上面集成了多种传感器,能够检测数据并实时传输给手机。说明目前的技术已经可以实现将传感器集成到门禁系统上,进行数据的采集。本人选择的开发板具有足够的性能,也有丰富的传感器提供测试和研究,开发板上有多组不同功能的接口,并且官方提供拓展板来解决更高的接口需求,其上搭载的Ubuntu系统是非常优秀的开源系统,能完成大量的功能定制。(3) 经济可行性:PcDuino开发板性能足够胜任日常开发使用,配套的开发工具都是免费开源的,大大降低了开发成本,传感器及线材等开发成本都在接受的范围内。在开发后期的维护中,系统不需要大量的开支,而开发完成产生的收益远大于前期开发成本,所
24、以本系统在经济上是可行的。2.2功能需求分析本人所负责的是通信模块的设计与实现以及信息的处理和保存,需要实现的功能需求主要是以下几点:(1) 系统要能够提供接口,控制GSM模块实现发送短信的操作。具体在机器端的体现是,当人脸识别超时之后自动发送短信。控制GSM模块需要实现串口通信,sim900开发手册的学习,熟悉AT指令集的使用。(2) 为了实现手机端对多个机器的连接,机器在接收到手机端的连接请求的时候,要对机器的ID进行验证。在数据传输的时候,要对数据包的完整性进行验证,防止出现数据包的损坏导致数据出错。数据包中要包含要执行的操作以及要操作的数据,以便提取对应的操作号和数据。2.3系统用例分
25、析2.3.1系统用例概述用例分析是从用例模型到分析模型的过程,是需求与设计之间的桥梁。用例分析把系统的行为分配给分析类,让分析类交互完成系统的行为。用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的视图。用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。将每个
26、系统中的用户分出工作状态的属性和工作内容,方便建模,防止功能重复和多余的类。用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。2.3.2用例分析在本次设计中,智能门禁系统主要包括设备管理、人脸信息管理、号码管理等几类功能。其中设备管理,管理对应设备的信息,可以添加、修改、删除设备信息。人脸信息管理,管理智能门禁系统所要验证的人脸信息,可以识别、添加、删除人脸信息。号码管理,管理号码的信息,可以增加、修改、删除号码信息,访客可以通过验证人脸信息来决定能否打开门进入。本次设计总体用例图如图2-1所示。图2-1智能门禁系统总体用例图3. 总体设计3.1总体框图
27、智能门禁系统的主要分为红外测距、语音播报、人脸检测与识别、GSM通信等四大模块,总体框图如图3-1所示。图3-1智能门禁系统总体框图3.2工作流程图智能门禁系统在经过系统初始化之后,通过红外测距模块检测到是否有人靠近门禁系统。检测不到重复此过程,监测到有人靠近则调用语音播报模块提醒访客将脸部靠近摄像头进行人脸获取、定位、特征提取等采集工作,将特征进行比对判断是否符合原始数据中的人脸信息,如若符合则进行开门、安全检查、关门等操作,反之将等待室内人员响应,如果响应超时则调用GSM通信模块将信息发送到指定的号码之中,提醒门口访客情况。具体工作流程图如图3-2所示图3-2智能门禁系统工作流程图3.3嵌
28、入式系统设计方法嵌入式计算系统将必须紧密工作的硬件和软件相结合。系统体系结构一旦确定,硬件和软件可以相对独立地进行设计。协同设计的目标是做出恰当的体系结构决策,允许在以后的实现阶段中独立完成。好的体系结构决策需要恰当的分析方法,因为它们必须满足严格的度量标准,例如实时性能和功耗。硬件/软件划分选取体系结构,其中一些操作直接由硬件完成,而另一些则由运行在可编程平台上的软件完成。硬件/软件划分生成可以独立实现的模块设计。那些模块随后结合,进行性能或功耗测试,并调试以创建最终的系统。3.3.1系统软硬件协同设计流程软硬件协同设计是指对系统中的软硬件部分使用统一的描述和工具进行集成开发,可完成全系统的
29、设计验证并跨越软硬件界面进行系统优化。传统协调流程如图3-3所示。图3-3传统设计方法设计流程图3.4数据库设计数据库在一个系统中占有非常重要的地位,数据库结构设计的好坏直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。3.4.1.E-R图(power designer)本次系统设计中,根据设计规划处的实体有:主人实体、号码实体、人脸信息实体,门禁设备实体、访客实体,总体E-R图如3-4所示。图3-4智能门禁系统总体E-R图4 .系统开发环境构建4.1硬件开发环境介绍本系统主要使用的硬件设备是PcDuino 开发板。PcDuino
30、是一种高性能,高性价比的迷你PC 的平台,拥有非常丰富的接口,如下图所示。能够运行PC操作系统,如Ubuntu 和Android 的ICS 等。通过PcDuino 可以内置HDMI 接口输出视频到电视或显示器屏幕。PcDuino接口图PcDuino 的硬件性能指标远超树莓派,性能稳定,做工精良。PcDuino 的CPU 采用1GHz ARM Cortex A8 内核,DRAM 为1GB,板载存储达到2GB Flash。另外,PcDuino可以从NAND 或者从mini-SD 卡(TF 卡)启动,在NAND Flash 内有出厂预装的ubuntu系统,可方便使用。PcDuino硬件参数如下图所示
31、PcDuino硬件参数图4.2软件开发环境介绍4.2.1建立C语言开发环境在进行PcDuino开发之前,首先需要获取PcDuino的C语言环境,也就是Arduino程序的底层支持包。PcDuino官方将C环境放在Github的网站上,使用者可以通过web网页或者Git工具自由下载。Ubuntu默认不集成Git,因此需要手动下载安装Git,命令如下:sudo apt-get install git安装完成后,跳转到用户目录/home/Ubuntu,并使用Git工具获取PcDuino的C语言开发环境,命令如下:cd git clone 使用Git工具的过程中可能由于PcDuino的时间与服务器的时
32、间不同步,需要更新系统时间:sudo date -s 2016/1/1sudo date -s 22:10:00接下来可以在用户目录下看到C语言开发环境了。4.2.2建立Qt开发环境Qt是一个1991年由奇趣科技开发的跨平台C+图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。接下来介绍如何在PcDuino上安装QT(以下操作都是在终端上执行,执行前要确保PcDuino能上网):apt-u
33、pdate(1分钟左右)Qt Creator的安装(10分钟左右)Qt4-dev-tools的安装(1分钟左右)Qt4-qmake的安装(1分钟左右)Libqt4-dev的安装(1分钟左右)Mysql-client的安装(2分钟左右)5功能模块的设计与实现智能门禁系统本人主要负责红外测距与通信模块的设计与实现,在本文中将对通信模块进行详细的叙述。智能门禁系统的通信模块主要包括两个个子模块:GSM模块,通过串口通信实现拨打电话和发送短信; socket通信模块,在机器端和手机端建立socket连接进行信息传递;通信模块总体框架如图5-1所示。图5-1系统框架图5.1GSM模块5.1.1GSM模块
34、(ATK-SIM900A)介绍ATK-SIM900A模块是ALIENTEK开发的一款高性能工业级GSM/GPRS模块(开发板),接口丰富,功能完善,尤其适用于需要语音/短信/GPRS数据服务的各种领域,如图5-2以及图5-3所示:图5-2ATK-SIM900A资源图图5-3ATK-SIM900A特性图5.1.2SIM900A介绍SIM900A模块如图5-4所示是一款尺寸紧凑的GSM/GPRS模块,采用SMT封装,基于STE的单芯片案,采用ARM926EJ-S架构,性能强大,可以内置客户应用程序。可广泛应用于车载跟踪、车队管理、无线POS、手持PDA、智能抄表与电力监控等众多方向。图5-4SIM
35、900ASIM900A模块主要特点:SMT封装:易于客户生产加工尺寸小: 24*24*3mm功耗低:待机模式电流低于18mA、sleep模式低于2mA供电范围宽:3.24.8V支持频段:GSM/GPRS 900/1800MHz语音编码:支持半速率、全速率、增强型速率支持回声抑制算法,可以基于不同客户设备通过AT命令调节回音抑制消除。5.1.3GSM模块使用介绍将GSM模块串口连接到PcDuino的USB接口,电源接口连接上电源,按下电源开关,此时红灯亮起。按下powerkey约2S后,可以看见一盏红灯常亮,一盏红灯闪烁。当红灯闪烁频率为100ms亮500ms灭的时候,说明SIM卡还未注册成功,
36、正在搜寻网络;当红灯闪烁频率为100ms亮1S灭的时候,说明SIM卡已注册上网络了。5.1.4AT命令介绍我们用到AT+CMGS指令来发送短信,发送全英文/数字短信的时候,我们先设置为:GSM字符集(AT+CSCS=GSM),文本模式(AT+CMGF=1)。假设我们要给手机号:15261*0,发送一条短信,则发送:AT+CMGS=15261*0,然后模块返回:,此时我们输入我们需要发送的内容: SIM900A_V1.0 Send English SMS Test.,注意,此可以不用发送回车了。在发送完内容以后,最后以十六进制(HEX)格式单独发送(不用添加回车):1A(即0X1A)1,即可启动
37、一次短信发送。注1:0X1A,即“CTRL+Z”的键值,用于告诉SIM900A,要执行发送操作。另外还可以发送:0X1B,即“ESC”的键值,用于告诉SIM900A,取消本次操作,不执行发送。稍等片刻,在短信成功发送后,模块返回如:+CMGS:7,的确认信息,表示短信成功发送,其中7为模块内部的短信计数器,一般不用理会。5.1.5GSM功能实现短信发送分为多步,将AT指令一条条先后发送给串口,中间必须要加延时,因为GSM同一时间只能执行一条语句。void MainWindow:SendMessage() /发送短信 QString phone_Num; phone_Num = Data:s_P
38、honesos; phone_Num.prepend(AT+CMGS = +86); phone_Num.append(r); com_Gsm-write(AT+CSCS=GSMr); delay(100); com_Gsm-write(AT+CMGF=1r); delay(100); com_Gsm-write(phone_Num.toLatin1(); delay(100); com_Gsm-write(QString(门口有人).arg(Data:s_Nickname).toLatin1();/the content of the message delay(100); com_Gsm-
39、write(QString(032).toLocal8Bit();/the ASCII code of the ctrl+z is 26 delay(100); qDebug()SOS message has send!;5.3socket通信模块5.3.1数据包格式Socket通信的数据包是以一定的格式封装起来,用于校验、提取操作号以及要操作的数据,如下表所示。手机端数据包格式操作号操作名称数据包格式数据位数001连接请求操作号|机器id|数据长度101|0001|000143|4|5002同步时间操作号|日期|时间|数据长度002|2015/12/31|02:54:00|000293|10
40、|8|5003同步手机号操作号|手机1|手机2|手机3|SOS号|数据长度003|157xx|157xx|157xx|157xx|000573|11|11|11|11|5004同步用户名操作号|用户名|数据长度004|Ederth|000163|6|5机器端数据包格式操作号操作名称数据包格式数据位数101响应连接请求操作号|响应代码|数据长度101|1|000113|1|5102机器安装状态操作号|安装状态|数据长度102|1|000113|1|55.3.2Socket建立连接Socket建立连接由手机端发起,手机端除了填写机器的IP和端口号来建立连接,还要填写机器的ID。机器端接收到连接请求
41、时,提取数据包中的机器ID和本机的机器ID进行比较,如果一致才能允许建立连接。void MainWindow:ConnectCheck() /验证连接 QString id = socketMessageR.mid(4, 4); socketMessageS = 101|1|00011; if(id = Data:s_Id) SendSocketMsg(socketMessageS); qDebug() socketMessageS; qDebug() 连接建立成功; lightSensorState = digitalRead(LIGHTSENSOR_PIN); /第一次连接后同步状态 if
42、(lightSensorState) SynchroLightonState(); else SynchroLightoffState(); SynchroTemperature(); 5.3.3数据包的处理这里以同步手机号为例,讲解数据包的处理过程。1 打包手机端修改好号码之后点击保存,手机端会调用同步手机号码的函数进行数据包的打包然后发送。void watch:SynchroPhone() socketMessageS = (003|); socketMessageS = socketMessageS + phone1 + | + phone2 + | + phone3 + | + pho
43、nesos; QString tmp = QString:number(socketMessageS.size()+6); tmp = tmp.rightJustified(5, 0); socketMessageS = socketMessageS + | + tmp; qDebug()readAll(); qDebug()qba; socketMessageR = QVariant(qba).toString(); /转成String if(socketMessageR.right(5).toInt() = socketMessageR.size() /校验数据长度 SocketHandl
44、eList(); else qDebug()socket数据包异常;3 提取操作号确认数据包是完整的之后,机器端会提取数据包中的操作号,然后到操作列表里找到对应的操作去执行。void MainWindow:SocketHandleList() /socket 处理列表 int handleCode = socketMessageR.left(3).toInt(); switch(handleCode) case 1: ConnectCheck(); break; case 2: SynchroTime(); break; case 3: SynchroPhone(); break; case 4: SynchroNickname(); break; default: qDebug()SocketHandleList dont find handleCode; 4 解包数据包提取数据在对应的操作函数中,系统会根据数据包格式自动提取要操作的数据,完成操作。void MainWindow:SynchroPhone() /同步电话号码 Data:s_PhoneM =