FlashDB示例

源码路径:example/storage/flashdb

支持的平台

  • em-lb525

  • eh-lb523

概述

本例程演示FlashDB的配置使用,包含:

  • project/nand:KVDB/TSDB在Nand flash上配置使用(FDB_USING_FILE_MODE)。

  • project/nor:KVDB/TSDB在Nor flash上配置使用(FDB_USING_FAL_MODE)。

例程的使用

硬件需求

运行该例程前,需要准备:

编译和烧录

切换到例程project/nand目录,运行scons命令执行编译:

> scons --board=eh-lb525 -j32

切换到例程project/nand/build_xx目录,运行uart_download.bat,按提示选择端口即可进行下载:

$ ./uart_download.bat

     Uart Download

please input the serial port num:5

关于编译、下载的详细步骤,请参考快速上手的相关介绍。

小技巧

project/nor 是对应nor方案,编译下载方式相同,区别是对应的board不同。

例程的预期结果

本例程中通过FINSH命令来操作FlashDB:
KVDB:

用途

命令

示例

设置kvdb

kvdb set [key] [数据类型:int|str] [value]

kvdb set "kv1" int 100

读取kvdb

kvdb get [key] [数据类型:int|str]

kvdb get "kv1" int

删除kvdb

kvdb del [key]

kvdb del "kv1"

串口打印如下:

// 设置、读取整形数据
12-23 00:51:23:316 TX:kvdb set "key1" int 100
12-23 00:51:23:353    kvdb set "key1" int 100
12-23 00:51:23:465    set the key1 value to 100
12-23 00:51:23:579    msh />
12-23 00:51:30:771 TX:kvdb get "key1" int
12-23 00:51:30:827    kvdb get "key1" int
12-23 00:51:30:831    [key1] int
12-23 00:51:30:836    get the key1 value is 100 
// 设置、读取string
12-23 00:52:21:753 TX:kvdb set "key2" str "hello"
12-23 00:52:21:810    kvdb set "key2" str "hello"
12-23 00:52:22:003    set key2 value to hello
12-23 00:52:22:115    msh />
12-23 00:52:29:612 TX:kvdb get "key2" str
12-23 00:52:29:667    kvdb get "key2" str
12-23 00:52:29:672    [key2] str
12-23 00:52:29:677    get the key2 value is hello 
// 删除kvdb
12-23 00:53:16:528 TX:kvdb del "key1"
12-23 00:53:16:585    kvdb del "key1"
12-23 00:53:16:675    delete the key1 finish
12-23 00:53:16:788    msh />
12-23 00:53:20:062 TX:kvdb get "key1" int
12-23 00:53:20:116    kvdb get "key1" int
12-23 00:53:20:120    [key1] int
12-23 00:53:20:147    get the key1 failed

TSDB:

用途

命令

示例

增加tsdb

tsdb append [value]

tsdb append 1

全部查询tsdb

tsdb query_all

tsdb query_all

按时间查询tsdb

tsdb query_by_time [from timestamp] [to timestamp]

tsdb query_by_time 0 946686530

清除tsdb

tsdb clear

tsdb clear

串口打印如下:

// clear tsdb
12-23 00:55:21:376 TX:tsdb clear
12-23 00:55:21:430    tsdb clear
12-23 00:55:23:455    clear tsdb.
// 新增tsdb条目
12-23 00:55:56:845 TX:tsdb append 1
12-23 00:55:56:902    tsdb append 1
12-23 00:55:57:198    append tsdb item : value = 1
12-23 00:55:57:244    tsdb count is: 1
12-23 00:55:57:361    msh />
12-23 00:55:59:988 TX:tsdb append 2
12-23 00:56:00:045    tsdb append 2
12-23 00:56:00:134    append tsdb item : value = 2
12-23 00:56:00:162    tsdb count is: 2
12-23 00:56:00:278    msh />
12-23 00:56:01:521 TX:tsdb append 3
12-23 00:56:01:577    tsdb append 3
12-23 00:56:01:666    append tsdb item : value = 3
12-23 00:56:01:693    tsdb count is: 3
// 全部查询
12-23 00:56:39:698 TX:tsdb query_all
12-23 00:56:39:753    tsdb query_all
12-23 00:56:39:757    query all:
12-23 00:56:39:783    [query_cb] queried a TSL: value: 1 time: 946689062 Sat Jan  1 01:11:02 2000
12-23 00:56:39:788    [query_cb] queried a TSL: value: 2 time: 946689065 Sat Jan  1 01:11:05 2000
12-23 00:56:39:793    [query_cb] queried a TSL: value: 3 time: 946689067 Sat Jan  1 01:11:07 2000
// 按时间查询
12-23 00:57:04:317 TX:tsdb query_by_time 0 946689065
12-23 00:57:04:371    tsdb query_by_time 0 946689065
12-23 00:57:04:375    query by time:
12-23 00:57:04:380    from time:0 Thu Jan  1 00:00:00 1970
12-23 00:57:04:385    to time:946689065 Sat Jan  1 01:11:05 2000
12-23 00:57:04:391    [query_by_time_cb] queried a TSL: value: 1 time: 946689062 Sat Jan  1 01:11:02 2000
12-23 00:57:04:396    [query_by_time_cb] queried a TSL: value: 2 time: 946689065 Sat Jan  1 01:11:05 2000
12-23 00:57:04:402    query count is: 2

异常诊断

参考文档

  • siflisdk\external\FlashDB\README.md

  • siflisdk\external\FlashDB\README_zh.md

更新记录

版本

日期

发布说明

0.0.1

10/2024

初始版本