用httpd做服务器,网页控制开发板S3C6410的LED灯。

时间:2022-10-27 12:21:06

开篇简介:

       首先说明,我是个新手,如果有说错的地方,笔下留情。

       写这个的原因是因为在做关于用网页控制LED灯的实验时,查了太多不相关的资料,写这个是为了留作笔记,供后来者了解更多的资料。

 

开发环境:

VMwareStation 9

ubuntu10.10

开发板S3C6410

配置TFTP服务、NFS服务、安装交叉编译器、文件系统。

 

具体情况:已裸机运行跑马灯,编写好驱动程序控制LED。

         

      在老师的指导帮助下,发现文件系统已自带了httpd,这对用网页控制开发板的LED灯已足够,简而言之,就没必要安装boa或是thttpd服务器了。打开终端,输入 httpd -k,就会出现httpd的相关使用参数。其实这里也只需要httpd -h 这个命令。在文件系统的目录下,/etc/init.d/rcS文件中加入 httpd –h /srv/www,将网页的打开根目录设在/srv/www中。

在文件系统根目录下,新建目录srv,srv下新建目录www,www下新建目录cgi-bin 。$ mkdir -p /srv/www/cgi-bin。

在文件系统/srv/www目录下放置html文件,在/srv/www/cgi-bin目录下放置sh文件,cgi文件。试了在其他目录放置sh或cgi文件,网页调用显示错误。

led.html文件是控制LED的网页。1.sh就是cgi文件,在内部服务器执行操作,在led.html按下按钮,执行1.sh。2.html是为了返回led.html而写的。

这些做好了,运行开发板。加载驱动程序led_driver.ko,在网页上就可以控制led了。效果如下:

led.html效果:

用httpd做服务器,网页控制开发板S3C6410的LED灯。

点击按钮“确定”后:

用httpd做服务器,网页控制开发板S3C6410的LED灯。

开发板上:

用httpd做服务器,网页控制开发板S3C6410的LED灯。

led.html文件:

<html>

<title>LXD LED TEST</title>

<body>

<form action="cgi-bin/1.sh" method=GET >

<center>输入要点亮的LED灯

<input type=textname="led"></center>

<br />

<center>输入LED状态

<input type=textname="status"></center>

<br />

<center><inputtype="submit"  value="确定"><inputtype="reset" value="重设"></center>

</form>

</body>

</html>

 

1.  sh:

#!/bin/sh

echo "Content-Type:text/plain"

echo

 

LED1_ON=0

LED2_ON=0

LED3_ON=0

LED4_ON=0

SPEED=0

 

case $QUERY_STRING in

    *status=1*)

        SPEED=1

        ;;

esac

 

case $QUERY_STRING in

   *led=1*)

       LED1_ON=1

       ;;

esac

 

case $QUERY_STRING in

   *led=2*)

       LED1_ON=2

       ;;

esac

 

case $QUERY_STRING in

   *led=3*)

       LED1_ON=3

       ;;

esac

 

case $QUERY_STRING in

   *led=4*)

       LED1_ON=4

       ;;

esac

 

/temp/led_driver/test $SPEED $LED1_ON

httpd -h /srv/www

cat 2.html

 

2.  html文件:

<html>

<head>

</head>

<body>

<p>LED设置已经提交</p>

<p><ahref="http://172.16.41.6/led.html">返回上一页</a></p>

</body>

</html>