xiaoxu_han

Results 10 comments of xiaoxu_han

就是当tsdb发生回滚时,好像应用层是无感知的,此时数据由于被回滚可能就查询不到了。 当发生tsdb回滚这种事件时,应用层是知道的并且可以做一些自己的处理,比如注册回滚事件回调处理类似于这样的机制。

好的,朱工,还有一个问题咨询一下,就是如何获取当前tsdb存储的最老的TSL和最新的TSL呢? 获取最新的数据我目前的做法是:先获取最新的时间戳(fdb_tsdb_control(&tsdb, FDB_TSDB_CTRL_GET_LAST_TIME, &cur_times);),然后根据获取到的时间戳进行查询最新TSL 获取存储的最老的TSL目前有什么方法吗?

我的意思是能获取到的最老的数据,查看了源码后我发现当TSDB发生回滚后,随着TSL增加,最老的扇区也是变化的 /* calculate next sector address */ if (sector->addr + db_sec_size(db) < db_max_size(db)) { new_sec_addr = sector->addr + db_sec_size(db); } else if (db->rollover) { new_sec_addr = 0; } else {...

![image](https://user-images.githubusercontent.com/33192616/110296273-1cccce80-802d-11eb-9899-b25ef196e76e.png) ![image](https://user-images.githubusercontent.com/33192616/110296333-30783500-802d-11eb-8871-59a25d3395af.png)

嗯,目前使用的是sfud组件操作的外部flash,朱工请问一下,flashdb在存储数据的完整性和正确性方面有什么机制吗?

因为这里需要采用流模式分行处理比较合适一些,且不是每个字节都查找,而是确定为新行数据和尾缀条件之后才会去查找

1、adc.c文件中给出的api接口其实还是隶属于驱动层,rt_adc_voltage,rt_adc_read,等只是驱动框架封装的更好用的方便调试的api接口, 2、应用层如果要使用adc设备的话,理论上应该去调用rt_device_find和rt_device_read等标准设备框架提供的接口 3、虽然应用层绕过标准设备框架去调用rt_adc_voltage等接口虽然可以,但是不太合理 4、rtt很多驱动代码都是第三方提供的,不一定严格按照device标准设备框架去适配,且标准设备框架也挺占资源的 如果使用标准设备api接口的话,_adc_control 这个接口是存在一些bug的,代码可能需要修改成下边这样: ![image](https://github.com/RT-Thread/rt-thread/assets/33192616/155a197d-5e0b-4042-ada6-57e5aa714199) 如果要使用rt_adc_voltage接口的话需要回退到5.0.1版本,去掉5.0.2的补丁 ![image](https://github.com/RT-Thread/rt-thread/assets/33192616/8140ea97-882f-4b3c-b8fe-30b40acdc973) 红线处需要保留,因为获取参考电压后adc外设被关掉了

同求大佬能够支持多串口实例操作,刚才试了一下多个软件打开虽然能实现类似的效果,但还是稍显麻烦