You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
751 B
30 lines
751 B
#!/usr/bin/env python3
|
|
import sys
|
|
import time
|
|
|
|
from common.realtime import Ratekeeper
|
|
from common.filter_simple import FirstOrderFilter
|
|
from tools.zookeeper import Zookeeper
|
|
|
|
if __name__ == "__main__":
|
|
z = Zookeeper()
|
|
z.set_device_power(True)
|
|
z.set_device_ignition(False)
|
|
|
|
duration = None
|
|
if len(sys.argv) > 1:
|
|
duration = int(sys.argv[1])
|
|
|
|
rate = 123
|
|
rk = Ratekeeper(rate, print_delay_threshold=None)
|
|
fltr = FirstOrderFilter(0, 5, 1. / rate, initialized=False)
|
|
|
|
try:
|
|
start_time = time.monotonic()
|
|
while duration is None or time.monotonic() - start_time < duration:
|
|
fltr.update(z.read_power())
|
|
if rk.frame % rate == 0:
|
|
print(f"{fltr.x:.2f} W")
|
|
rk.keep_time()
|
|
except KeyboardInterrupt:
|
|
pass
|
|
|