AD远程数据采集试验_第1页
AD远程数据采集试验_第2页
AD远程数据采集试验_第3页
AD远程数据采集试验_第4页
AD远程数据采集试验_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

linux 嵌入式系统期末作业嵌入式系统期末作业 选选 题题 AD 远程数据采集试验 学 号 姓 名 班 级 邮 箱 成 绩 2011 年 11 月 29 日 1 目录目录 1 1 源代 源代 码码 2 2 2 2 程序完成的主要功 程序完成的主要功 能能 8 3 必要的操作步 必要的操作步 骤骤 8 4 4 执行程序的结 执行程序的结 果果 11 2 5 5 本门课程体会及建 本门课程体会及建 议议 12 1 1 源代码源代码 index html 文件解析 文件解析 AD 远程采集实验 第一页网页标题第一页网页标题 设置网页背景颜色 AD 远程采集实验 2008 12 11 提交表单后跳转到 http 192 168 1 133 cgi bin run cgi 页面 设置按设置按 钮并且居中钮并且居中 adc html 文件解析 文件解析 3 var XMLdoc function loadXML if window ActiveXObject 判断浏览器是否支持判断浏览器是否支持 activeX 控件控件 XMLdoc new ActiveXObject Microsoft XMLDOM 生成一个生成一个 xml dom 对象对象 XMLdoc async false 设置对象属性 是否同步设置对象属性 是否同步 XMLdoc load adc xml 使使 oDomoDom 对象指向对象指向 adc xmladc xml 中的内容中的内容 getmessage setTimeout loadXML 1000 每每 1000 毫秒刷新一次毫秒刷新一次 function getmessage document getElementById ch 0 innerHTML XMLdoc getElementsByTagName ch 0 0 childNodes 0 nodeValue 获取获取 ch 0 的的 HTML 代码代码 document getElementById ch 1 innerHTML XMLdoc getElementsByTagName ch 1 0 childNodes 0 nodeValue 获取获取 ch 1 的的 HTML 代码代码 document getElementById ch 2 innerHTML XMLdoc getElementsByTagName ch 2 0 childNodes 0 nodeValue 获取获取 ch 2 的的 HTML 代码代码 生成第二个页面生成第二个页面 AD 远程测试实验 AD 远程测试实验 通道 0 V 通道 1 4 V 通道 2 V Adc xml 文件代码解析 文件代码解析 0 0 1 0 3 0 A run c 文件代码解析 文件代码解析 服务器后台程序对服务器后台程序对 ADAD 进行采样的程序进行采样的程序 include 调用函数库中的标准输入输出 include 浮点数处理 include include include void getdata char buff int adcfd int ret 读取并且转换三个通道中的读取并且转换三个通道中的 AD 值值 int temp int i 0 j for j 0 j 3 j 控制三个通道的循环控制三个通道的循环 ioctl adcfd j 0 操作操作 I O 通道通道 read adcfd temp 16 temp temp 31 5 for i ret i if buff i buff i 6 temp 10 48 将得到的值做数值转换将得到的值做数值转换 buff i 8 temp 10 48 i void lock set int fd int type struct flock lock lock l whence SEEK SET lock l start 0 lock l len 0 lock l type type while 1 if fcntl fd F SETLK int main void pid t pc int adcfd xmlfd ret unsigned char buff 150 int i pc fork 用于打印一些用于打印一些 HTML 代码 使页面跳转到代码 使页面跳转到 ADC HTML 打印完后 打印完后 退出退出 if pc0 打印打印 Html 文档文档 printf Content type text html n n printf n 6 printf printf exit 0 else setsid 脱离父进程脱离父进程 chdir 改变当前目录改变当前目录 umask 0 重设文件权限掩码重设文件权限掩码 for i 0 i 65535 i 关闭设备文件描述符关闭设备文件描述符 close i adcfd open dev adc O RDWR if adcfd 0 printf Cannot open adc device n return adcfd while 1 while 1 xmlfd open var www adc xml O RDWR 打开标志文件打开标志文件 if xmlfd 0 continue else lock set xmlfd F WRLCK 给文件上锁 避免其他进给文件上锁 避免其他进 程对该文件进行写操作程对该文件进行写操作 break ret read xmlfd buff 150 for i 0 i ret i if buff i 如果用户按下如果用户按下 停止采集停止采集 键 则退出键 则退出 程序程序 buff i A lseek xmlfd 0 SEEK SET 移动文件指针移动文件指针 write xmlfd buff ret 写入修改后的值写入修改后的值 lock set xmlfd F UNLCK 给文件上锁 防止被删除给文件上锁 防止被删除 close xmlfd 7 close adcfd return 0 getdata buff adcfd ret lseek xmlfd 0 SEEK SET write xmlfd buff ret lock set xmlfd F UNLCK close xmlfd sleep 1 close xmlfd close adcfd return 0 stop c 文件代码解析 文件代码解析 这段代码是控制整个程序结束的代码 当程序检测到这段代码是控制整个程序结束的代码 当程序检测到 时 程序时 程序 结束结束 include include include include void lock set int fd int type struct flock lock lock l whence SEEK SET lock l start 0 lock l len 0 lock l type type while 1 if fcntl fd F SETLK int main void int fd ret char buff 150 int i 打印打印 HTML 页面页面 printf Content type text html n n 8 printf n printf n printf 隔隔 1 秒钟后刷新秒钟后刷新 while 1 fd open adc xml O RDWR 打开标志文件打开标志文件 if fd 0 continue else lock set fd F WRLCK 给文件上锁 避免其他进程对该文件给文件上锁 避免其他进程对该文件 进行写操作进行写操作 break ret read fd buff 150 for i 0 i ret i if buff i s buff i 5 i 5 插入一个插入一个 lseek fd 0 SEEK SET write fd buff ret 写文件 改变文件内容 以便视频采集程序能检写文件 改变文件内容 以便视频采集程序能检 测到该变化测到该变化 lock set fd F UNLCK close fd 关闭设备文件描述符关闭设备文件描述符 return 0 2 程序完成的主要功能 程序完成的主要功能 这个程序是在点击第一个页面 index html 上的 查看 按钮后 程 序会创建两个线程 一个主线程 用于打印一些 HTML 代码 使页面跳转到 adc html 页面去 打印完 HTML 信息后该线程就退出 另一个子线程执行真 正的 AD 数据采集 它读取三个通道的 AD 值 并对读出来的值进行转换 并将读取的结果写入 adc xml 文件中 供用户检索 同时 这个线程还会 检查 adc xml 的标签中的内容 如果为 则说明用户按下了 停止采集 按钮 那么就结束程序 否则继续执行 3 必要的操作步骤 必要的操作步骤 9 一 解压 ar zxvf boa 0 94 13 tar gz yqliu29 up tech app web tar zxvf boa 0 94 13 tar gz 二 然后进入源代码目录 yqliu29 up tech app web cd boa 0 94 13 src 三 修改文件 compat h 的第 120 行 yqliu29 up tech app web boa 0 94 13 src vi compat h 四 修改后 第 120 行的内容如下 define TIMEZONE OFFSET foo foo tm gmtoff 五 即只是去掉了该行的两个 字符 然后修改 boa c yqliu29 up tech app web boa 0 94 13 src vi boa c 六 找到该文件的 225 227 行 注释掉这几行 不然运行的时候会出错 源文件的修改就完成了 现在开始编译 首先 运行 configure 程序对源文件进行配置 yqliu29 up tech app web boa 0 94 13 src configure 七 配置完成后 修改 Makefile yqliu29 up tech app web boa 0 94 13 src vi Makefile 八 修改第 31 行和 32 行如下 CC arm linux gcc CPP arm linux gcc E 九 修改完成后 保存文件 运行 Make 进行编译 yqliu29 up tech app web boa 0 94 13 src make 十 编译完成后 会在该目录下生成我们需要的可执行文件 boa 然后 编译我们的 CGI 程序 CGI 程序供两个 一个是 run c 另一个 是 stop c 分别运行如下命令进行编译 yqliu29 up tech app web arm linux gcc o run cgi run c yqliu29 up tech app web arm linux gcc o stop cgi stop c 10 编译完成后 会在目录下生成 run cgi 和 stop cgi 两个应用程序 Boa 运行时需要在 etc boa 目录下有一个 boa conf 文件 该文件的全 部内容如下 Port 80 Listen 192 68 0 5 User root Group 0 ErrorLog var log boa error log AccessLog dev null ServerName www your org here DocumentRoot var www DirectoryIndex index html KeepAliveMax 1000 KeepAliveTimeout 10 MimeTypes etc mime types DefaultType text plain CGIPath bin usr bin usr local bin AddType application x httpd cgi cgi ScriptAlias cgi bin var www cgi bin 另外 在 etc 目录下还需要一个 mime types 文件 可以直接从主机上 的 etc 目录拷贝过来 运行时需要的目录如下 var www这个是我们的 html 文件存放的目录 var www cgi bin 这个是 CGI 程序存放的目录 var log boa error log这个是 boa 服务器存放错误日志的地方 因此 把我们上面提到的 index html adc html 和 adc xml 三个文件 拷贝到开发板的 var www 目录下 把刚才编译得到的 run cgi 和 stop cgi 拷贝到 var www sgi bin 目录下 还要在 var log boa 目录下建立一个 error log 文件 命

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论