?今天我們學(xué)習(xí)合宙低功耗4G模組Air780EP的fskv開發(fā)示例。
一、簡介
- 兼容fdb的函數(shù)
- 使用fdb的flash空間,啟用時也會替代fdb庫
- 功能上與EEPROM是類似的
fskv與fdb的實現(xiàn)機制導(dǎo)致的差異
功能 | fskv | fdb |
---|---|---|
value長度 | 4096 | 255 |
key長度 | 63 | 64 |
空間利用率(對比) | 較低 | 較高 |
讀取速度 | 恒定 | 臟數(shù)據(jù)影響速度,非恒定 |
寫入數(shù)據(jù) | 恒定 | 臟數(shù)據(jù)影響速度,非恒定 |
均衡擦除 | 自動 | 自動 |
二、環(huán)境準(zhǔn)備
2.1 Air780EP開發(fā)板一套
三、程序介紹
3.1 API介紹
詳細(xì)API介紹見:fskv-API
3.2 初始化kv數(shù)據(jù)庫
fskv.init()
無
返回值
返回值類型 | 解釋 |
---|---|
boolean | 成功返回true,否則返回false |
3.3 設(shè)置一對kv數(shù)據(jù)
fskv.set(key, value)
參數(shù)
傳入值類型 | 解釋 |
---|---|
string | key的名稱,必填,不能空字符串 |
string | 用戶數(shù)據(jù),必填,不能nil, 支持字符串/數(shù)值/table/布爾值, 數(shù)據(jù)長度最大4095字節(jié) |
返回值
返回值類型 | 解釋 |
---|---|
boolean | 成功返回true,否則返回false |
3.4 設(shè)置table內(nèi)的鍵值對數(shù)據(jù)
fskv.sett(key, skey, value)
參數(shù)
傳入值類型 | 解釋 |
---|---|
string | key的名稱,必填,不能空字符串 |
string | table的key名稱, 必填, 不能是空字符串 |
string | 用戶數(shù)據(jù),必填,支持字符串/數(shù)值/table/布爾值, 數(shù)據(jù)長度最大4095字節(jié) |
返回值
返回值類型 | 解釋 |
---|---|
boolean | 成功返回true,否則返回false/nil |
3.5 根據(jù)key獲取對應(yīng)的數(shù)據(jù)
fskv.get(key, skey)
參數(shù)
傳入值類型 | 解釋 |
---|---|
string | key的名稱,必填,不能空字符串 |
string | 可選的次級key,僅當(dāng)原始值為table時有效,相當(dāng)于 fskv.get(key)[skey] |
返回值
返回值類型 | 解釋 |
---|---|
any | 存在則返回數(shù)據(jù),否則返回nil |
3.6 根據(jù)key刪除數(shù)據(jù)
fskv.del(key)
參數(shù)
傳入值類型 | 解釋 |
---|---|
string | key的名稱,必填,不能空字符串 |
返回值
返回值類型 | 解釋 |
---|---|
bool | 成功返回true,否則返回false |
3.7 清空整個kv數(shù)據(jù)庫
fskv.clear()
參數(shù)
無
返回值
返回值類型 | 解釋 |
---|---|
bool | 成功返回true,否則返回false |
3.8 kv數(shù)據(jù)庫迭代器
fskv.iter()
參數(shù)
無
返回值
返回值類型 | 解釋 |
---|---|
userdata | 成功返回迭代器指針,否則返回nil |
3.9 kv迭代器獲取下一個key
fskv.next(iter)
參數(shù)
傳入值類型 | 解釋 |
---|---|
userdata | fskv.iter()返回的指針 |
返回值
返回值類型 | 解釋 |
---|---|
string | 成功返回字符串key值, 否則返回nil |
3.10 獲取kv數(shù)據(jù)庫狀態(tài)
fskv.status()
參數(shù)
無
返回值
返回值類型 | 解釋 |
---|---|
int | 已使用的空間,單位字節(jié) |
int | 總可用空間, 單位字節(jié) |
int | 總kv鍵值對數(shù)量, 單位個 |
四、實現(xiàn)流程
4.1 使用luatools工具下載固件和腳本到開發(fā)板中
4.2 通過luatools打印查看效果:
?
由上圖可以看出,fskv支持存放布爾,數(shù)值,小數(shù),字符串,等均可。還可以存放table類型的值。但不能存放nil, function, userdata, task類型的值。
五、常見問題
NVM壞了的話會不會影響fskv存儲?
不同的flash互不影響。
?審核編輯 黃宇
-
4G
+關(guān)注
關(guān)注
15文章
5517瀏覽量
118973 -
低功耗
+關(guān)注
關(guān)注
10文章
2396瀏覽量
103670 -
模組
+關(guān)注
關(guān)注
6文章
1487瀏覽量
30360
發(fā)布評論請先 登錄
相關(guān)推薦
評論