一、简要说明
本文主要讲解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应用boa是一种非常小巧的web服务器,其可执行代码只有大约60kb左右。作为一种单任务web服务器,boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但boa支持cgi,能够为cgi程序fork出一个进程来执行,boa的设计目标是速度和安全。
1、boa配置文件boa配置文件在/etc/boa/boa.conf
常用配置说明:
(可根据项目需要,将以下配置添加到配置文件里)
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应用测试democgi是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网页端
说明xmlhttpreq.js程序运行的脚本
获取时间函数调用sender()。
配置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开发板的各种硬件资源。
更多详细干货信息您可以百度搜索 “飞凌嵌入式”获取!!
iPhone X陷入“难产”,Face ID精度将下调
威迈斯IPO上市关注:“多合一产品”助力发展提速
基于旋变数字转换器RDC芯片的旋变解决方案
怎样选购手机充电宝?2022哪种充电宝好
多采样率数字滤波器的抽取和内插过程 多速率滤波器的Matlab实现
Boa应用-web网页配置A40i开发板-国产工业级全志A40i系列干货分享
英特尔助力深化云网融合 加速5G规模商用
食品重金属检测仪的功能特点
企业联盟正在努力为智能家居行业创建统一的标准
中国3D打印设备以专业级为主,在3D打印设备中占比达到80.6%
Verilog HDL中的结构建模方式细述
Playstation改装图解
AMD锐龙5 5600X处理器的详细介绍
基于低功率无线数据传输系统的研究与设计
城市管理大屏不在身边如何观天下
从全球十大IC设计公司排名看行业未来发展
为什么说短刀电芯天然适合快充路线?
微雪电子STM32 QFP64测试座介绍
太赫兹测试的简单介绍
华为在努力建立自己的供应链并推广其HarmonyOS操作系统