嵌入式server构建

使用的是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()函数,相应的处理代码在其中完成。


猜你喜欢

转载自blog.csdn.net/weixin_36704535/article/details/79753415