本文要說(shuō)的是低功耗4G模組Air780E的LuatOS開(kāi)發(fā)實(shí)戰(zhàn),我將手把手教你搞定數(shù)據(jù)打包解包。
一、LuatOS string 庫(kù)pack和unpack接口
LuatOS string庫(kù)的pack和unpack是一個(gè)用于在Lua程序中進(jìn)行二進(jìn)制數(shù)據(jù)打包和解包操作的接口,支持多種數(shù)據(jù)類型和字節(jié)序格式,方便處理二進(jìn)制協(xié)議和文件。
由于Lua中字符串幾乎可以用于存儲(chǔ)所有形式的數(shù)據(jù),所以下面先系統(tǒng)介紹下Lua字符串的特點(diǎn),方便習(xí)慣使用C語(yǔ)言編程的初學(xué)者系統(tǒng)的了解兩種語(yǔ)言在數(shù)據(jù)存儲(chǔ)方面的一些差異。
1.1 字節(jié)序的概念
字節(jié)序是指在計(jì)算機(jī)存儲(chǔ)或傳輸多字節(jié)數(shù)據(jù)時(shí),字節(jié)的排列順序,通常分為大端序(big-endian,最高有效字節(jié)在前)和小端序(little-endian,最低有效字節(jié)在前)。
大端也常被稱作叫“網(wǎng)絡(luò)序”因?yàn)?TCP、UDP 網(wǎng)絡(luò)數(shù)據(jù)傳輸和存儲(chǔ)都使用這種格式,而一些像 STM32 等 ARM 單片機(jī),則使用小端存儲(chǔ)格式;
1.2 Lua 中字符串存儲(chǔ)
Lua 中字符串可以存儲(chǔ)所有字節(jié)數(shù)據(jù),包括“字符串中的可見(jiàn)和不可見(jiàn)字符”,這一點(diǎn)與 C 語(yǔ)言有很大區(qū)別;
1.3 Lua 中字符串的序號(hào)
注:Lua 中字符串首字節(jié)從序號(hào) 1 開(kāi)始,而不像 C 語(yǔ)言是從序號(hào) 0 開(kāi)始;并且 Lua 字符串有正數(shù)序號(hào)也有負(fù)數(shù)序號(hào),這一點(diǎn)也與 C 語(yǔ)言不同;
二、演示功能概述
本文使用 Air780E 核心板,運(yùn)用 LuatOS string 庫(kù) pack 和 unpack 接口對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行打包和解包操作。
三、準(zhǔn)備硬件環(huán)境
3.1 Air780E 開(kāi)發(fā)板
(注意:需要配套采購(gòu) 4G 物聯(lián)網(wǎng)卡!)
3.2 TYPE-C 數(shù)據(jù)線
四、準(zhǔn)備軟件環(huán)境
4.1 Luatools
Luatools日志打印與程序燒錄軟件下載:
https://docs.openluat.com/Luatools/
4.2 core 固件和源碼腳本
注:core 固件,是基礎(chǔ)環(huán)境,該固件由官方提供,用戶不可修改;源碼腳本,為應(yīng)用程序,可由客戶自行修改
五、軟硬件資料
1、Air780E 開(kāi)發(fā)板原理圖
打開(kāi) Air780E 產(chǎn)品手冊(cè),訪問(wèn)頁(yè)面中的 《EVB_Air780X_V1.6.zip》:
https://docs.openluat.com/air780e/product/
2、API 使用介紹說(shuō)明
3、Air780E開(kāi)發(fā)板使用說(shuō)明
打開(kāi)Air780E 產(chǎn)品手冊(cè),訪問(wèn)頁(yè)面中的 《開(kāi)發(fā)板Core_Air780E使用說(shuō)明 V1.0.5.pdf》
5.1 開(kāi)發(fā)板按鈕與指示燈圖示與說(shuō)明
5.2 硬件安裝與連接
5.2.1 SIM 卡安裝
5.2.2 實(shí)物連接圖
注:開(kāi)發(fā)板與電腦通過(guò) TYPE-C 線連接,用于通信與供電,所以必須使用具有 USB 通信功能的 TYPE-C 線才可以;
六、代碼示例介紹
6.1 完整程序清單
注:完整復(fù)制后保存為 main.lua,可直接使用
七、功能驗(yàn)證
7.1 開(kāi)機(jī)
按下圖所示通過(guò)TYPE-C線將開(kāi)發(fā)板與電腦連接無(wú)誤后,開(kāi)發(fā)板電源指示紅燈常亮,網(wǎng)絡(luò)指示燈滅:
此時(shí)按下開(kāi)機(jī)鍵,約2秒后釋放,等待幾秒網(wǎng)絡(luò)指示綠燈常亮,即開(kāi)機(jī)成功,如下圖:
此時(shí)電腦設(shè)備管理器中會(huì)發(fā)現(xiàn)下圖所示幾個(gè)設(shè)備,即代表開(kāi)機(jī)成功!
7.2 打開(kāi) Luatool 軟件工具并進(jìn)入項(xiàng)目管理測(cè)試頁(yè)面
7.3 按序號(hào)步驟創(chuàng)建項(xiàng)目
7.4 按如下步驟進(jìn)行程序燒錄
注:如果出現(xiàn)下圖警告,請(qǐng)點(diǎn)“確認(rèn)”(首次使用該軟件一定要升級(jí)到最新版本)
7.5 觀察下載過(guò)程后確認(rèn)燒錄結(jié)果
7.6 關(guān)閉項(xiàng)目管理界面,回到調(diào)試頁(yè)面,觀察輸出
注:詳細(xì)日志輸出內(nèi)容,在程序中有增強(qiáng)注釋說(shuō)明,請(qǐng)?jiān)敿?xì)查看。
八、總結(jié)
至此,我們已使用 Air780E 開(kāi)發(fā)板驗(yàn)證了 LuatOS string 庫(kù) pack 和 unpack 接口對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行打包和解包的功能。
九、拓展說(shuō)明
lua 5.3 之前,string 不支持這兩個(gè)接口,當(dāng)時(shí)我們移植了 pack 庫(kù),使用方法和 string 庫(kù)的兩個(gè)接口原理一樣,函數(shù)入口參數(shù)順序有少許差別,具體可以參考 api(https://docs.openluat.com/air780e/luatos/api/core/pack/),當(dāng)前最新固件 string 已完全支持 pack 和 unpack 兩個(gè)接口,所以開(kāi)發(fā)者可直接使用string這兩個(gè)方法即可。
審核編輯 黃宇
-
模組
+關(guān)注
關(guān)注
6文章
1487瀏覽量
30360 -
數(shù)據(jù)打包
+關(guān)注
關(guān)注
0文章
2瀏覽量
896 -
LuatOS
+關(guān)注
關(guān)注
0文章
76瀏覽量
1936
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論