今天我們學習的是低功耗4G模組Air780EP的fskv開發,讓我們更了解它。
本文從簡介,環境準備,程序介紹等來講解整個示例:
1、簡介
兼容fdb的函數
使用fdb的flash空間,啟用時也會替代fdb庫
功能上與EEPROM是類似的
fskv與fdb的實現機制導致的差異
| 功能 | fskv | fdb |
| value長度 | 4096 | 255 |
| key長度 | 63 | 64 |
| 空間利用率(對比) | 較低 | 較高 |
| 讀取速度 | 恒定 | 臟數據影響速度,非恒定 |
| 寫入數據 | 恒定 | 臟數據影響速度,非恒定 |
| 均衡擦除 | 自動 | 自動 |
2、環境準備
2.1 Air780EP開發板一套
3、程序介紹
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、實現流程
4.1 使用luatools工具下載固件和腳本到開發板中

4.2 通過luatools打印查看效果:

由上圖可以看出,fskv支持存放布爾,數值,小數,字符串,等均可。還可以存放table類型的值。但不能存放nil, function, userdata, task類型的值。
5、常見問題
NVM壞了的話會不會影響fskv存儲?
不同的flash互不影響。
審核編輯 黃宇
-
4G
+關注
關注
15文章
5620瀏覽量
124055 -
物聯網
+關注
關注
2945文章
47843瀏覽量
415399 -
模組
+關注
關注
6文章
1776瀏覽量
32269
發布評論請先 登錄
GD01C 4G路由模組:串口轉4G/WiFi/網口通信
戶外4G模組優選高穩時鐘NDK NT2016SB TCXO
FSKV:給嵌入式設備一個“不會失憶的大腦”
FSKV核心庫開發實戰:API詳解與Demo演示
新品上市:用微信小程序就能遠程控制的遙控開關+本地雙控的4G模塊,來了!
CE31-TD系列4G遙控開關模組核心板方案推薦
SkyOne? 汽車多模多頻段前端模塊,用于 4G LTE 和 4G LTE-A(下行鏈路載波聚合 (CA) 應用) skyworksinc
4G全網通網關是什么?有什么功能?
4G DTU 無線數傳模塊:RS232/485轉4G,穩定不宕機
基于EPCM3568B-LI的無線模塊應用 — 4G篇
手把手教你!4G模組Air780EPM——GPIO的設計說明
4G 模組 fskv 開發示例 白嫖篇!
評論