今天我们学习的是低功耗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文章
5628浏览量
124539 -
物联网
+关注
关注
2950文章
48126浏览量
418432 -
模组
+关注
关注
6文章
1797浏览量
32358
发布评论请先 登录
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,稳定不宕机
用于 4G 和 5G 应用的 Sky5® UHB 前端模块 skyworksinc
基于EPCM3568B-LI的无线模块应用 — 4G篇
4G 模组 fskv 开发示例 白嫖篇!
评论