版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z基于Web的远程控制设计设计要求:建立嵌入式系统的web效劳功能〔boa效劳器的建立见移植参考说明〕,设计控制网页,编写控制的CGI程序,实现利用Web页远程控制嵌入式系统中的硬件状态,如控制Led等的点亮、熄灭等动作。一实验原理系统开发步骤:1、建立可用的软件开发环境;2、移植Boa效劳器;3、开发所需的驱动程序;4、编写html页面;5、编写CGI程序,实现远程控制;6、登陆效劳器,测试系统功能。二嵌入式WEB效劳器BOA的移植方法1、编译BOA效劳器参考步骤我们的中提供了boa的源代码,叫做。进入虚拟机Linu*系统,首先解压该文件:然后进入源代码目录:修改文件pat.h的第120行:[rootlocalhostsrc]*vipat.h修改后,第120行的内容如下:*defineTIMEZONE_OFFSET(foo)foo->tm_gmtoff即只是去掉了该行的两个’**’字符。然后修改boa.c:[rootlocalhostsrc]viboa.c找到该文件的225~227行,注释掉这几行。不然运行的时候会出错。由于我们实验室的开发板已经加载了Linu*系统,在实验板上的/etc目录是属于只读文件系统下的,因此不能再其下创立boa目录和复制文件boa.conf到该目录。我们需要修改boa源码中对boa.conf文件的默认路径:修改defines.h[rootlocalhostsrc]*videfines.h将第30行*defineSERVER_ROOT"/etc/boa"修改为可读写的目录/var*defineSERVER_ROOT"/var"源文件的修改就完成了。现在开场编译:首先运行configure程序对源文件进展配置:[rootlocalhostsrc]*./configure配置完成后,生成Makefile,修改Makefile:[rootlocalhostsrc]*viMakefile修改第31行和32行如下:CC=arm-linu*-gccCPP=arm-linu*-gcc-E修改完成后,保存文件,运行Make进展编译:[rootlocalhostsrc]*make编译完成后,会在该目录下生成我们需要的可执行文件boa。将调试信息剥去,得到的最后程序只有约60KB大小。[rootlocalhostsrc]*arm-linu*-stripboa2、配置BOA效劳器参考步骤第二步完成Boa的配置,使其能够支持CGI程序的执行。Boa需要在/etc目录下建立一个boa目录〔由于本实验已将SERVER_ROOT改为"/var",则配置文件直接放在“/var〞〕,里面放入Boa的主要配置文件boa.conf。拷贝Boa源码目录下已有的一个例如boa.conf,在其根底上进展修改:Port80UserrootGroup0*ServerAdminrootlocalhostErrorLog/var/web_boa/log/error_logAccessLog/var/web_boa/log/access_log*UseLocaltime*VerboseCGILogs*VirtualHostDocumentRoot/var/web_boa/UserDirpublic_htmlDirectoryInde*inde*.htmlDirectoryMaker/usr/lib/boa/boa_inde*er*DirectoryCache/var/spool/boa/dircacheKeepAliveMa*1000KeepAliveTimeout10MimeTypes/var/web_boa/mime.typesDefaultTypete*t/plainCGIPath/bin:/usr/bin:/usr/local/binAlias/doc/usr/docScriptAlias/cgi-bin//var/web_boa//cgi-bin/用户可以根据自己需要,对boa.conf进展修改,但必须要保证其他的辅助文件和设置必须和boa.conf里的配置相符,不然Boa就不能正常工作。在上面的例子中,我们还需要创立日志文件所在目录/var/web_boa/log,创立HTML文档的主目录/var/web_boa/,将mime.types文件拷贝到/var/web_boa目录,创立CGI脚本所在目录/var/web_boa//cgi-bin/。mime.types文件用来指明不同文件扩展名对应的MIME类型,一般可以直接从Linu*主机上拷贝一个,大局部也都是在主机的/etc目录下。将修改好的boa.conf传到开发板得/var目录下。创立所需其他的辅助文件文件目录在/var下建立web_boa目录等,请根据boa.conf文件中的内容相应创立需要的目录。另外,在虚拟机的/etc目录下拷贝mime.types文件到开发板。在开发板的/var/web_boa/log/目录下创立error_log和access_log文件:up-tech:/var/web_boa/log*toucherror_logup-tech:/var/web_boa/log*touchaccess_log3、运行BOA将生成的执行文件boa、pass.cgi及inde*.html文件传到开发板指定目录〔boa.conf文件中指定〕。在开发板执行boa〔注意:假设启动boa后又配置或程序有修改,必须先退出boa,重新运行boa。退出具体方法:ps命令查看boa进程号,再执行:kill进程号〕up-tech:*./boa在远程联网计算机端的浏览器中输入开发板的IP地址,即可网页。三CGI原理及程序设计与编写*include<stdio.h>*include<stdlib.h>*include<string.h>*include<ftl.h>*include<sys/ioctl.h>*include<unistd.h>*include<time.h>char*getcgidata(FILE*fp,char*requestmethod);intmain(){
char*input;char*req_method;charled[10];inti=0;intj=0;intfd;printf("Content-type:te*t/html\n\n");printf("<bodybgcolor=\"cyan\">\n");printf("<meta-equiv=\"refresh\"content=\"1;url=://93/inde*.html\">");printf("</body>");fd=open("/dev/led",0);if(fd<0){perror("opendevice/dev/led");e*it(1);}ioctl(fd,1,0);req_method=getenv("REQUEST_METHOD");input=getcgidata(stdin,req_method);j=0;for(i=0;i<(int)strlen(input);i++){
if(input[i]=='V'){
led[j]=input[i+1];j++;}
}
for(j=0;j<3;j++){
if(led[j]=='1')ioctl(fd,1,j);elseioctl(fd,0,j);}close(fd);return0;}四技术操作问题①容量较大的文件上传到开发板要用ftp。如果需要用挂载则要将nolock改为nolocklsize=1024,wsize=1024这样才能顺利的上传。②生成文件夹mkdir***,生成文件touch***。③文件的移动:mv文件的复制:cp④CGI文件的生成:arm-linu*-gcc-opazss.cgipass.c⑤开发板文件的删除:进入文件所在的文件夹rm-rf***⑥设置最高文件:进入文件所在的文件夹chmod777***在这次的实验中我自己完成是所遇到的一些问题:1、挂载挂不上:可能可能是没连接开发板,也可能是本地网络连接禁用错误的原因。2、Boa执行后打不开网页或者翻开网页错误:可能是网页出现了错误,也许是cgi自身出了问题,或是配置文件的路径发生了错误,这些问题可以通过检查路径和文件解决。3、无法控制Led灯:最可能的原因是未添加Led灯的驱动,异是Led灯的驱动程序出现错误。运行Boa文件①up-tech:~*cd/var②up-tech:/var*./boa③翻开浏览器输入开发板的IP地址运行程序Led灯的驱动驱动的编译:makemodules;将驱动程序下载到开发板上;加载驱动程序命令:insmod驱动名;手动创立设备节点:mknod/dev/ledc2310。五总结与体会通过本次实验,我熟悉了基于Web下远程控制Led的方法,对CGI原理有了进一步了解,掌握了BOA的移植方法。因此我也学到了许多课本上学不到的知识。通过我认真的学习,了解了嵌入式的根本知识以后我感觉我又是在另外一个层面上做实验。这时候不是硬性的为了完成任务去做实验,而是为了学习更多的嵌入式知识以及更好的利用嵌入式知识去做实验。通过询问教师还有同学以及自己的查资料,我知道了嵌入式的一些根本术语还有这些术语的作用,以及在什么时候使用它改如何使用它。还有就是当我遇到问题或麻烦的时候我该怎样去解决问题,我该怎么运用我所学的知识走出这个谜团,以及以最好的方式解决当前的问题。还有就是在操作的过程中一定要注意每次我们键入的内容的正确性,在程序编写的时候特别要注意程序根本的格式要求,只有我们编写正确的格式才能得到我们想要的答案,所以在实验过程中要格外的严谨。我相信在本次实验中,自己了解到了更多关于嵌入式相关的具体实验内容。附:网页设计参考网页文件inde*.html设计〔参考例如〕:<html><head><title>Led远程控制</title></head><body><formname="form1"action="/cgi-bin/pass.cgi"method="POST"><palign="center"> <b><fontsize="4"></font><fontsize="5">嵌入式LED远程控制系统</font></b></p><fieldsetstyle="width:145;height:39;padding:2"><legend><palign="center">Led1控制</p></legend><palign="center"><inputtype="radio"value="V1"checkedname="R1">翻开 <inputtype="radio"name="R1"value="V2">关闭</fieldset> <fieldsetstyle="width:145;height:39;padding:2"><legend><palign="center">Led2控制</p></legend><palign="center"><inputtype="radio"value="V1"checkedname="R2">翻开 <inputtype="radio"name="R2"value="V2">关闭</fieldset> <fieldsetstyle="width:145;height:39;padding:2"><legend><palign="center">Led3控制</p></legend><palign="center"><inputtype="radio"value="V1"check
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专用:物流代理运输协议
- 2024年保密协议的补充条款:信息保护再强化
- 2024年分支机构合作协议
- 2024年企业化验室设备安装与采购协议
- 2024年合作伙伴协议:共筑未来
- 2024医院解除劳动合同协议书
- 2024年住房担保协议
- 苹果素描的画法课程设计
- 开发新能源课程设计
- 货物运输机课程设计
- 2024年高考真题-化学(贵州卷) 含答案
- 小学劳动技术三年级上册《小纽扣 自己缝》教学设计及反思
- 2024-2030年中国线束行业市场发展趋势与前景展望战略分析报告
- 《2024版CSCO胰腺癌诊疗指南》更新要点
- 《ModelBase智能驾驶建模仿真与应用》全套教学课件
- 诊断学《心脏检查》(视触叩诊听诊)课件
- 2024东方电气招聘452人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 民宿经济效益和社会效益分析报告
- ISO∕IEC 23894-2023 信息技术 -人工智能 - 风险管理指南(雷泽佳译-2024)
- 山东省菏泽市单县五年级上册期中语文试卷(含解析)
- 创新联合体协议书模板
评论
0/150
提交评论