低功耗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 ...
随机推荐
- 模板链表类的扩展(QListEx<T>)
以前写的链表都是比较简单的,插入节点是在头节点上,所以循环链表时都是从最后一个数据往前找的,给人的感觉是倒着的, 今天写一个在链表尾部插入数据 1.链表节点类的定义 /链表节点类 template & ...
- 004.MinIO-DirectPV分布式存储部署
MinIO部署介绍 部署概述 Kubernetes hostpath.local和本地静态配置都存在需要事先在node节点准备好可用的块存储或文件系统,例如对插入的硬盘,或者磁盘阵列做分区格式化,文件 ...
- Node.js 使用
创建 Node 项目 npm init -y # 初始化 Node 项目 package.json 文件 这个文件记录了项目的相关信息. { "name": "hello ...
- 自制 ShareLaTeX 镜像
Overleaf 官方的 sharelatex 镜像的 TeX Live 版本可能较旧,无法安装最新的宏包,并且往往只包含了少量的基础宏包.为了方便使用,我们可以自己构建一个使用最新 TeX Live ...
- 5.7前端跨域CSRF和SSRF
一.CSRF(跨站请求伪造) 1.get类型(pikaqu靶场环境) 前提:抓包获取请求地址,构造伪造请求站点,并保持用户登录状态点击伪造站点 此时在其他主机,构造网站信息index.html文件,并 ...
- 使用 nuxi preview 命令预览 Nuxt 应用
title: 使用 nuxi preview 命令预览 Nuxt 应用 date: 2024/9/8 updated: 2024/9/8 author: cmdragon excerpt: 摘要:本文 ...
- Node.js开发博客项目笔记-搭建环境(2)
搭建环境 首先新建blog-1文件夹,在文件夹下初始化package.json,执行命令: npm init -y 生成的package.json文件中的main属性默认值index.js改成bin/ ...
- CoST: 时间序列预测中分离季节趋势特征的对比学习《CoST: CONTRASTIVE LEARNING OF DISENTANGLED SEASONAL-TREND REPRESENTATIONS FOR TIME SERIES FORECASTING》(时序预测、表征学习、对比学习、因果关系、分离趋势季节特征)
2022/6/18 11:32,简单记录一下随笔(因为不写点东西,根本注意力不集中,看5分钟可能要摸鱼10分钟,还是要写点,突然发现,草稿箱里最早的一篇没写完的博客是去年的7月2日,救命啊,我拖了一年 ...
- CSS – Variables
参考: Youtube – CSS Variables - CSS vs Sass - variables inside media queries Why we prefer CSS Custom ...
- Readme3.0 Final
Download Using 解压后放于不明显的地方 打开Devc++,点击 工具 > 编译选项 > 目录,在 C包含文件 与 C++包含文件 中复制完整路径并添加 选中刚添加的路径后,点 ...