該項目建立在文章“使用 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) 的當(dāng)前狀態(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 的當(dāng)前狀態(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)的默認(rè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ù)器。
對上面的代碼逐段剖析,我們首先將當(dāng)前工作目錄更改為安裝包的目錄。這是因為我們的包將所有靜態(tài)提供的文件封裝在file/相對于該目錄的子目錄中。
process.chdir(__dirname)
接下來,我們需要 express-modular-server:
var server = require(“express-modular-server”)
這將返回一個函數(shù),我們使用初始化數(shù)據(jù)作為同一表達(dá)式的一部分調(diào)用該函數(shù):
({
http:true
})
在這里,我們傳遞一個包含初始化參數(shù)的對象。我們感興趣的唯一參數(shù)是運行 HTTP 服務(wù)器。參數(shù)http:true指定了這一點,盡管我們也可以提供一個數(shù)字端口而不是 true。默認(rèn)使用端口 8080。
然后我們將每個 API 添加到服務(wù)器,從包名稱中省略“service-”前綴。初始化返回模塊對象,該對象具有添加與關(guān)鍵 API 關(guān)聯(lián)的 API 的功能。
.API(“gpio”)
當(dāng)這個函數(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 中缺少標(biāo)頭,我們需要升級 npm 并設(shè)置一個符號鏈接來指向它:

一旦 npm 升級,任何時候它運行都會返回一個錯誤,說 npm 不支持 node.js v0.10.29,你應(yīng)該升級到更新的版本。忽略此警告,因為 v0.10.29 是 TS-7680 支持的最新版本,因為較新的版本缺少 ARM v5 支持。
您可以使用單個命令安裝整個演示:
npm install ts7680-demo-server
我們的下一部分將從 GPIO 模塊開始詳細(xì)檢查服務(wù)器使用的模塊。
審核編輯:郭婷
-
led
+關(guān)注
關(guān)注
243文章
24595瀏覽量
690828 -
adc
+關(guān)注
關(guān)注
100文章
7511瀏覽量
555944 -
服務(wù)器
+關(guān)注
關(guān)注
14文章
10252瀏覽量
91481
發(fā)布評論請先 登錄
深入剖析TS951、TS952、TS954:多功能低功耗運放的卓越之選
深入解析TS922/TS922A雙運算放大器:特性、參數(shù)與應(yīng)用
探索TS5A2053單通道10Ω SPDT模擬開關(guān):特性與應(yīng)用解析
Texas Instruments TS2PCIE2212:PCI Express信號開關(guān)的卓越之選
探索TS12A4516/TS12A4517:高性能CMOS模擬開關(guān)的奧秘
TI TS12A4514/TS12A4515單刀單擲CMOS模擬開關(guān):特性、參數(shù)與應(yīng)用解析
探索TS12A4514/TS12A4515:高性能SPST CMOS模擬開關(guān)的應(yīng)用與特性
探索TS2PCIE412:高性能PCIe開關(guān)的技術(shù)剖析
廣東宏展 TS2/TS3 冷熱沖擊試驗箱:從結(jié)構(gòu)到原理的全面解讀
探索TS3USBA225:USB與音頻切換的理想之選
伺服控制要 “集成 + 靈活”?TMC4671:硬件實現(xiàn) FOC,還支持前饋補償!
LC-AC01F2-TS LC-AC01F2-TS
BK15-800S24W2N6(-T)(-TS)(-TS1) BK15-800S24W2N6(-T)(-TS)(-TS1)
如何實現(xiàn)對TS-7680硬件的支持
評論