- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Qt on Android平台的空气质量监测系统手机客户端设计
摘 要 利用Qt on Android平台设计出了一种针对空气质量监测系统的Android手机客户端,该客户端实现了手机与服务器的信息交互,使得用户可以通过手机方便快捷的查询选定监测端当前的空气质量数据,实现了室内环境监测的网络化。同时为C/C++程序员在Android平台开发APP提供了范例。
【关键词】Qt on Android 空气质量 监测 C/S XML
1 引言
Android平台已成为智能手机领域举足轻重的平台,由于其只支持Java开发应用,对C/C++开发的支持有限,大多数C/C++程序员若想进行Android平台的开发只好转型。而Qt on Android的出现为众多C/C++程序员提供了福音。利用Qt Creator可以轻松将Qt程序部署到Android平台上,从而实现Qt在Android平台上的应用。笔者设计了一种针对空气质量监测系统的Android手机客户端,为操作人员提供更加灵活的环境监测手段,随时获取环境信息。
2 手机客户端的软件功能
空气质量监测系统手机客户端的主要作用是按照用户的需求,向服务器发出相应的请求,从而获取当前室内的温度、湿度、光照强度、PM2.5和氨硫类气体等环境数据信息,并对数据进行解析后存储,通过相应的控件在手机上显示出来,从而实现室内环境监测的网络化、智能化。
手机客户端软件主要由用户登录模块、用户注册模块、通信设置模块、室内环境数据显示界面,数据曲线绘制模块等组成。其结构如图1所示。
登录模块:主要实现用户的登录功能。当手机客户端发出登录请求后,服务器匹配用户数据库的信息,若匹配成功,则返回登录成功的指令,进入数据显示界面。
注册模块:为用户提供注册功能。用户确定注册信息后,服务器将用户名和密码信息查询用户数据库中用户是否已存在,若用户名不存在,则完成注册,否则提示用户出错。
网络设置:设置客户端网络连接的服务器IP和端口。
数据显示界面:客户端登录后会实时显示当前时段各个终端的数据情况;点击对应的图标会进入数据曲线显示界面。如图2所示。
客户端中界面设计采用堆栈的思想,使用QStackedWidget类对各个界面进行存放,将不同的widget使用UI控件类将其放进该类的对象中,并进行编号,也可显式编号,默认从0开始。利用Qt中的信号与槽机制(singnals and slots),可以很好的实现各个界面的切换,以界面中的“登录”功能为例,当用户点击“DL_Btn”控件(登录按钮名称)时,控件发出信号clicked(),从而触发与之相关联的槽函数on_DL_Btn_clicked(),在函数中处理登录过程的信息交互,当满足登录条件时,调用setCurrentIndex(int) 来显示该页号的widget。进入数据显示界面。
3 手机客户端与服务器的通信
该平台采用C/S(Client/Server)结构,客户端程序与服务器通过Socket套接字建立TCP/IP连接,从而实现客户端与服务器的网络数据通信。在Qt中QTcpSocket类为TCP提供了一个接口,可以使用QTcpSocket来实现标准的网络协议。
服务器启动后,调用QTcpServer::listen()函数来设置服务器的IP及端口号,如server-listen(QHostAddress::Any,ui-txtPort-text().toInt()),使服务器进入监听状态,等待客户端的连接。配置代码如下:
bool ok=server-listen(QHostAddress::Any,ui-txtPort-text().toInt());//启动监听
客户端负责建立Socket连接,用户输入用户名和密码进行登录后,系统进入Sockt连接槽函数,通过QTcpSocket::connectToHost()函数建立与服务器的连接,同时使用QTcpSocket::waitForConnected()函数设置连接超时时间。Socket连接成功后,服务器就可以接收客户端发出的请求信息,与客户端进行环境信息的交互。部分代码如下:
tcpClient-connectToHost(ui-txtIP-text(),ui-txtPort-text().toInt());//连接服务器
tcpClient-waitForConnected(1000);//连接超时设置
4 手机客户端与服务器间的通讯协议
服务器和手机客户端数据通讯采用的是用TCP/IP传输XML的消息的方式,其帧结构如表1所示。
其中开始表示采用0C55CH,报文内容为X
文档评论(0)