合宙LuatOS 发表于 2025-1-16 16:37

低功耗4G模组:Air780EP之fskv开发示例

本帖最后由 合宙LuatOS 于 2025-1-17 15:17 编辑

今天我们学习低功耗4G模组Air780EP的fskv开发示例。

一、简介

兼容fdb的函数使用fdb的flash空间,启用时也会替代fdb库功能上与EEPROM是类似的

fskv与fdb的实现机制导致的差异https://file1.**/web3/M00/05/67/wKgZPGd_hOSAMua9AABWP5VR7HY468.png
https://file1.**/web3/M00/05/67/wKgZPGd_hOSAMua9AABWP5VR7HY468.png


二、环境准备

2.1Air780EP开发板一套
三、程序介绍

3.1 API介绍详细API介绍见:fskv-API
3.2 初始化kv数据库fskv.init()
参数无
返回值https://file1.**/web3/M00/05/72/wKgZO2d_hZ2AXXoJAAAYKsuQMWI956.png
https://file1.**/web3/M00/05/72/wKgZO2d_hZ2AXXoJAAAYKsuQMWI956.png
3.3 设置一对kv数据fskv.set(key, value)
参数https://file1.**/web3/M00/05/72/wKgZO2d_hcaAM0LdAAAzNWRissY887.pnghttps://file1.**/web3/M00/05/72/wKgZO2d_hcaAM0LdAAAzNWRissY887.png


返回值https://file1.**/web3/M00/05/68/wKgZPGd_heKAdloQAAAYZk0XIGE538.pnghttps://file1.**/web3/M00/05/68/wKgZPGd_heKAdloQAAAYZk0XIGE538.png

3.4 设置table内的键值对数据fskv.sett(key, skey, value)
参数https://file1.**/web3/M00/05/72/wKgZO2d_hgKADyCGAABB9nAjVF4721.pnghttps://file1.**/web3/M00/05/72/wKgZO2d_hgKADyCGAABB9nAjVF4721.png

返回值
https://file1.**/web3/M00/05/68/wKgZPGd_hh6AJ-JLAAAYA4cwxU0026.png
https://file1.**/web3/M00/05/68/wKgZPGd_hh6AJ-JLAAAYA4cwxU0026.png
3.5 根据key获取对应的数据fskv.get(key, skey)
参数https://file1.**/web3/M00/05/72/wKgZO2d_hjyATe3bAAAx2tnOiJE805.pnghttps://file1.**/web3/M00/05/72/wKgZO2d_hjyATe3bAAAx2tnOiJE805.png

返回值


https://file1.**/web3/M00/05/72/wKgZO2d_hlaAU8yrAAAYNdOhwGI180.png
https://file1.**/web3/M00/05/72/wKgZO2d_hlaAU8yrAAAYNdOhwGI180.png
3.6 根据key删除数据fskv.del(key)
参数https://file1.**/web3/M00/05/72/wKgZO2d_hnOAFmuUAAAZTNnUn1E536.pnghttps://file1.**/web3/M00/05/72/wKgZO2d_hnOAFmuUAAAZTNnUn1E536.png

返回值
https://file1.**/web3/M00/05/68/wKgZPGd_houAc2FZAAAXf4MlisE837.png
https://file1.**/web3/M00/05/68/wKgZPGd_houAc2FZAAAXf4MlisE837.png
3.7 清空整个kv数据库fskv.clear()
参数无
返回值https://file1.**/web3/M00/05/68/wKgZPGd_hraAeprlAAAYIs9UqxU026.png
https://file1.**/web3/M00/05/68/wKgZPGd_hraAeprlAAAYIs9UqxU026.png
3.8 kv数据库迭代器fskv.iter()
参数无
返回值https://file1.**/web3/M00/05/68/wKgZPGd_h_mAUSSiAAAalfjcipA204.png
https://file1.**/web3/M00/05/68/wKgZPGd_h_mAUSSiAAAalfjcipA204.png
3.9 kv迭代器获取下一个keyfskv.next(iter)
参数https://file1.**/web3/M00/05/68/wKgZPGd_iCSATXTCAAAXMOWqx_o186.pnghttps://file1.**/web3/M00/05/68/wKgZPGd_iCSATXTCAAAXMOWqx_o186.png

返回值
https://file1.**/web3/M00/05/73/wKgZO2d_iEOAOhn6AAAa9u6Emmk131.png
https://file1.**/web3/M00/05/73/wKgZO2d_iEOAOhn6AAAa9u6Emmk131.png
3.10 获取kv数据库状态fskv.status()
参数无
返回值https://file1.**/web3/M00/05/68/wKgZPGd_iG-AXAxtAAArSgE-VDw391.png
https://file1.**/web3/M00/05/68/wKgZPGd_iG-AXAxtAAArSgE-VDw391.png


四、实现流程

4.1 使用luatools工具下载固件和脚本到开发板中

https://file1.**/web3/M00/05/68/wKgZPGd_iJ-AQHOFAAHRDkUJChQ794.png

4.2 通过luatools打印查看效果:

https://file1.**/web3/M00/05/68/wKgZPGd_iMKAGqafAARfRfnHslw209.pnghttps://file1.**/web3/M00/05/68/wKgZPGd_iMKAGqafAARfRfnHslw209.png
由上图可以看出,fskv支持存放布尔,数值,小数,字符串,等均可。还可以存放table类型的值。但不能存放nil, function, userdata, task类型的值。

五、常见问题

NVM坏了的话会不会影响fskv存储?不同的flash互不影响。


页: [1]
查看完整版本: 低功耗4G模组:Air780EP之fskv开发示例