低功耗4G模组:Air780EP之fskv开发示例
今天我们学习合宙低功耗4G模组Air780EP的fskv开发示例。
一、简介
兼容fdb的函数
使用fdb的flash空间,启用时也会替代fdb库
功能上与EEPROM是类似的
fskv与fdb的实现机制导致的差异
| 功能 |
fskv |
fdb |
|
value长度 |
4096 |
255 |
|
key长度 |
63 |
64 |
|
空间利用率(对比) |
较低 |
较高 |
|
读取速度 |
恒定 |
脏数据影响速度,非恒定 |
|
写入数据 |
恒定 |
脏数据影响速度,非恒定 |
|
均衡擦除 |
自动 |
自动 |
二、环境准备
2.1 Air780EP开发板一套
三、程序介绍
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.1 使用luatools工具下载固件和脚本到开发板中
4.2 通过luatools打印查看效果:

由上图可以看出,fskv支持存放布尔,数值,小数,字符串,等均可。还可以存放table类型的值。但不能存放nil, function, userdata, task类型的值。
五、常见问题
NVM坏了的话会不会影响fskv存储?
不同的flash互不影响。
低功耗4G模组:Air780EP之fskv开发示例的更多相关文章
- 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)
实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制"大白"颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮, ...
- 手把手教你基于luatos的4G(LTE Cat.1)模组接入华为云物联网平台
摘要:本期文章采用了4G LTE Cat.1模块,编程语言用的是lua,实现对华为云物联网平台的设备通信与控制 本文分享自华为云社区<基于luatos的4G(LTE Cat.1)模组接入华为云物 ...
- NFC模组,开发NFC功能 仅仅要几条指令的事情
特点:实现NFC透明传输.内置NFC协议栈,支持UART串口直接读写,用于门禁能够同一时候兼容手机和卡片开门,还能实现动态密钥,读到的NFC数据自己主动串口输出,会串口就能开发NFC,不须要研究LLC ...
- 泰拉瑞亚EasyBuildMod便捷建造模组开发详细过程
pre { overflow-y: auto; max-height: 400px } img { max-width: 500px; max-height: 300px } github地址: ht ...
- 异构智联Wi-Fi+蓝牙模组,连接快、准、稳!
下班回家打开门,电灯.电视.空调.音响.电动窗帘.扫地机器人--一呼百应,有序开工,原本冰冷的房子立刻变成了温暖港湾.可以说,舒适便捷的智能设备已经完全融入了我们的生活中. 从单一场景.单一设备,到现 ...
- iPhone X 的原深感模组
物理与数字世界正走向融合,我们每天醒来的时间.睡眠时长.心率和步数等数据都会被分享.上传并转化为分析数据.无处不自的 AI.互联互通和软件平台将改变用户对现实的感知. 2018 年的 CES 展(国际 ...
- 最全的NB-IoT芯片厂商、模组厂商信息
NB-IoT作为LPWAN(低功耗广域网)的新兴技术,因为具有低功耗.低成本.广覆盖.海量节点等优势,并且在授权频段可以与2G.3G无缝连接而被运营商所青睐且接受.特别是到了2017年,据统计全球有5 ...
- 中国移动推出NB-IoT/eMTC/GSM多模通信模组Qualcomm调制解调器支持
亚洲电子消费展(CES Asia)在上海举行.期间,中国移动正式推出NB-IoT/eMTC/GSM三模通信模组A9500.该通信模组采用Qualcomm MDM9206 LTE IoT调制解调器,具有 ...
- BC26模组UDP调试
BC26模组调试 数据上报AT流程 [15:33:46.819]收←◆ F1: 0000 0000 V0: 0000 0000 [0001] 00: 0006 000C 01: 0000 0000 U ...
- openwrt编译加载龙尚U9300模组上网
硬件平台:MT7628A openwrt版本:MTK_SDK 1.添加模组信息 /build_dir/target-mipsel_24kc_musl/linux-ramips_mt76x8/linux ...
随机推荐
- Sql语句的两表联合查询
string sql = "select mID,mName,mSex,mAge,(select fzName from TxlFenZu where ID=mFenZu) as mFenZ ...
- redux开发中的一个小坑
redux的actiontypes,不可以重名,重名将会报错 When called with an action of type "inserttoken", the slice ...
- Ubuntu 切换显示管理器
比较流行的显示管理器有: gdm3 - GNOME Display Manager lightdm - Light Display Manager sddm - Simple Desktop Disp ...
- MyBatis 从入门到放弃 ( MyBatis基础总结 )
目录 MyBatis历史 Mybatis特性 MyBatis下载 和其它持久化层技术对比 开发环境 创建maven工程 创建MyBatis的核心配置文件 创建mapper接口 创建MyBatis的映射 ...
- 神经网络之卷积篇:详解简单卷积网络示例(A simple convolution network example)
详解简单卷积网络示例 假设有一张图片,想做图片分类或图片识别,把这张图片输入定义为\(x\),然后辨别图片中有没有猫,用0或1表示,这是一个分类问题,来构建适用于这项任务的卷积神经网络.针对这个示例, ...
- Codeforces Round 916 (Div. 3) (A~F附带题解和详细思路)
Codeforces Round 916 (Div. 3) (A~E2) A. Problemsolving Log 签到题,对于给出的字符串,用数组记录每个字母出现的次数,然后遍历一边记录数组,如果 ...
- cesium中添加建筑白模
1.在cesium中添加模型依赖于Cesium ion帐户的资产id,在这里创建账户. 2.上传模型(模型文件类型在Cesium ion中有说明,模型的提取办法可在这里查看)到账户中并平铺为3D Ti ...
- Mongodb入门4
今天学习一下MongoDB数据库的索引. 因为养的鱼生病了,所以抽空晚上学习记录一下. 这里借用一下菜鸟教程的原文: 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描 ...
- docker 安装启动jenkins 以及问题剖析
docker 安装启动jenkins 以及问题剖析 首先,你环境必须要有docker,我这里是自己本地虚拟机Vmware,我的虚拟机时linux centos7的 .如果你不知怎么安装虚拟机和命令 ...
- C++ 指针基础
指针 指针具有强大的能力,其本质是协助程序员完成内存的直接操作 指针: 特定类型数据在内存中的存储地址,即内存地址 指针只是一个逻辑概念,其实际应用是:指针变量 语法 * 符号有两种含义: 声明时:* ...