Skip to content

Commit fa4ffac

Browse files
committed
feat: frame rate logger
1 parent 6bda614 commit fa4ffac

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

python/rcsss/camera/interface.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,37 @@
11
from dataclasses import dataclass
22
from datetime import datetime
3+
import logging
34
from time import time, sleep
45
from typing import Any, Protocol
56

67
from pydantic import BaseModel, Field
78

9+
logger = logging.getLogger(__name__)
10+
logger.setLevel(logging.INFO)
811

912
class SimpleFrameRate:
1013
def __init__(self):
1114
self.t = None
15+
self._last_print = None
1216

1317
def reset(self):
1418
self.t = None
1519

1620
def __call__(self, frame_rate: int | float):
1721
if self.t is None:
1822
self.t = time()
23+
self._last_print = self.t
1924
sleep(1 / frame_rate if isinstance(frame_rate, int) else frame_rate)
2025
return
2126
sleep_time = (
2227
1 / frame_rate - (time() - self.t) if isinstance(frame_rate, int) else frame_rate - (time() - self.t)
2328
)
2429
if sleep_time > 0:
2530
sleep(sleep_time)
31+
if self._last_print is None or time() - self._last_print > 30:
32+
self._last_print = time()
33+
logger.info(f"FPS: {1 / (time() - self.t)}")
34+
2635
self.t = time()
2736

2837

0 commit comments

Comments
 (0)