低功耗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 ...
随机推荐
- 一个Java类在运行时候,变量是怎么在JVM中分布的呢?
JVM学习第三篇思考:一个Java类在Jvm内存中是怎么存在的 又名:Java虚拟机的内存模型(JMM)是什么样的. 通过前面两篇文章的学习,我们知道了一个Java类的生命周期及类加载器.我们可以得到 ...
- JVM学习笔记之栈区
JVM学习笔记之栈区 本文主要内容: 栈是什么?栈帧又是什么?在JVM中,main方法调用say方法后,是怎么运行的?本文将详细讲解栈.希望大家学了之后,对栈有更深的了解. 心法:在JVM中,栈管运行 ...
- ERR_INVALID_REDIRECT
原因为: response.sendRedirect(url) url地址写错了
- ocelot 从15.x版本升级到16.x版本 UnableToFindDownstreamRouteError Message: Failed to mat ch Route configuration for upstream path
项目里面用到 ocelot ,之前老的项目用的是 15.x 最近要一个新项目也要用到,直接安装了最新的16.x,结果死活都匹配不到上游路径. 刚开始以为是自己代码写得有问题,各种找问题,结果后来把oc ...
- how to create rpm
RPM Spec 中各个字段的 pre, post, preun, postun 的用法 https://www.golinuxhub.com/2018/05/how-to-execute-scrip ...
- 【笔记】利用七牛云CDN加速提高前端图片静态资源访问速率
第一步,注册七牛云账号 打开 七牛开发者平台,选择 注册,注册后登录系统然后实名认证. 第二步,创建七牛云空间 七牛对象存储将数据文件以资源的形式上传到空间中.您可以创建一个或者多个空间,然后向每个空 ...
- Stooges – AI 孙燕姿
很久没有写文章了... 最近听了 AI 孙燕姿 的一首歌 <一场游戏一场梦>, 有感而发. 所以特别写一篇记入一下我的这半年很火的 AI 的想法.
- C++ 数据输入cin (解决CLoin输入中文程序出错)
数据输入cin 语法:cin >> 变量 解决 CLoin 使用cin输入中文程序无法正常运行 按住Ctrl+alt+shift+/键 弹出对话框选择注册表 取消勾选run.process ...
- 第24天:安全开发-PHP应用&文件管理模块&显示上传&黑白名单类型过滤&访问控制
#文件管理模块-上传-过滤机制 1.无过滤机制 2.黑名单过滤机制 3.白名单过滤机制 4.文件类型过滤机制 $_FILES:PHP中一个预定义的超全局变量,用于在上传文件时从客户端接收文件,并将其保 ...
- 【赵渝强老师】MongoDB中的索引(上)
索引是提高查询查询效率最有效的手段.索引是一种特殊的数据结构,索引以易于遍历的形式存储了数据的部分内容(如:一个特定的字段或一组字段值),索引会按一定规则对存储值进行排序,而且索引的存储位置在内存中, ...