Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
flashDB
flashdb 查询指定状态日志
发布于 2021-08-12 14:17:20 浏览:1356
订阅该版
项目上需要用到日志,之前挂载了fats文件系统,效果不好,对于清除部分日志这一点很不友好,今天了解了flashdb。发现功能真的很强大, 但是有一些疑惑需要大神解答一下。 ![image.png](https://oss-club.rt-thread.org/uploads/20210812/37086579702f56052ea9dfaaa5e5f2b4.png.webp) 在这里,按时间查询的API里面,没有状态这一参数,然而根据文档所说,删除并不是真正的删除,而是标记为删除态,那么在我按时间查询的时候会不会把删除态的也查询到?目前的想法是先获取数据,随后自行加判断,对数据进行处理,剔除删除态的信息。 ![image.png](https://oss-club.rt-thread.org/uploads/20210812/34529de1170f8a3339a957c4c4218de2.png.webp)
查看更多
pimpernel
2021-08-25
这家伙很懒,什么也没写!
把 fdb_tsl_iter 这个函数修改一下,加一条状态判断就行 ```c void fdb_tsl_iter_by_status(fdb_tsdb_t db, fdb_tsl_cb cb, fdb_tsl_status_t status, void *arg) { struct tsdb_sec_info sector; uint32_t sec_addr, traversed_len = 0; struct fdb_tsl tsl; if (!db_init_ok(db)) { FDB_INFO("Error: TSL (%s) isn't initialize OK.\n", db_name(db)); } if (cb == NULL) { return; } sec_addr = db->oldest_addr; /* search all sectors */ do { traversed_len += db_sec_size(db); if (read_sector_info(db, sec_addr, §or, false) != FDB_NO_ERR) { continue; } /* sector has TSL */ if (sector.status == FDB_SECTOR_STORE_USING || sector.status == FDB_SECTOR_STORE_FULL) { if (sector.status == FDB_SECTOR_STORE_USING) { /* copy the current using sector status */ sector = db->cur_sec; } tsl.addr.index = sector.addr + SECTOR_HDR_DATA_SIZE; /* search all TSL */ do { read_tsl(db, &tsl); /* iterator is interrupted when callback return true */ if(tsl.status == status) //判断tsl状态 { if (cb(&tsl, arg)) { return; } } } while ((tsl.addr.index = get_next_tsl_addr(§or, &tsl)) != FAILED_ADDR); } } while ((sec_addr = get_next_sector_addr(db, §or, traversed_len)) != FAILED_ADDR); } ```
3
个回答
默认排序
按发布时间排序
出出啊
2021-08-12
恃人不如自恃,人之为己者不如己之自为也
可能后面那句,“用户可以通过状态对不同数据进行区分”是亮点
小小李sunny
2021-08-12
这家伙很懒,什么也没写!
从描述来看,应该是可以查到删除状态的数据,只不过状态标记为删除状态,按照你的想法再根据状态来区分。你可以先查一下试试,验证是否是这样的,实践出真知
撰写答案
登录
注册新账号
关注者
0
被浏览
1.4k
关于作者
小鱼啊
这家伙很懒,什么也没写!
提问
17
回答
8
被采纳
0
关注TA
发私信
相关问题
1
flashDB有两个变量未定义?
2
FlashDB 初始化时出现 check failed
3
FlashDB初始化isn't initialize OK
4
FlashDB在哪里修改版本号实现自动更新?
5
flashDB重复更新同一个参数的问题
6
flashDB kv ts 最大存储字节在哪里设置
7
操作flashDB时thread 提示error -2 超时
8
flashdb 断言错误问题求解
9
FlashDB没法选择版本
10
flashdb出现moved kv日志后,再去查询发现数据有丢失
推荐文章
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组件
最新文章
1
rt-thread 小内存算法源码分析
2
env中添加lvgl软件包后,keil编译包--c99错误
3
【NXP-MCXA153】 定时器驱动移植
4
GD32F450 看门狗驱动适配
5
【NXP-MCXA153】看门狗驱动移植
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
keil_MDK
msh
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
7
个答案
2
次被采纳
a1012112796
18
个答案
1
次被采纳
红枫
8
个答案
1
次被采纳
Ryan_CW
5
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
本月文章贡献
YZRD
3
篇文章
6
次点赞
catcatbing
3
篇文章
6
次点赞
lizimu
2
篇文章
12
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部