該項目建立在文章“使用 Node.js 加快嵌入式系統(tǒng)上市時間”的基礎(chǔ)上,提供并展示了如何為簡單的 Web 服務(wù)器實現(xiàn)代碼。Web 服務(wù)器提供了控制板的能力,例如通過獲取和設(shè)置數(shù)字 I/O (DIO) 值(或打開和關(guān)閉 LED)。它還提供了一個簡單的客戶端網(wǎng)頁來訪問此功能,使其成為一個獨立的解決方案,用于通過電路板本身提供的網(wǎng)頁來控制電路板。
在“在運行 Linux 的嵌入式單板計算機上開始使用 node.js ”中,我們展示了如何在Technologic Systems TS-7680等單板計算機 (SBC) 上安裝 node.js。在這個示例項目中,我們展示了如何實現(xiàn)對 TS-7680 硬件的支持,并提供一個簡單的網(wǎng)頁來控制板。DIO 控制通過可視化界面進行說明,該界面可以顯示和更改板上四個 LED 的狀態(tài)。板上的模數(shù)轉(zhuǎn)換器 (ADC) 的當前狀態(tài)也會定期顯示和更新。最后,提供了一個按鈕,該按鈕對加速度計進行一秒鐘的采樣并顯示其數(shù)據(jù)圖表。
該項目由兩部分組成:
在用戶(客戶端)網(wǎng)絡(luò)瀏覽器中運行的 JavaScript 和 HTML
用于直接硬件接口(服務(wù)器)的 Node.js 項目文件(包括 JavaScript、包文件和 C++ 源代碼)。
這將在支持 ARMv5 CPU、使用節(jié)點 0.10 的 Technologic Systems TS-7680 上進行演示。
注意:正確安裝此演示需要具有 256 MB 板載 RAM 的 TS-7680。如果您想在只有 128 MB RAM 的板上運行此演示,請從該 ftp 服務(wù)器下載包含 service-mx28adc 模塊的壓縮包, 并通過解壓縮包含您的 node_modules 目錄的目錄來安裝它。之后apt install命令將識別該模塊已經(jīng)安裝并且不會嘗試編譯它。
讓我們看看我們將要創(chuàng)建的文件。
對于客戶:
ts7680.js –這是 TS-7680 用戶界面的實際實現(xiàn)。它將顯示 LED 和 ADC 的當前狀態(tài),并提供對加速度計進行采樣的接口。
index.html –這是顯示用戶界面的 HTML 代碼。
7680-0000.JPG 至 7680-1111.JPG –這些圖像文件將在 Web 界面中顯示 TS-7680 的板載 LED 狀態(tài)。LED 上的每個位組合(0000、0001、0010 等)都存在一個文件。
服務(wù)器上有幾個 Node.js 包,每個包執(zhí)行特定的功能:
ts7680-demo-server –這是頂級服務(wù)器,用于指定和控制服務(wù)器組件的實例化。它還包含使整個項目成為獨立包所需的所有客戶端文件。
server.js –實現(xiàn)
package.json –清單
README.md – Markdown格式的自述文件
file/ –包含客戶端文件的子目錄
express-modular-server –這是一個模塊化框架,用于從 Node.js 提供 HTTP 和 HTTPS 網(wǎng)頁。
server.js –實現(xiàn)
package.json –清單
README.md – Markdown格式的自述文件
service-app –服務(wù)于 Web 應(yīng)用程序(app.html + app.js + 應(yīng)用程序特定模塊)的插件,用于在其中實現(xiàn)的默認文件處理。
default-file.js -靜態(tài)文件服務(wù)的實現(xiàn)
package.json –清單
README.md – Markdown格式的自述文件
app.js –應(yīng)用處理的實現(xiàn)(本項目中未使用)
service-mma8451 –為 TS-7680 上的NXP MMA8451 3 軸加速度計實現(xiàn)應(yīng)用程序編程接口 (API) 支持的插件。
mma8451.js –實施
package.json –清單
README.md – Markdown格式的自述文件
service-mx28adc –實現(xiàn)對TS-7680 上i.MX28 CPU 低分辨率模數(shù)轉(zhuǎn)換器 (LRADC)外圍設(shè)備的支持的插件。
mx28adc.js –實現(xiàn) API 支持的插件
mx28adc.cc –實施
package.json –清單
Binding.gyp –構(gòu)建文件
README.md – Markdown格式的自述文件
service-gpio –通過 Linux /sys 文件系統(tǒng)實現(xiàn)對 GPIO 的 API 支持的插件。
gpio.js –實現(xiàn)
package.json –清單
README.md – Markdown格式的自述文件
現(xiàn)在,進入代碼。
ts7680-演示服務(wù)器
首先,讓我們看看我們將調(diào)用以運行我們的服務(wù)器的頂級 JavaScript 文件:server.js。
express-modular-server 軟件包使創(chuàng)建 Web 服務(wù)器變得容易。我們?yōu)槊總€服務(wù)編寫一個插件,用于初始化 API 端點和服務(wù)請求。然后我們配置服務(wù)器,指定每個所需的端點,并啟動服務(wù)器。
對上面的代碼逐段剖析,我們首先將當前工作目錄更改為安裝包的目錄。這是因為我們的包將所有靜態(tài)提供的文件封裝在file/相對于該目錄的子目錄中。
process.chdir(__dirname)
接下來,我們需要 express-modular-server:
var server = require(“express-modular-server”)
這將返回一個函數(shù),我們使用初始化數(shù)據(jù)作為同一表達式的一部分調(diào)用該函數(shù):
({
http:true
})
在這里,我們傳遞一個包含初始化參數(shù)的對象。我們感興趣的唯一參數(shù)是運行 HTTP 服務(wù)器。參數(shù)http:true指定了這一點,盡管我們也可以提供一個數(shù)字端口而不是 true。默認使用端口 8080。
然后我們將每個 API 添加到服務(wù)器,從包名稱中省略“service-”前綴。初始化返回模塊對象,該對象具有添加與關(guān)鍵 API 關(guān)聯(lián)的 API 的功能。
.API(“gpio”)
當這個函數(shù)返回時,gpio 插件(來自 service-gpio 包)被加載。此函數(shù)返回模塊對象本身,因此我們可以鏈接另一個調(diào)用以添加任意數(shù)量的 API 端點:
.API(“mma8451”)
.API(“mx28adc”)
.API(“app”)
現(xiàn)在我們?yōu)榧铀俣扔嫛DC 和服務(wù) Web 應(yīng)用程序添加了端點。添加完端點后,我們再調(diào)用一次來啟動服務(wù)器:
.start()
而已!這是我們的代碼的樣子:
在安裝演示之前需要運行一些命令才能使安裝和構(gòu)建過程正常工作。首先,由于 Debian 中缺少標頭,我們需要升級 npm 并設(shè)置一個符號鏈接來指向它:
一旦 npm 升級,任何時候它運行都會返回一個錯誤,說 npm 不支持 node.js v0.10.29,你應(yīng)該升級到更新的版本。忽略此警告,因為 v0.10.29 是 TS-7680 支持的最新版本,因為較新的版本缺少 ARM v5 支持。
您可以使用單個命令安裝整個演示:
npm install ts7680-demo-server
我們的下一部分將從 GPIO 模塊開始詳細檢查服務(wù)器使用的模塊。
審核編輯:郭婷
-
led
+關(guān)注
關(guān)注
242文章
23847瀏覽量
674142 -
adc
+關(guān)注
關(guān)注
99文章
6709瀏覽量
549230 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9795瀏覽量
87994
發(fā)布評論請先 登錄
不增加硬件成本實現(xiàn)智能穿戴離線地圖

LC-AC01F2-TS LC-AC01F2-TS

BK15-800S24W2N6(-T)(-TS)(-TS1) BK15-800S24W2N6(-T)(-TS)(-TS1)

請問STM32G473是否支持硬件AES?
EE-176:ADSP-TS101S TigerSHARC處理器硬件設(shè)計核對表

TS2PCIE412ruar芯片能否用于SATA1.0信號切換?是否支持SATA OBB信號?
晶揚電子高速信號線專用浪涌保護器件TS0321TB-Fx解析

TS3DV520E的傳輸距離可以擴大嗎?
ts3dv642是否真正支持60hz?
SRC4392怎么實現(xiàn)硬件控制?
新的 MathWorks 硬件支持包支持從 MATLAB 和 Simulink 模型到高通 Hexagon 神經(jīng)處理單元架構(gòu)的自動化代碼生成
利用CLB實現(xiàn)基于硬件的同步整流控制

德思特分享 突破FPGA限制:德思特TS-M4i系列數(shù)字化儀利用GPU加速實現(xiàn)高效塊平均處理

突破FPGA限制:TS-M4i系列數(shù)字化儀利用GPU加速實現(xiàn)高效塊平均處理

評論