使用的是webs-2-5(goahead),相关的安装包和解压就不再描述了,下面主要介绍搭建过程
1.解压之后有如下几个目录,其中LINUX是我们需要用的,www目录是系统默认的网站根目录,wwwdemo是demo目录
2. 输入命令 cd LINUX/ 打开MakeFile文件,添加如下
CC = arm-hisiv400-linux-gcc
STRIP = arm-hisiv400-linux-strip
AR = arm-hisiv400-linux-ar
编译选项中加入宏定义 -DUSER_MANAGEMENT_SUPPORT -DASSERT,开启用户管理,这样系统才支持用户登录。
这一步主要是配置交叉编译工具,我们使用的是arm-hisiv400-linux-gcc。
3.找到main.c文件修改如下
/* * Define the local Ip address, host name, default home page and the * root web directory. */ /*if (gethostname(host, sizeof(host)) < 0) { error(E_L, E_LOG, T("Can't get hostname")); return -1; } if ((hp = gethostbyname(host)) == NULL) { error(E_L, E_LOG, T("Can't get host address")); return -1; } memcpy((char *) &intaddr, (char *) hp->h_addr_list[0], (size_t) hp->h_length);*/ intaddr.s_addr = inet_addr(T("192.168.1.10"));
3. make编译
4.开启用户管理
在webs的执行目录下新建umconfig.txt,添加如下内容
TABLE=users ROW=0 name=admin password=KZF group=admin prot=0 disable=0 TABLE=groups ROW=0 name=admin priv=4 method=3 prot=0 disable=0 TABLE=access ROW=0 name=/ //这个地方限制根目录访问需要权限 method=3 // method 为0表示不能访问,1表示不需要密码,2表示需要密码,3表示密码加密 secure=0 group=admin
这样访问网页的时候就需要登录密码
4.前后端使用ajax交互,在main.c中添加ajax定义
websUrlHandlerDefine(T("/ajax"), NULL, 0, websAjaxHandler, 0); websUrlHandlerDefine(T("/goform"), NULL, 0, websFormHandler, 0); websUrlHandlerDefine(T("/cgi-bin"), NULL, 0, websCgiHandler, 0);
定义ajax处理函数
websAjaxDefine(T("getHdmiInfo"), getHdmiInfo); static void getHdmiInfo(webs_t wp, char_t *path, char_t *query);
前端请求如下:
if (IsValidate() == true) { var hostip = window.location.host; var used = $("#StreamSle").val(); var cbr_Bitrate = $("#BitrateTxt").val(); var vbr_MinQp = $("#MinQpTxt").val(); var vbr_MaxQp = $("#MaxQpTxt").val(); var vbr_MaxBitrate = $("#MaxBitrateTxt").val(); var method = $("#MethodSle").val(); var fps = $("#fpsTxt").val(); $.ajax({ type: "GET", url: "http://" + hostip + "/ajax/setHdmiInfo?fps="+ fps +"&used="+used +"&cbr_Bitrate="+cbr_Bitrate+"&vbr_MinQp="+vbr_MinQp+ "&vbr_MaxQp="+ vbr_MaxQp+"&vbr_MaxBitrate="+ vbr_MaxBitrate+"&method="+method, success: function(data) { if (data == "succeed") { alert('设置成功,请重启设备!'); } else { alert('设置失败!'); } } }); }后台会调用getHdmiInfo()函数,相应的处理代码在其中完成。