Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
flashDB
flashdb 查询指定状态日志
发布于 2021-08-12 14:17:20 浏览:1382
订阅该版
项目上需要用到日志,之前挂载了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中OTA下载后,bootloader不搬程序
2
ulog 日志 LOG_HEX 输出时间改为本地日期时间
3
在RT-Thread Studio中构建前执行python命令
4
研究一了一段时间RTT,直接标准版上手太难,想用nano,但又舍不得组件
5
CherryUSB开发笔记(一):FSDEV USB IP核的 HID Remote WakeUp (USB HID 远程唤醒) 2025-01-18 V1.1
热门标签
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
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
7
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
7
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
张世争
1
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
2
次点赞
Ghost_Girls
1
篇文章
6
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部