Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SFDB简单文件型数据库
SFDB WEB UI - 【SFDB开发利器】
发布于 2023-09-01 15:37:57 浏览:723
订阅该版
[tocm] 在使用SFDB存储数据时会得到一个数据库文件,固然在程序中使用SFDB的接口读取是可以读取到其中的数据的,但是很多时候我们都会遇到导出数据库文件的场景,如果是csv这种文件,在电脑上可以直接使用EXCEL软件进行分析。而其他一些专业的数据库如SQLITE,自然也会有配套的分析软件。但是对于SFDB,它是那么得简单,那么得小,除了在代码中自己解析,导出后将无法被任何软件识别,此时导出将变得没有任何意义。 看来SFDB的说明文档中应该这么写: *一切都很**简单**,一切都很**快**,但**导出**没有任何意义*😰 当然,在这篇文章之前,确实如此。 现在, **SFDB WEB UI** 登场了💥 ------------ SFDB WEB UI 将会帮你解析SFDB数据库文件,并且按照你所指定的数据格式将数据以表的形式呈现出来,支持常用的数据类型,同时对于普通数字类型的数据,提供内置的排序功能,对于字符串数据,提供内置的查找功能。由于源码是开放的,因此对于一些不支持的数据类型或者特殊自定义的类型,你可以修改源码进行适配。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/84c651644831f3d5ede908251dff2821.png.webp) 以上图为例,下文将对SFDB WEB UI的使用方法进行说明。 ------------ 首先第一次打开这个界面,你将会看到一个空的数据表,除了**序号**这个表头。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/69cabe8ccc408dcba93615daa8d84333.png.webp) 序号实际是内置的一个数据头,表示当前数据是什么时候被记录到数据库的,最近一次被写入的数据序号为1。实际存的数据中不需要加入这一项,SFDB WEB UI会根据数据库文件的结构自动分析出来。 此时我们手中有一个数据库文件,其中的数据定义如下: ```c typedef struct _record { uint32_t ts; uint32_t mem; int rssi; } record_t; ``` 其中`ts`为unix时间戳,`mem`为内存用量,`rssi`为当前WIFI信号强度,每个数据项都占用4字节,总共12字节。我们需要在SFDB WEB UI中配置这三个数据项。 点击导航栏的 设置 -> 数据项配置 打开配置卡片。(通过这个选项卡可以看出配置是可以导入导出的,方便了配置的留存和转移) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/cec44acc2f73aa36be836778d613d75b.png) 显示出配置卡片后点击 `+` 图标新增一个数据项 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/16151a68285e26d04c53c855801b1d71.png) 以时间戳为例,名称填入`时间`,数据格式为`unixtime`,数据为特殊格式所以显示格式无需设置,该参数为结构体的第一个参数,因此偏移为`0`,数据长度为`4`(特定类型会自动填入并且无法修改,避免配置出错),同时由于存储设备的存储模式为小端模式,所以打开`小端模式` ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/bf19bbe7bb571ffa5040748f62ccc7fd.png) 至此,第一个数据项就配置成功了。同理配置内存与信号强度: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/bf4ddd10b8a3c768bd4ef43aae48ca04.png) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/724340f1c474768e536631f512d058a4.png) 配置完成后点击确认,可以看到表头已经将刚才配置的三个参数都显示了出来,并且这个配置是自动保存的,也就是关闭页面后再打开不会丢失上一次的配置参数。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/a5231c96af601c97a88206c2a7ddabfd.png.webp) 数据项配置完成后就能导入数据了,点击 应用 -> 导入数据库 选择待分析的数据库文件进行导入 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/fece4c10d102b4d3f7f9f4818e9e2da5.png) 导入成功后页面主体就会显示数据库信息与数据表 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/d42ea13530ca6161941cb2fb2e0cd053.png.webp) 根据数据表中的时间信息也很容易发现SFDB WEB UI在分析数据时会将最后一次写入的数据也就是最近的数据作为第一个。此时也可以通过序号那一栏的排序按钮将数据倒转排列: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/5e2c402e3a396a69d256703098978848.png.webp) 其他列也相同,如我将使用内存一列进行排序,这样可以清晰得看出内存使用量大的时间以及此时的WIFI强度。(当然在本例中这两者没啥关联,此处只做演示🤣)这样也可以更详细地对数据进行分析。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/41034b29e0ce42466c8280aaba0fb58f.png.webp) 最后当然少不了导出功能,点击 应用 -> 导出数据库可以将数据库导出为对应的格式。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/55fbef165a174d1db6350a3a545b8143.png) 以CSV为例,导出后数据如下: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230901/ef09aaea888b5c298344905297f8f2c7.png) 最后提醒:导出的字符编码为UTF-8,EXCEL打开中文显示可能会乱码,可以查询 **EXCEL如何处理UTF8格式的CSV** 解决。 ------------ ### 传送门 在线工具:[点我访问👈](http://sfdb.wkjay.com/ "点我访问👈") 源码仓库:[点我访问👈](https://github.com/WKJay/sfdb_web_ui "点我访问👈") SFDB介绍:[点我访问👈](https://club.rt-thread.org/ask/article/8937260bae1a3d31.html "点我访问") ### 附件 测试配置文件:[dataCfg.json](https://club.rt-thread.org/file_download/ecde260220b54036) 测试数据库:[test.sdb](https://club.rt-thread.org/file_download/16efa668e08d137c)
5
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
WKJay
wkjay.com
文章
10
回答
136
被采纳
24
关注TA
发私信
相关文章
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
7
个答案
2
次被采纳
三世执戟
7
个答案
1
次被采纳
KunYi
5
个答案
1
次被采纳
winfeng
1
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
3
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部