基于Linux/Qt的智能化家居系统软件设计构思

admin 0 条评论 2020-05-25 11:33

对于智能化家居的特点及应用背景,设计构思了这种家中多作用操纵系统软件。该系统软件选用飞思卡尔公司ARMCortexA8系列货品的i.MX51解决器做为MCU,在其上移植嵌入式Linux做为软件开发设计构思服务平台,并应用Qt相关技术性为基本设计构思友好的消費者界面,维持了ARM板的各作用模块与服务新项目器端的交互。系统软件一起具有数字可视对讲、信息内容收发、家电操纵、安防报警、家中娱乐等作用。

基于Linux/Qt的智能化家居系统软件设计构思

特别提示:本文来自互联网,仅供需求者学习参考,如有异议或其他问题请联系我们,我们会在第一时间处理,本公司是系统软件开发公司,非平台方,玩家勿扰!!

1系统软件的架构和作用

家中智能化操纵系统软件关键由房间内分机、单元门口机、小区围墙机、管理方法 中心终端机、管理方法 中心服务新项目器以及附件构成。系统软件选用分布式互联网技术构造,能够 根据住户总数对系统软件的容量进行扩充。

(1)房间内机是消費者在房间内进行具体操作的关键服务平台,其作用组变为:可视对讲、信息内容服务新项目、家电操纵、安防报警、家中娱乐等。可视对讲模块关键维持双向可视通话、视频监控、留言/留影、开锁等作用;信息内容服务新项目模块关键用于收发物业信息内容和小区广播,适用文本、图片方式,并维持与可视对讲模块的影音共享;家电操纵模块包括对灯光、窗帘、空调、电梯等设施的无线操纵,并预设了情境方式;安防报警模块适用对烟感、门磁、煤气泄漏检验等的全自动报警,并可根据GPRS/3G技术性将报警信息内容传送到消費者手机上上;家中娱乐模块适用广泛格式的音视频文件的播放(关键借助硬件解码)以及对广泛格式的图片的浏览(电子相框)。

(2)单元门口机的关键作用是进行与所在单元楼的任意住户以及管理方法 中心机的可视通话,除开具有留言/留影作用外,还出示触摸屏校准、背光调整、密码设置等作用。

(3)围墙机的基本作用和单元门口机相近,但可视对讲、留言/留影作用是对于小区内所有住户的。

(4)中心机是所有系统软件的神经中枢,管理方法 工作中人员根据管理方法 中心的操纵机器设备管理方法 各子系统软件的终端,其作用包括:可视对讲、视频监控、查询报警信息内容、排除机器设备故障、信息内容服务新项目、系统软件设置、远程管理方法 等。

2系统软件的维持计划方案

2.1Qt的信号/槽机制

Qt是壹个跨服务平台的C++应用程序框架,彻底面向对象、有利于扩展且容许真实的组件编程。Qt的C++类库封装了融进不同具体操作系统软件的访问关键点,这促使它能够 快速地部署于各式各样桌面与嵌入式系统软件中。

2.2基于XML格式的Socket多线程通信

Linux中的互联网技术编程关键根据Socket接口维持,在Qt自然环境里,对Socket进行了封装,并建立了相对的QTcpSocket类来维持TCP消費者端和服务新项目器的通信。QTcpSocket继承了QIODevice,因此QTcpSocket能够 应用QDataStream进行统计数据的读取和写入。

可扩展标记语言XML(eXtensibleMarkupLanguage)是这种用以统计数据交换和统计数据存储的多用途文本格式。对于XML格式的统计数据,Qt中的QtXml模块出示了DOM和SAX二种解决方法。本文选用的DOM方法把XML文档转换成壹个能够 遍历的树形构造,那般便能够 随便访问在其中的节点,因此要明显简洁得多。

房间内机和中心机中间的通信选用多线程方法维持。多线程方法具有减少内存、提升程序响应速率等优势,非常适用以嵌入系统软件。系统软件中建立了3个主线程:(1)GUI线程:用以推行main()主函数,响应消費者的界面具体操作;(2)tcpServer侦听线程:用以对指定端口进行监听;(3)tcpSocket传输线程:承担信息的接收和回复。下边以消費者积极主动升级小区广播为例详尽说明Socket通信的流程:(1)房间内机樶先启动壹个线程,将消費者的升级请求构造转换成规范的XML格式(倘若是新机器设备初次开机,要先手动进行IP的设置),(2)调用connectToHost()函数请求与中心机建立联接,处在监听情况的中心机接到请求后,就会分配壹个Socket套接字来解决联接:樶先根据解析出去的XML的Type节点分辨请求类型,倘若是纯文本则从统计数据库的Text表读取,倘若是图片则从硬盘读取,随后调用QIODevice::write()函数发送;(3)房间内机接到应答信号readyRead()后就一开始进行信息内容的收取,根据信息的Type节点类型各自写入统计数据库和硬盘。

2.3并行统计数据库设计构思

有利于维持统计数据库的并行具体操作,使GUI界面与统计数据库相分离,从而让界面能更快地响应消費者的一般具体操作,一样要用到Qt的多线程编程。在系统软件启动时,樶先要建立壹个全局对象m_query,有利于于每个实体类与统计数据库类进行联接。那般,每当有统计数据库具体操作请求时便会实例化壹个m_query来建立壹个线程用以解决该请求。m_query对象中包括2个类:(1)QueryThread,用认为每一统计数据具体操作建立壹个线程;(2)Worker,用以维持统计数据库的相关具体操作,如加载统计数据库驱动、进行统计数据查询/插入/删除等。

图2为统计数据库的查询具体操作流程。樶先在实体类里建立2个connect联接,各自用以发送和接收查询結果,并生成SQL语句向QueryThread递交查询请求信号。QueryThread接到请求后为其建立壹个线程,并交由Worker类进行具体统计数据库查询具体操作。Worker类得出查询結果后,先传递给QueryThread,再由其将查询結果返返回实体类。

下一篇:没有了
上一篇:宠物管理方法 系统软件解决计划方案
相关文章
评论
返回顶部小火箭