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

?
由上圖可以看出,fskv支持存放布爾,數(shù)值,小數(shù),字符串,等均可。還可以存放table類(lèi)型的值。但不能存放nil, function, userdata, task類(lèi)型的值。
五、常見(jiàn)問(wèn)題
NVM壞了的話會(huì)不會(huì)影響fskv存儲(chǔ)?
不同的flash互不影響。
?審核編輯 黃宇
-
4G
+關(guān)注
關(guān)注
15文章
5618瀏覽量
123976 -
低功耗
+關(guān)注
關(guān)注
12文章
3441瀏覽量
106691 -
模組
+關(guān)注
關(guān)注
6文章
1768瀏覽量
32254
發(fā)布評(píng)論請(qǐng)先 登錄
一個(gè)G-Sensor,搞定GNSS定位靜態(tài)漂移+智能低功耗控制
實(shí)戰(zhàn)Air780EPM:構(gòu)建4G共享網(wǎng)關(guān),服務(wù)WiFi與有線設(shè)備!
揭秘Air780EGH定位功能:源碼開(kāi)放助力極速開(kāi)發(fā) !
Air8101多網(wǎng)融合戰(zhàn)略升級(jí):Air780EPM模塊助力4G聯(lián)網(wǎng)落地
COD監(jiān)測(cè)革新!Air780EPM一站式替代STM32+4G模組的物聯(lián)網(wǎng)方案 ~
大公開(kāi)!用Air780EPM重構(gòu)水質(zhì)COD監(jiān)測(cè),替代STM32+4G模組的技術(shù)路徑
開(kāi)發(fā)寶典:4路低功耗ADC接口,Air780EPM二次開(kāi)發(fā)必看!
快速開(kāi)發(fā)實(shí)戰(zhàn)——4路低功耗ADC接口,Air780EPM二次開(kāi)發(fā)必看!
新手必看!4G模組Air780EPM——GPIO的設(shè)計(jì)說(shuō)明
干貨預(yù)警!4G模組:Air780EPM其他硬件接口
手把手教你!4G模組Air780EPM——GPIO的設(shè)計(jì)說(shuō)明
快速上手!4G模組Air780EPM的供電設(shè)計(jì)以及選型推薦
4G模組Air780EPM的開(kāi)機(jī)啟動(dòng)及外圍電路設(shè)計(jì)!
初學(xué)者必看!4G模組Air780EPM的開(kāi)機(jī)啟動(dòng)及外圍電路設(shè)計(jì)
低功耗4G模組:Air780EP之fskv開(kāi)發(fā)示例
評(píng)論