低功耗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]