?今天我們學習合宙低功耗4G模組Air780EP的fskv開發示例。
一、簡介
- 兼容fdb的函數
- 使用fdb的flash空間,啟用時也會替代fdb庫
- 功能上與EEPROM是類似的
fskv與fdb的實現機制導致的差異
功能 | fskv | fdb |
---|---|---|
value長度 | 4096 | 255 |
key長度 | 63 | 64 |
空間利用率(對比) | 較低 | 較高 |
讀取速度 | 恒定 | 臟數據影響速度,非恒定 |
寫入數據 | 恒定 | 臟數據影響速度,非恒定 |
均衡擦除 | 自動 | 自動 |
二、環境準備
2.1 Air780EP開發板一套
三、程序介紹
3.1 API介紹
詳細API介紹見:fskv-API
3.2 初始化kv數據庫
fskv.init()
參數
無
返回值
返回值類型 | 解釋 |
---|---|
boolean | 成功返回true,否則返回false |
3.3 設置一對kv數據
fskv.set(key, value)
參數
傳入值類型 | 解釋 |
---|---|
string | key的名稱,必填,不能空字符串 |
string | 用戶數據,必填,不能nil, 支持字符串/數值/table/布爾值, 數據長度最大4095字節 |
返回值
返回值類型 | 解釋 |
---|---|
boolean | 成功返回true,否則返回false |
3.4 設置table內的鍵值對數據
fskv.sett(key, skey, value)
參數
傳入值類型 | 解釋 |
---|---|
string | key的名稱,必填,不能空字符串 |
string | table的key名稱, 必填, 不能是空字符串 |
string | 用戶數據,必填,支持字符串/數值/table/布爾值, 數據長度最大4095字節 |
返回值
返回值類型 | 解釋 |
---|---|
boolean | 成功返回true,否則返回false/nil |
3.5 根據key獲取對應的數據
fskv.get(key, skey)
參數
傳入值類型 | 解釋 |
---|---|
string | key的名稱,必填,不能空字符串 |
string | 可選的次級key,僅當原始值為table時有效,相當于 fskv.get(key)[skey] |
返回值
返回值類型 | 解釋 |
---|---|
any | 存在則返回數據,否則返回nil |
3.6 根據key刪除數據
fskv.del(key)
參數
傳入值類型 | 解釋 |
---|---|
string | key的名稱,必填,不能空字符串 |
返回值
返回值類型 | 解釋 |
---|---|
bool | 成功返回true,否則返回false |
3.7 清空整個kv數據庫
fskv.clear()
參數
無
返回值
返回值類型 | 解釋 |
---|---|
bool | 成功返回true,否則返回false |
3.8 kv數據庫迭代器
fskv.iter()
參數
無
返回值
返回值類型 | 解釋 |
---|---|
userdata | 成功返回迭代器指針,否則返回nil |
3.9 kv迭代器獲取下一個key
fskv.next(iter)
參數
傳入值類型 | 解釋 |
---|---|
userdata | fskv.iter()返回的指針 |
返回值
返回值類型 | 解釋 |
---|---|
string | 成功返回字符串key值, 否則返回nil |
3.10 獲取kv數據庫狀態
fskv.status()
參數
無
返回值
返回值類型 | 解釋 |
---|---|
int | 已使用的空間,單位字節 |
int | 總可用空間, 單位字節 |
int | 總kv鍵值對數量, 單位個 |
四、實現流程
4.1 使用luatools工具下載固件和腳本到開發板中
4.2 通過luatools打印查看效果:
?
由上圖可以看出,fskv支持存放布爾,數值,小數,字符串,等均可。還可以存放table類型的值。但不能存放nil, function, userdata, task類型的值。
五、常見問題
NVM壞了的話會不會影響fskv存儲?
不同的flash互不影響。
?審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
4G
+關注
關注
15文章
5565瀏覽量
120678 -
低功耗
+關注
關注
10文章
2732瀏覽量
104528 -
模組
+關注
關注
6文章
1610瀏覽量
31136
發布評論請先 登錄
相關推薦
熱點推薦
AT開發HTTP應用:Air780EP低功耗4G模組
? 已經寫了一篇基于Air780EP模組AT開發的FOTA遠程升級指南, 有客戶朋友詢問能否講講HTTP應用部分? 本期特別安排——涵蓋HTTP基本應用流程、GET/POST/SSL請求示例

RNDIS網卡應用看這篇!合宙Air780EP低功耗4G模組AT開發示例
?Air780EP是合宙的低功耗4G模組之一,支持全系列的AT指令以及LuatOS腳本二次開發。 本文應各位大佬邀請,特別講解

FTP應用看這篇!合宙Air780EP低功耗4G模組AT開發示例
? Air780EP是合宙的[低功耗4G模組]之一,支持全系列的AT指令以及LuatOS腳本二次開發。 本文應各位大佬邀請,詳細講解了

基站定位與Wi-Fi定位看這篇!合宙Air780EP低功耗4G模組AT開發示例
?Air780EP是合宙的[低功耗4G模組]之一,支持全系列的AT指令以及LuatOS腳本二次開發。 本文應各位大佬邀請,特別講解

評論