4G 模组 fskv 开发示例 白嫖篇!

电子说

1.3w人已加入

描述

今天我们学习的是低功耗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工具下载固件和脚本到开发板中

4G

4.2 通过luatools打印查看效果:

4G

由上图可以看出,fskv支持存放布尔,数值,小数,字符串,等均可。还可以存放table类型的值。但不能存放nil, function, userdata, task类型的值。

5、常见问题

NVM坏了的话会不会影响fskv存储?

不同的flash互不影响。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分