Boa應(yīng)用-web網(wǎng)頁配置A40i開發(fā)板-國產(chǎn)工業(yè)級全志A40i系列干貨分享

原創(chuàng) 作者 a40i 2021-11-08 13:25:00 Boa應(yīng)用 a40i

一、簡要說明 

本文主要講解A40i Boa應(yīng)用,適用于飛凌 A40i 系列FETA40i-C核心板  Linux3.10 操作系統(tǒng),其他平臺也可以參考,但是不同平臺之間會存在差異,需客戶自行修改以適應(yīng)自己的使用。編寫本文章的主要目的是協(xié)助客戶加速產(chǎn)品的研發(fā)速度,由于小編水平有限,在服務(wù)過程中所提供的任何資料和信息,都僅供參考,客戶有權(quán)不使用或自行參考修改,本文章參考資料和信息的完整性、可靠性等問題請自行驗證。 

硬件平臺簡介:

FETA40i-C核心板基于全志工控行業(yè)平臺級處理器四核Cortex-A7 A40i設(shè)計,主頻1.2GHz,集成MAli400MP2 GPU,內(nèi)存1GB/2GB DDR3L,存儲8GB eMMC。支持絕大部分當(dāng)前流行的視頻及圖片格式解碼,具有穩(wěn)定可靠的工業(yè)級產(chǎn)品性能和高性價比低功耗等優(yōu)勢,搭載Linux和Android操作系統(tǒng),適用于基于視覺交互的工業(yè)控制產(chǎn)品,目標(biāo)應(yīng)用包含,嵌入式設(shè)備、智能終端、工業(yè)控制、數(shù)據(jù)采集、機器視覺 、工業(yè)物聯(lián)網(wǎng) 、移動互聯(lián)設(shè)備、數(shù)字標(biāo)牌等。

<

A40i boa應(yīng)用 硬件平臺FETA40i-c

A40i boa應(yīng)用-硬件平臺分類


第二章 A40i系列Boa應(yīng)用

Boa是一種非常小巧的Web服務(wù)器,其可執(zhí)行代碼只有大約60KB左右。作為一種單任務(wù)Web服務(wù)器,Boa只能依次完成用戶的請求,而不會fork出新的進程來處理并發(fā)連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執(zhí)行,Boa的設(shè)計目標(biāo)是速度和安全。

1、Boa配置文件

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

Boa配置文件

常用配置說明:

(可根據(jù)項目需要,將以下配置添加到配置文件里)

Group nogroup

User nobody

這兩個配置是配置boa的運行的屬主和屬組,如果cgi要配置網(wǎng)卡地址,就必須修改成User root

置網(wǎng)卡地址

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/ 是客戶在網(wǎng)頁中提交的cgi地址;例如:/usr/lib/cgi-bin/中放置一個app.cgi;網(wǎng)頁訪問時候使用/cgi-bin/app.cgi?type=conf&random=0.1111

DocumentRoot /var/www

這個是虛擬目錄在開發(fā)板中的真實目錄

/var/log/boa/access_log

日志需要的文件夾和名字

VerboseCGILogs

調(diào)試日志開關(guān),正式運行時候關(guān)閉。

2、cgi應(yīng)用測試demo

CGI是Web服務(wù)器運行時外部程序的規(guī)范,按CGI編寫的程序可以擴展服務(wù)器功能。CGI 應(yīng)用程序能與瀏覽器進行交互,還可通過數(shù)據(jù)庫API 與數(shù)據(jù)庫服務(wù)器等外部數(shù)據(jù)源進行通信,從數(shù)據(jù)庫服務(wù)器中獲取數(shù)據(jù)。格式化為HTML文檔后,發(fā)送給瀏覽器,也可以將從瀏覽器獲得的數(shù)據(jù)放到數(shù)據(jù)庫中。

2.1 配置服務(wù)器

先運行#boa

之后電腦瀏覽器瀏覽http://192.168.0.232/

正常瀏覽不報錯,說明boa運行ok。

把boa/boa.conf 放到A40i 開發(fā)板/etc/boa/boa.conf 替換原來的boa.conf

2.2 放置程序

cgi-bin內(nèi)部的文件放到

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

index.html ,xmlhttpreq.js

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

修改權(quán)限 /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 開發(fā)及調(diào)試代碼說明

當(dāng)打開配置文件VerboseCGILogs 后調(diào)試信息就會生成access_log error_log

程序正式調(diào)試完成后要關(guān)閉程序.程序調(diào)試時候需要看這兩個日志文件。

Web網(wǎng)頁端

<script language="JavaScript" src="xmlhttpreq.js"></script>說明xmlhttpreq.js程序運行的腳本

<p><input type="button" value="獲取時間" onclick="sender()" /> </p> 獲取時間函數(shù)調(diào)用sender()。

<p><input type="button" value="設(shè)置ip地址" onclick="configip()" /> </p> 配置ip的函數(shù)調(diào)用configip()函數(shù)配置ip請求;

特別說明:index.html 和xmlhttpreq.js程序腳本是下載在本地瀏覽器里執(zhí)行的;cgi不是下載到本地瀏覽器執(zhí)行。

Js應(yīng)用程序

異步返回的時間請求

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

是向遠程的app.cgi 發(fā)送請求,請求獲取時間后返回web瀏覽器。

當(dāng)遠程boa返回正確的數(shù)據(jù)后。

var returnValue = xhr.responseText;就是返回的結(jié)果

異步設(shè)置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參數(shù)是為了防止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發(fā)送一個異步j(luò)son對象

對象內(nèi)容是{"name":"ipconfig", “address” :”192.168.0.232”}

服務(wù)器回收到這個字符串,然后解釋這個字符串進行配置ip

配置成功后會收到{“status”:”ok”} 返回結(jié)果。

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配置網(wǎng)絡(luò)。

程序段2返回配置執(zhí)行結(jié)果。

通過這個demo,客戶就可以實現(xiàn)web網(wǎng)頁配置A40i開發(fā)板的各種硬件資源。


相關(guān)產(chǎn)品 >

  • FETA40i-C核心板

    Allwinner A40i是全志開發(fā)的一款工業(yè)級處理器,A40i作為全國產(chǎn)工業(yè)級芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架構(gòu),工作溫度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飛凌嵌入式深度研究全志A40i芯片參數(shù)、原理圖、datasheet規(guī)格書推出了以FETA40i核心板為主的一系列全國產(chǎn)工業(yè)級嵌入式計算機板卡,并提供了用于評估的A40i工控板、 A40i開發(fā)板。 了解詳情
    FETA40i-C核心板
  • OKA40i-C開發(fā)板

    國產(chǎn)工業(yè)級,高清輸出,豐富接口|OKA40i開發(fā)板采用底板+核心板結(jié)構(gòu),基于全志工控行業(yè)平臺級處理器四核Cortex-A7 A40i設(shè)計,主頻1.2GHz,集成MAli400MP2 GPU,內(nèi)存1GB/2GB DDR3L,存儲8GB eMMC。 全志A40i工控行業(yè)芯片平臺 A40i為國產(chǎn)工控行業(yè)芯,全志A40i處理器代表了Allwin在智能工業(yè)控制領(lǐng)域的成就。飛凌嵌入式A40i系列OKA40i-C開發(fā)板是飛凌推出的一款中國芯,全國產(chǎn)級工業(yè)級開發(fā)板,適用于適用于基于視覺交互的工業(yè)控制產(chǎn)品 了解詳情
    OKA40i-C開發(fā)板

推薦閱讀 換一批 換一批