查看: 3999|回復: 0
打印 上一主題 下一主題

Boa應用-web網(wǎng)頁(yè)配置國產(chǎn)A40i開(kāi)發(fā)板-干貨分享

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2021-11-9 11:14:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一、簡(jiǎn)要說(shuō)明

本文主要講解A40i Boa應用,適用于飛凌 A40i 系列FETA40i-C核心板  Linux3.10 操作系統,其他平臺也可以參考,但是不同平臺之間會(huì )存在差異,需客戶(hù)自行修改以適應自己的使用。編寫(xiě)本文章的主要目的是協(xié)助客戶(hù)加速產(chǎn)品的研發(fā)速度,由于小編水平有限,在服務(wù)過(guò)程中所提供的任何資料和信息,都僅供參考,客戶(hù)有權不使用或自行參考修改,本文章參考資料和信息的完整性、可靠性等問(wèn)題請自行驗證。
硬件平臺簡(jiǎn)介:
FETA40i-C核心板基于全志工控行業(yè)平臺級處理器四核Cortex-A7 A40i設計,主頻1.2GHz,集成MAli400MP2 GPU,內存1GB/2GB ddr3L,存儲8GB eMMC。支持絕大部分當前流行的視頻及圖片格式解碼,具有穩定可靠的工業(yè)級產(chǎn)品性能和高性?xún)r(jià)比低功耗等優(yōu)勢,搭載Linux和Android操作系統,適用于基于視覺(jué)交互的工業(yè)控制產(chǎn)品,目標應用包含,嵌入式設備、智能終端、工業(yè)控制、數據采集、機器視覺(jué) 、工業(yè)物聯(lián)網(wǎng) 、移動(dòng)互聯(lián)設備、數字標牌等。
<
第二章 A40i系列Boa應用
Boa是一種非常小巧的Web服務(wù)器,其可執行代碼只有大約60KB左右。作為一種單任務(wù)Web服務(wù)器,Boa只能依次完成用戶(hù)的請求,而不會(huì )fork出新的進(jìn)程來(lái)處理并發(fā)連接請求。但Boa支持CGI,能夠為CGI程序fork出一個(gè)進(jìn)程來(lái)執行,Boa的設計目標是速度和安全。
1、Boa配置文件
Boa配置文件在/etc/boa/boa.conf
常用配置說(shuō)明:
(可根據項目需要,將以下配置添加到配置文件里)
Group nogroup
User nobody
這兩個(gè)配置是配置boa的運行的屬主和屬組,如果cgi要配置網(wǎng)卡地址,就必須修改成User root
CGIPath /bin:/usr/bin:/usr/local/bin:/sbin
Cgi程序運行的一個(gè)程序搜索路徑;比如運行ifconfig eth0 192.169.0.232
就必須配置/sbin路徑;ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
/usr/lib/cgi-bin/ 是cgi程序放到boa中的絕對地址,/cgi-bin/ 是客戶(hù)在網(wǎng)頁(yè)中提交的cgi地址;例如:/usr/lib/cgi-bin/中放置一個(gè)app.cgi;網(wǎng)頁(yè)訪(fǎng)問(wèn)時(shí)候使用/cgi-bin/app.cgi?type=conf&random=0.1111
DocumentRoot /var/www
這個(gè)是虛擬目錄在開(kāi)發(fā)板中的真實(shí)目錄
/var/log/boa/access_log
日志需要的文件夾和名字
VerboseCGILogs
調試日志開(kāi)關(guān),正式運行時(shí)候關(guān)閉。
2、cgi應用測試demo
CGI是Web服務(wù)器運行時(shí)外部程序的規范,按CGI編寫(xiě)的程序可以擴展服務(wù)器功能。CGI 應用程序能與瀏覽器進(jìn)行交互,還可通過(guò)數據庫API 與數據庫服務(wù)器等外部數據源進(jìn)行通信,從數據庫服務(wù)器中獲取數據。格式化為HTML文檔后,發(fā)送給瀏覽器,也可以將從瀏覽器獲得的數據放到數據庫中。
2.1 配置服務(wù)器
先運行#boa
之后電腦瀏覽器瀏覽http://192.168.0.232/
正常瀏覽不報錯,說(shuō)明boa運行ok。
把boa/boa.conf 放到A40i 開(kāi)發(fā)板/etc/boa/boa.conf 替換原來(lái)的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 開(kāi)啟boa測試
先運行#boa
之后電腦瀏覽器瀏覽http://192.168.0.232/ajax/
2.4 開(kāi)發(fā)及調試代碼說(shuō)明
當打開(kāi)配置文件VerboseCGILogs 后調試信息就會(huì )生成access_log error_log
程序正式調試完成后要關(guān)閉程序.程序調試時(shí)候需要看這兩個(gè)日志文件。
Web網(wǎng)頁(yè)端
說(shuō)明xmlhttpreq.js程序運行的腳本

獲取時(shí)間函數調用sender()。

配置ip的函數調用configip()函數配置ip請求;
特別說(shuō)明:index.html 和xmlhttpreq.js程序腳本是下載在本地瀏覽器里執行的;cgi不是下載到本地瀏覽器執行。
Js應用程序
異步返回的時(shí)間請求
xhr.open("GET", "/cgi-bin/app.cgi?type=time&random="+Math.random(),true);
是向遠程的app.cgi 發(fā)送請求,請求獲取時(shí)間后返回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后面跟個(gè)cur_time參數是為了防止Ajax頁(yè)面緩存
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發(fā)送一個(gè)異步j(luò )son對象
對象內容是{"name":"ipconfig", “address” :”192.168.0.232”}
服務(wù)器回收到這個(gè)字符串,然后解釋這個(gè)字符串進(jìn)行配置ip
配置成功后會(huì )收到{“status”:”ok”} 返回結果。
Cgi程序說(shuō)明
程序段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配置網(wǎng)絡(luò )。
程序段2返回配置執行結果。
通過(guò)這個(gè)demo,客戶(hù)就可以實(shí)現web網(wǎng)頁(yè)配置A40i開(kāi)發(fā)板的各種硬件資源。
原文鏈接:https://www.forlinx.com/article_view_777.html

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页