APP下载

基于LuCI框架的MIFI的Web远程管理系统

2014-09-18黄俊伟黄一峰

电视技术 2014年3期
关键词:配置文件文件夹浏览器

吴 恋,黄俊伟,黄一峰

(重庆邮电大学新一代宽带移动通信终端研究所,重庆 400065)

MIFI这个名字代表“My WiFi”,即为用户提供随时随地的随身WiFi,是近年来市场上火热的一种便携式WiFi热点终端。它具有小巧便于携带的特点,集调制解调器、路由器和接入点三者功能于一身,可利用SIM卡连接互联网,将SIM卡接收到的移动通信网络信号(LTE/3G/2G)以IEEE802.11无线通信标准WiFi网络的形式分享出来供上网设备连接上网,实现随身WiFi[1]。对MIFI设备的管理配置与路由器的管理相同,都是通过Web远程管理设备。本文基于LuCI框架设计与实现一款MIFI的Web远程管理系统。

1 设计目标

本文实现的这款MIFI有两个操作系统,一个是基带相关的实时操作系统,决定了产品设备能支持什么样的网络(GSM,CDMA,WCDMA,TD-SCDMA,LTE);另一个是Linux内核的路由操作系统,是主控系统,负责与基带通信将网络信号转为WiFi信号,以及其他诸多功能。关于MIFI的设计与实现这里不展开说明,本文主要就基于Lu-CI框架来设计与实现这款MIFI的Web远程管理系统作讨论。

预实现的目标见表1。

表1 预期实现的目标

2 软件系统的设计与实现

2.1 LuCI环境搭建

参照Openwrt的方式搭建LuCI环境,Openwrt中的Web系统主要由3部分组成——LuCI部分(主要的业务功能)、www部分(Web server启动目录,基本所有的js,css都在里面)、config部分(配置文件,Web界面上的很多操作就是对相应的配置文件进行读取、修改)。

环境的搭建:

1)所需下载的软件包:lua,luci。

2)组件luci文件夹:把luci运行所需要的库放到luci文件夹根目录。

3)建立动态连接库:有一些.so需要C库的支持,比如 uci.so 需要 libuci.so.0.8 等,需搬移安装。

4)建立config文件夹:在/etc/config/下面建立配置文件。

5)移植Web服务器:把已经编译好的uhttpd拷贝到相应的bin下面。

6)组件www文件夹。

2.2 总体分析

借助LuCI框架开发一套MIFI的Web远程界面、建立物理逻辑连接,实现对MIFI系统的状态显示和远程控制。根据其功能需求可知系统大致包括5个模块,每个模块下有各自对应需求的选项设置,如图1所示。

图1 LuCI app整体框架

为了看到代码修改效果的实时性,这里是以镜像烧写到实验板上,当然也可以在编译前的LuCI源码包中去修改代码。

2.3 LuCI中添加新模块

在controller下创建一个一级选单项及节点,controller下一个文件对应一个选单项,在controller的管理用户目录下新建一个lua文件,例如wifi.lua。

在model或view下编写节点对应的显示页面,对应controller下lua文件中调用到的cbi,template等在model或view目录下建立相应的调用文件。

若创建了model下的文件,还需根据该lua文件操作的配置文件名称在config中添加同名的配置文件。配置文件是Web远程控制的关键,用户在浏览器上对MIFI的操作最终体现在改变MIFI配置文件中的参数,并使其执行当前的配置。

2.4 在已有模块里添加/删除节点

在LuCI已有的模块中根据需要添加或删除某节点的方法如下:

1)在LuCI代码中找到对应的模块文件,一般就是controller下面的lua文件;

2)在模块的入口函数function index()中添加或删除一个entry(path,target,title=nil,order=nil),根据entry函数中的target到对应的model或view下编写或删除同名的文件。

2.5 物理连接的建立

远程控制的过程是浏览器端网页界面通过http与MIFI中的httpd通信,httpd通过cgi接口与LuCI通信,然后通过UCI接口将数据传送到相应的配置文件中保存并通知相应模块执行相关操作[5-6]。以实际WiFi设置为例,当用户在Web页面上修改了ssid后点击页面的“确定”按钮,将执行传递数据到config下的WiFi配置文件中option‘ssid’处,并执行 set_wireless.sh 这个脚本,该脚本为笔者编写的shell脚本,主要实现将WiFi芯片重启并到WiFi配置文件中重读参数的功能。“确定”按钮点击后的所有操作均在cbi.lua中添加,部分代码如下:

2.6 浏览器兼容性问题考虑

界面的风格主要是css和js类控制,相关文件在根目录www/luci-static里面。现在的网页设计都是将内容与表现形式分离,css提供了对网页布局和设计的创造性控制,不仅维护站点更加容易,而且还可以使HTML代码更加简练,缩短浏览器的加载时间。css与HTML共同起作用,但css不是HTML,它是一种完全不同的语言,浏览器不同,其引擎也不同,对css的解释也不一样,导致在有些浏览器上展现的效果并非预期,甚至更糟,所以浏览器间的兼容性问题值得思考。

各浏览器可以识别的特定代码[7]情况见表2。

表2 主流浏览器特定代码识别情况

3 测试验证及成果展示

测试验证结果见表3。

表3 测试验证

成果展示如图2所示。

4 总结

利用LuCI框架设计与实现了一款MIFI产品的Web远程控制系统,详述了实现的方法及关键点,提供了一种快速构建嵌入式设备的Web远程管理系统的方案。经验证,本远程Web管理系统成功实现了在Web上远程查看MIFI系统状态信息及对其的设置,且系统稳定、响应迅速。经实践可知,LuCI虽然是为openwrt快速配置而生,但还可单独将它应用于其他很多系统和场景中,并延伸出另一个灵活的lua Web框架。

图2 最终实现的Web远程控制系统部分展示图(截图)

:

[1]Wikipedia.MIFI[EB/OL].[2013-04-26].http://en.wikipedia.org/wiki/MIFI.

[2]Open Wrt.Open Wrt wireless freedom[EB/OL].[2013-04-26].https://Openwrt.org/.

[3]LuCI.LuCI[EB/OL].[2013-03-11].http://LuCI.subsignal.org/.

[4]张志贺.LuCI框架的简介[EB/OL].[2013-04-20].http://blog.csdn.net/zzhjava2006/article/details/6315970.

[5]王海龙,徐晓辉.基于嵌入式 Web服务器的远程控制系统的实现[J].电子设计工程,2010(5):101-103.

[6]南春辉.基于Web技术的嵌入式智能家居系统设计[J].电视技术,2013,37(3):86-89.

[7]蒋回生.浅谈网页制作中浏览器差异性——样式兼容问题[J].电脑知识与技术,2010,06(27).

猜你喜欢

配置文件文件夹浏览器
互不干涉混用Chromium Edge
反浏览器指纹追踪
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
摸清超标源头 大文件夹这样处理
为View桌面准备父虚拟机
调动右键 解决文件夹管理三大难题
挂在墙上的文件夹
环球浏览器
不容忽视的空文件夹