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