一种嵌入式无线智能家居网关系统的设计方案
本次网关系统的应用软件架构图4所示。其主要功能是依据传感器配置文件,分类解析WSN中的数据,为用户提供Socket数据服务和XML-RPC远程调用服务。其工作流程是:网关程序启动以后,从XML文件夹中解析所有的传感器配置文件;*串口数据,利用传感器配置文件解析数据生成XML数据流;创建Socket服务器,等待客户端数据请求,提供XML格式的Socket服务;创建XML-Socket远程调用服务器,完成用户的XML请求。
图4 网关系统的软件架构
程序设计思路如图5所示:网关程序启动,完成参数初始化,解析XML文件夹下的所有传感器配置文件,创建3个类的实例。4个任务队列。Serialcomm类创建两条线程用读串口和写串口,这样可以保证数据的实时性。基于同样的道理,XMLParser类和XMLComm类也是双线程并行工作。这样就组成了从WSN和Internet的上行通道(图5中的虚线表示),以及Internet到WSN的下行通道(图5中的粗线表示)。
图5 网关应用设计思路图
4.4 人机接口模块的设计
人机接口使用的是项目中使用的触摸屏是240×320 TFT彩屏LCD。该模块主要设计以下4个菜单供用户操作:文件菜单,查询菜单,报警菜单和管理菜单。这部分的设计使用Qt设计。Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司开发,目前包括Qt/X11、基于Framebuffer的Qt/Embedded、快速开发工具Qt Designer以及国际化工具Qt Linguist等。Qt的良好封装机制使其模块化程度非常高,可重用性较好,对于用户来说非常的方便。Qt API和开发工具对所有支持平台都是一致的,从而可以进行独立于平台的程序开发和配置。它使得跨平台软件编程直观、简易和方便。
本文所有的可视化界面都是通过Qt自带的工具Qt designer设计,它是一个可视化的界面设计工具,对于其每个组件内部的关系通过编写代码来实现。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论