基于WEB的远程控制Word文档格式.docx
- 文档编号:19350578
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:11
- 大小:24.53KB
基于WEB的远程控制Word文档格式.docx
《基于WEB的远程控制Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于WEB的远程控制Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境
正文
一、课题分析:
这个实验基于Web的远程控制系统是以嵌入式Web服务器为中心,通过Internet网远程访问嵌入式Web服务器,嵌入式Web服务器通过现场总线控制各个LED灯,以达到远程监控的目的,实现PC机的浏览器可通过Internet网访问嵌入式Web服务器。
通过对嵌入式系统的结构形式主要有通用平台、系统架构、硬件架构、软件架构以及硬件、软件的设计方案介绍,系统的将现场数据采集设备、本地Web服务器和远端监控主机三部分构成的基于Web的远程控制系统做了较为全面的介绍和设计。
二、实验原理:
基于web的远程控制系统开发步骤如下:
1、建立可用的软件开发环境;
2、移植Boa服务器;
3、开发所需的驱动程序;
4、编写html页面;
5、编写CGI程序,实现远程控制;
6、登陆服务器,测试系统功能。
三、系统设计:
1、配置BOA服务器:
(1)依照实验要求编译BOA服务器,并生成可执行文件BOA,并且在开发板的/var的文件下建立实验所需的文件夹及文件。
拷贝Boa源码目录下已有的一个示例boa.conf,并在其基础上进行修改:
Port80
#Listen192.68.0.5
Userroot
Group0
#ServerAdminroot@localhost
ErrorLog/var/web_boa/log/error_log
AccessLog/var/web_boa/log/access_log
#UseLocaltime
#VerboseCGILogs
ServerNamewww.your.org.here
#VirtualHost
DocumentRoot/var/web_boa/www
UserDirpublic_html
DirectoryIndexindex.html
DirectoryMaker/usr/lib/boa/boa_indexer
#DirectoryCache/var/spool/boa/dircache
KeepAliveMax1000
KeepAliveTimeout10
MimeTypes/var/web_boa/mime.types
DefaultTypetext/plain
CGIPath/bin:
/usr/bin:
/usr/local/bin
Alias/doc/usr/doc
ScriptAlias/cgi-bin//var/web_boa/www/cgi-bin/
(2)利用挂载功能将BOA执行文件复制到开发板/var的文件夹下;
(3)利用挂载功能将boa.conf文件复制到开发板/var的文件夹下。
在/var下建立web_boa目录等,根据boa.conf文件中的内容相应创建需要的目录。
另外,在虚拟机的/etc目录下拷贝mime.types文件到开发板。
将生成的执行文件boa、pass.cgi及index.html文件传到开发板指定目录(boa.conf文件中指定)。
(4)运行boa文件
up-tech:
~#cd/var
/var#./boa
打开浏览器输入开发板的IP地址运行程序
2、CGI原理及程序设计与编写
(1)CGI程序编写(详细程序见附件1)
for(i=0;
i<
(int)strlen(input);
i++)
{
if(input[i]=='
V'
)
j=input[i+1];
}
}
if(j=='
1'
)
{
ioctl(fd,1,0);
ioctl(fd,0,1);
ioctl(fd,0,2);
if(j=='
2'
ioctl(fd,0,0);
ioctl(fd,1,1);
3'
ioctl(fd,0,1);
ioctl(fd,1,2);
close(fd);
printf("
YourPOSTMessageis%s<
br>
<
\n"
input);
return0;
(2)CGI文件的生成
在虚拟机的终端环境中打开文件所在的文件夹
输入arm-linux-gcc-opass.cgipass.c
3、网页文件index.html设计
(1)网页(html文件)设计(见附件2)
(2)利用挂载功能将文件复制到开发板的/var/web_boa/www的文件夹下
(3)运行结果
4、LED灯的驱动
驱动的编译:
makemodules;
将驱动程序下载到开发板上;
加载驱动程序命令:
insmod驱动名;
手动创建设备节点:
mknod/dev/ledc2310。
四、实验现象
连好实验设备后,执行boa,在远程联网计算机上通过浏览器输入开发板IP,就可以远程控制实验板上led灯的亮灭。
按0即第一个灯亮,按1即第二个灯亮,按2即第三个灯亮。
五、实验注意点及问题
1、实验注意点:
(1)容量较大的文件上传到开发板要用ftp。
如果需要用挂载则要将nolock改为nolockrsize=1024,wsize=1024这样才能顺利的上传。
(2)生成文件夹mkdir***,生成文件touch***。
(3)文件的移动:
mv文件的复制:
cp
(4)CGI文件的生成:
arm-linux-gcc-opazss.cgipass.c
2、问题:
(1)挂载挂不上:
可能是没连接开发板,也可能是本地网络连接禁用错误的原因。
(2)压缩包的解压缩:
解压缩时我们不能像平常一样直接右击解压缩到当前文件,而是应该将压缩包拷到自己文件下,用[root@localhostwebserver]#tar–zxvfboa-0.94.13.tar.gz。
(3)Boa执行后打不开网页或者打开网页错误:
可能是网页出现了错误,也许是cgi自身出了问题,或是配置文件的路径发生了错误,这些问题可以通过检查路径和文件解决。
(4)无法控制Led灯:
最可能的原因是未添加Led灯的驱动,异是Led灯的驱动程序出现错误。
(5)开发板ping出错:
1.自动桥接2.换个IP地址再激活。
(6)源文件的拷贝:
实验过程中,一些源文件在虚拟机上修改以后,应该重新将其加载到开发板上,并将原来的文件覆盖掉。
总结体会
此次实验课题是基于web的远程控制设计。
通过本次实验,我熟悉了基于Web下远程控制Led的方法,对CGI原理有了进一步了解,掌握了BOA的移植方法。
这次实验是嵌入式实验的最后一个综合性设计实验,前前后后经历了两周时间。
第一周我只是大概了解了一下整个过程,完成了网页的设计,和boa的移植。
因为课前预习了实验讲义,所以过程还是顺利的。
第二周根据我们课前编好的CGI代码,进行实验的整体操作。
在这个过程中问题还是蛮多的。
然而我通过询问老师还有同学以及自己的查资料,更多地了解嵌入式的一些基本术语还有这些术语的作用,以及在什么时候使用它改如何使用它。
还有就是当我遇到问题或麻烦的时候我该怎样去解决问题,我该怎么运用我所学的知识走出这个谜团,以及以最好的方式解决当前的问题。
通过这次实验我总结了要如何学习嵌入式。
首先要保持良好的心态,不能急于求成,要一步一个脚印的坚持;
然后要有清晰的学习规划,明确学习步骤,明确先学什么,再学什么,比如C语言是学习嵌入式的基础,所以在学习时必须要踏踏实实,把地基给打好;
最后要有良好的学习氛围。
嵌入式学习的难度和高度决定了嵌入式的学习要有个良好的学习讨论氛围,不能一味自己闷头学,要多去讨论和探讨或是想老师寻求答案但自己一定要明白其中的道理,汲取大家的智慧才能更好的提高。
在整个学期中,虽然嵌入式很难学习,很难掌握,但我还是挺喜欢嵌入式的,因为它可以带给我许多接触不到的事物,也渐渐习惯了看满屏代码的感觉。
希望如果有机会还能对嵌入式有所学习。
附件1:
CGI程序
#include<
stdio.h>
#include<
stdlib.h>
string.h>
char*getcgidata(FILE*fp,char*requestmethod);
intmain()
{
char*input;
char*req_method;
//charled[10][64];
charled2[64];
chara;
inti=0;
intj=0;
intfd;
printf("
Content-type:
text/plain;
charset=iso-8859-1\n\n"
);
text/html\n\n"
Thefollowingisqueryreuslt:
"
fd=open("
/dev/led"
0);
if(fd<
0)
{
perror("
opendevice/dev/led"
exit
(1);
}
ioctl(fd,1,0);
req_method=getenv("
REQUEST_METHOD"
input=getcgidata(stdin,req_method);
//根据input中的字符串信息确定led灯的点亮关闭
//以下补充完善代码
for(i=0;
{
if(input[i]=='
j=input[i+1];
}
if(j=='
ioctl(fd,0,1);
ioctl(fd,0,2);
if(j=='
ioctl(fd,0,0);
ioctl(fd,1,1);
ioctl(fd,1,2);
close(fd);
return0;
}
char*getcgidata(FILE*fp,char*requestmethod)
char*input;
intlen;
intsize=1024;
if(!
strcmp(requestmethod,"
GET"
))
input=getenv("
QUERY_STRING"
returninput;
elseif(!
POST"
len=atoi(getenv("
CONTENT_LENGTH"
));
input=(char*)malloc(sizeof(char)*(size+1));
if(len==0)
input[0]='
\0'
;
while
(1)
input[i]=(char)fgetc(fp);
if(i==size)
input[i+1]='
--len;
if(feof(fp)||(!
(len)))
i++;
input[i]='
returnNULL;
附件2:
网页(html文件)程序
html>
head>
title>
Led远程控制<
/title>
/head>
body>
formname="
form1"
action="
/cgi-bin/pass.cgi"
method="
>
palign="
center"
&
nbsp;
b>
fontsize="
4"
<
/font>
5"
嵌入式LED远程控制系统<
/b>
/p>
fieldsetstyle="
width:
300;
height:
40;
padding:
20"
/legend>
200;
2"
legend>
亮灯位置<
inputtype="
radio"
value="
V1"
checkedname="
R1"
0&
V2"
1&
V3"
2&
/fieldset>
tablealign="
width="
130"
tr>
tdalign="
left"
/td>
/tr>
tdwidth="
101"
height="
60"
submit"
执行"
/table>
/form>
/body>
/html>
设计性实验报告成绩:
指导教师签名:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 WEB 远程 控制