3246|2

195

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Boa应用-web网页配置A40i开发板-飞凌国产工业级全志A40i系列干货分享 [复制链接]

一、简要说明 

本文主要讲解A40i Boa应用,适用于飞凌 A40i 系列FETA40i-C核心板  Linux3.10 操作系统,其他平台也可以参考,但是不同平台之间会存在差异,需客户自行修改以适应自己的使用。编写本文章的主要目的是协助客户加速产品的研发速度,由于小编水平有限,在服务过程中所提供的任何资料和信息,都仅供参考,客户有权不使用或自行参考修改,本文章参考资料和信息的完整性、可靠性等问题请自行验证。

 硬件平台简介:FETA40i-C心板基于全志工控行业平台级处理器四核Cortex-A7 A40i设计,主频1.2GHz,集成MAli400MP2 GPU,内存1GB/2GB DDR3L,存储8GB eMMC。支持绝大部分当前流行的视频及图片格式解码,具有稳定可靠的工业级产品性能和高性价比低功耗等优势,搭载Linux和Android操作系统,适用于基于视觉交互的工业控制产品,目标应用包含,嵌入式设备、智能终端、工业控制、数据采集、机器视觉 工业物联网 、移动互联设备、数字标牌等。

<

A40i boa应用 硬件平台FETA40i-c

A40i boa应用-硬件平台分类

 

第二章 A40i系列Boa应用

Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行,Boa的设计目标是速度和安全。

1、Boa配置文件

Boa配置文件在/etc/boa/boa.conf

Boa配置文件

常用配置说明:

(可根据项目需要,将以下配置添加到配置文件里)

Group nogroup

User nobody

这两个配置是配置boa的运行的属主和属组,如果cgi要配置网卡地址,就必须修改成User root

置网卡地址

CGIPath /bin:/usr/bin:/usr/local/bin:/sbin

Cgi程序运行的一个程序搜索路径;比如运行ifconfig eth0 192.169.0.232

就必须配置/sbin路径;ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

/usr/lib/cgi-bin/ 是cgi程序放到boa中的绝对地址,/cgi-bin/ 是客户在网页中提交的cgi地址;例如:/usr/lib/cgi-bin/中放置一个app.cgi;网页访问时候使用/cgi-bin/app.cgi?type=conf&random=0.1111

DocumentRoot /var/www

这个是虚拟目录在开发板中的真实目录

/var/log/boa/access_log

日志需要的文件夹和名字

VerboseCGILogs

调试日志开关,正式运行时候关闭。

2、cgi应用测试demo

CGI是Web服务器运行时外部程序的规范,按CGI编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。

2.1 配置服务器

先运行#boa

之后电脑浏览器浏览http://192.168.0.232/

正常浏览不报错,说明boa运行ok。

把boa/boa.conf 放到A40i 开发板/etc/boa/boa.conf 替换原来的boa.conf

2.2 放置程序

cgi-bin内部的文件放到

/usr/lib/cgi-bin/app.cgi

index.html ,xmlhttpreq.js

放到 /var/www/ajax/文件夹下

修改权限 /etc/boa/boa.conf

chown root:root /var/www/ajax/*

chown root:root /usr/lib/cgi-bin/app.cgi

chmod o+x /usr/lib/cgi-bin/app.cgi

chmod o+r /usr/lib/cgi-bin/app.cgi

2.3 开启boa测试

先运行#boa

之后电脑浏览器浏览http://192.168.0.232/ajax/

2.4 开发及调试代码说明

当打开配置文件VerboseCGILogs 后调试信息就会生成access_log error_log

程序正式调试完成后要关闭程序.程序调试时候需要看这两个日志文件。

Web网页端

<script language="JavaScript" src="xmlhttpreq.js"></script>说明xmlhttpreq.js程序运行的脚本

<p><input type="button" value="获取时间" onclick="sender()" /> </p> 获取时间函数调用sender()。

<p><input type="button" value="设置ip地址" onclick="configip()" /> </p> 配置ip的函数调用configip()函数配置ip请求;

特别说明:index.html 和xmlhttpreq.js程序脚本是下载在本地浏览器里执行的;cgi不是下载到本地浏览器执行。

Js应用程序

异步返回的时间请求

xhr.open("GET", "/cgi-bin/app.cgi?type=time&random="+Math.random(),true);

是向远程的app.cgi 发送请求,请求获取时间后返回web浏览器。

当远程boa返回正确的数据后。

var returnValue = xhr.responseText;就是返回的结果

异步设置ip请求

//配置ip地址

var data={"name":"ipconfig"};

//ip_address

var str_ip=document.getElementById("ip_address").value;

data.address=str_ip;

xhr.onreadystatechange=callback_configipFunction;

//test.cgi后面跟个cur_time参数是为了防止Ajax页面缓存

xhr.open("POST", "/cgi-bin/app.cgi?type=conf&random="+Math.random(),true);

xhr.setRequestHeader("content-type","application/json");

xhr.send(JSON.stringify(data));

向app.cgi发送一个异步json对象

对象内容是{"name":"ipconfig", “address” :”192.168.0.232”}

服务器回收到这个字符串,然后解释这个字符串进行配置ip

配置成功后会收到{“status”:”ok”} 返回结果。

Cgi程序说明

程序段1

item = cJSON_GetObjectItem(root, "address");//

value=cJSON_Print(item);

if(value!=0)

{

sprintf(str_configip,"ifconfig eth0 %s",value);

ret=system(str_configip);

}

程序段2

if(ret==0)

{

char* retstr="{\"status\":\"ok\"}";

printf("%s",retstr);

}else{

char* retstr="{\"status\":\"error\"}";

printf("%s",retstr);

}

程序段1 解释json配置网络。

程序段2返回配置执行结果。

通过这个demo,客户就可以实现web网页配置A40i开发板的各种硬件资源。

此帖出自ARM技术论坛

最新回复

果然,看了一下官网,最后一次更新是2005年   详情 回复 发表于 2022-5-11 20:07
点赞 关注
 

回复
举报

7671

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 

boa好像是20多年前的标配了吧,现在还用这玩意?

此帖出自ARM技术论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

板凳
 

果然,看了一下官网,最后一次更新是2005年

此帖出自ARM技术论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表