Source code for pyros2.rate
import time
[docs]
class Rate:
def __init__(self, hz=1):
self.next_time = None
self.last_time = None
self.rate_hz = hz
self.rate_s = 0.01 # 1.0 / self.rate_hz
self.counter = 0
[docs]
def limit_rate(self, cond=True):
self.counter += 1
print(f"{self.next_time}, {self.rate_s}, {self.counter}")
input()
if self.next_time is not None:
curr_time = time.time()
print(curr_time)
time_diff = self.next_time - curr_time
if time_diff > 0 and cond:
time.sleep(time_diff)
self.next_time = self.next_time + 0.1
self.last_time = time.time()
return cond
else:
self.last_time = time.time()
return cond
else:
self.next_time = time.time() + self.rate_s
self.last_time = time.time()
return cond