基于linux-qt的智能家居系统设计

基于linux-qt的智能家居系统设计

ID:12445530

大小:32.00 KB

页数:9页

时间:2018-07-17

基于linux-qt的智能家居系统设计_第1页
基于linux-qt的智能家居系统设计_第2页
基于linux-qt的智能家居系统设计_第3页
基于linux-qt的智能家居系统设计_第4页
基于linux-qt的智能家居系统设计_第5页
资源描述:

《基于linux-qt的智能家居系统设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于Linux/Qt的智能家居系统设计针对智能家居的特点及应用背景,设计了一种家庭多功能控制系统。该系统采用飞思卡尔公司armCortexA8系列的i.MX51处理器作为MCU,在其上移植嵌入式Linux作为软件开发平台,并利用Qt相关技术为基础设计友好的用户界面,实现了arm板的各功能模块与服务器端的交互。系统同时具备数字可视对讲、信息收发、家电控制、安防报警、家庭娱乐等功能。1系统的架构和功能家庭智能控制系统主要由室内分机、单元门口机、小区围墙机、管理中心终端机、管理中心服务器以及附件组成。系统采用分布式网络

2、结构,可以根据住户数量对系统的容量进行扩充。(1)室内机是用户在室内进行操作的主要平台,其功能组成为:可视对讲、信息服务、家电控制、安防报警、家庭娱乐等。可视对讲模块主要实现双向可视通话、视频监控、留言/留影、开锁等功能;信息服务模块主要用来收发物业信息和小区广播,支持文本、图片形式,并实现与可视对讲模块的影音共享;家电控制模块包括对灯光、窗帘、空调、电梯等设施的无线控制,并预设了情境模式;安防报警模块支持对烟感、门磁、煤气泄漏检测等的自动报警,并可通过GPRS/3G技术将报警信息传送到用户手机上;家庭娱乐模块支

3、持常见格式的音视频文件的播放(主要依靠硬件解码)以及对常见格式的图片的浏览(电子相框)。(2)单元门口机的主要功能是完成与所在单元楼的任意住户以及管理中心机的可视通话,除了具备留言/留影功能外,还提供触摸屏校准、背光调节、密码设置等功能。(3)围墙机的基本功能和单元门口机类似,但可视对讲、留言/留影功能是针对小区内所有住户的。(4)中心机是整个系统的神经中枢,管理人员通过管理中心的控制设备管理各子系统的终端,其功能包括:可视对讲、视频监控、查看报警信息、排除设备故障、信息服务、系统设置、远程管理等。2系统的实现方

4、案2.1Qt的信号/槽机制Qt是一个跨平台的C++应用程序框架,完全面向对象、易于扩展且允许真正的组件编程。Qt的C++类库封装了适应不同操作系统的访问细节,这使得它能够快速地部署于各种桌面与嵌入式系统中[1]。信号/槽机制是Qt的核心特性,这种机制真正实现了消息的封装,完全可以取代原始的回调和消息机制。信号和槽的连接通过connect()函数完成,connect()函数是QObject类中的静态函数,其函数原型如下:BoolQObject::connect(constQObject*sender,constch

5、ar*signal,constQObject*receiver,constchar*member)其中,sender和receiver是指向QObject的指针,signal和slot是不带有参数的函数名。2.2基于XML格式的Socket多线程通信Linux中的网络编程主要通过Socket接口实现,在Qt环境里,对Socket进行了封装,并建立了相应的QTcpSocket类来实现TCP客户端和服务器的通信。QTcpSocket继承了QIODevice,所以QTcpSocket可以使用QDataStream进行数

6、据的读取和写入。可扩展标记语言XML(eXtensibleMarkupLanguage)是一种用于数据交换和数据存储的多用途文本格式。对于XML格式的数据,Qt中的QtXml模块提供了DOM和SAX两种处理方式。本文采用的DOM方式把XML文档转换成一个可以遍历的树形结构,这样便可以随意访问其中的节点,因此要明显简洁得多。室内机和中心机之间的通信采用多线程方式实现。多线程方式具有降低内存、提高程序响应速度等优点,特别适用于嵌入系统。系统中建立了三个主线程:(1)GUI线程:用于执行main()主函数,响应用户的界

7、面操作;(2)tcpServer侦听线程:用于对指定端口进行监听;(3)tcpSocket传输线程:负责消息的接收和回复。下面以用户主动更新小区广播为例详细说明Socket通信的流程:(1)室内机首先启动一个线程,将用户的更新请求结构转化成标准的XML格式(如果是新设备第一次开机,要先手动进行IP的设置),(2)调用connectToHost()函数请求与中心机建立连接,处于监听状态的中心机接到请求后,就会分配一个Socket套接字来处理连接:首先根据解析出来的XML的Type节点判断请求类型,如果是纯文本则从数

8、据库的Text表读取,如果是图片则从硬盘读取,然后调用QIODevice::write()函数发送;(3)室内机接到应答信号readyRead()后就开始进行信息的收取,根据消息的Type节点类型分别写入数据库和硬盘。Socket多线程通信流程如图1所示。2.3并行数据库设计为了实现数据库的并行操作,使GUI界面与数据库相分离,从而让界面能更快地响应用户的一般操作,同样要

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。