嵌入式web服务器子系统
一.嵌入式web服务器的控制流程
如下图所示,嵌入式web服务器可实现通过网络远程控制嵌入式开发板,便捷实用。
控制流程:
1.用户浏览器--(请求连接)-->>web服务器;
(web服务器包含a.供浏览器登录的网页界面程序,b.供服务器调用的CGI程序(扩展服务器功能))
2.浏览器登录web服务器指定的网页界面,给予指令->调用设定的CGI程序进行控制;
3.获取的返回结果->web服务器发送到网络中,用户即可通过浏览器远程获取数据信息。
--------------------------------------------------------------------------------------------------------------
二.嵌入式web服务器->BOA的移植、cgi库移植 --->>>应用
1)BOA:下载BOA服务器并解压 -> 更改Makefile文件中的交叉编译器arm-linux- -> make即生成boa应用程序、boa_conf脚本配置文件;
2)cgi库:修改Makefile的交叉编译器arm-linux-,make生成库文件libcgi.a移动至/rootfs/lib/下即可;
3)修改boa_conf配置文件中的配置项,如:指定网页界面设计文件/web/~.html、菜单跳转cgi程序源目录/web/cam/~.cgi。
开发板运行" #boa ",浏览器登录开发板ip-192.168.1.2,即可登录嵌入式web服务器的网页设计界面。而后启动移动物体监控主系统" motion -c motion_dist_conf ",即可登录服务器,通过网页界面发送指令调用相应CGI程序,在界面获取监测到的移动图像及视频信息。
------------------------------------------------------------------------------
--->>>其中,网页界面.html、获取监控图片和视频的cgi程序开发
网页界面:在原有的.html程序基础上进行修改,仅修改:" class = "menu" href="/cam/movie.cgi" ,即界面菜单文字---跳转后的网页/cgi运行程序;
cgi程序 :主函数cgiMain()下,
1)print_file(cgiOut,"../top.html"); //加头,将top.html内容打印到cgiOut
2)total = list_pic("/mnt/sd","jpg"); //将图片加入显示列表
3)if (cgiFormSubmitClicked("gopage") == cgiFormSuccess) { //处理用户的选择请求
4)show_pic(start,end,total); //显示图片
5)print_file(cgiOut,"../bottom.html"); //加尾,将bottom.html内容打印到cgiOut
arm-linux-gcc -L ./cgic205/ -lcgi movie.c -o movie.cgi
--------------------------------------------------------------------------------------------------------------
嵌入式web服务器程序设计---流程:
移植BOA服务器,移植CGI库 -> 设置网页界面程序 .html、cgi监控程序 -> 配置boa_conf配置文件,指定浏览服务器网页界面文件、及菜单跳转的cgi程序 -> 启动motion 、boa -> 浏览器登录web服务器的ip(开发板ip)即可。