带有时间戳的主题的循环缓冲

时间:2016-04-21 05:24:58

标签: memory timestamp buffer ros rospy

我有很多想要存储在缓冲区中的主题,但每个主题的录制时间不应超过10秒。对于几个主题,这行很好,但如果我想订阅所有主题,它开始落后。我需要使用比重新编写新列表更有效的东西,我需要弹出所有超过10秒的元素。

buffer[topic] = [ msg for msg in buffer[topic] if timestamp - msg[0] < rospy.Duration(10.0) ]

每个主题都有一个时间戳,如果此时间戳大于10秒,我们要删除这些元素。希望你们能帮忙。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用馆藏库中的dequehttps://docs.python.org/2/library/collections.html#collections.deque),并在邮件太旧时调用popleft