Fix RATE start from big Number

This commit is contained in:
proitlab committed 2026-07-02 16:32:05 +07:00
1 parent 641da193d1
commit 05a85c8f8f
1 file changed
+7 -1
+7 -1
View File
@@ -10,6 +10,7 @@ import csv
import os
import signal
import time
from collections import deque
from datetime import datetime
from pathlib import Path
@@ -65,6 +66,7 @@ MIN_DURATION_PER_BATCH = int(os.getenv("MIN_DURATION_PER_BATCH", "60"))
EXPORT_CSV = os.getenv("EXPORT_CSV", "true").lower() == "true"
CROSS_CSV = os.getenv("CROSS_CSV", f"{OUTPUT_DIR}/batch_crossings.csv")
RATE_WINDOW_SEC = int(os.getenv("RATE_WINDOW_SEC", "60"))
WARMUP_FRAMES = int(os.getenv("WARMUP_FRAMES", "30"))
RECONNECT_DELAY_SEC = int(os.getenv("RECONNECT_DELAY_SEC", "3"))
MAX_RECONNECT_ATTEMPTS = int(os.getenv("MAX_RECONNECT_ATTEMPTS", "0"))
@@ -1016,6 +1018,7 @@ def run():
frame_idx = 0
inf_ms = 0.0
video_writer = None
crossing_times = deque()
cap, w, h, fps = connect_stream(SOURCE)
if cap is None:
@@ -1162,6 +1165,7 @@ def run():
ayam_crossed_frame = True
if started_new:
batch_started_frame = True
crossing_times.append(mono)
ayam_cross_flash[tid] = CROSS_FLASH_FRAMES
popups.append(
{
@@ -1219,7 +1223,9 @@ def run():
batch_num = store.current_batch_number or 0
batch_count = store.current_batch_count
display_total = store.display_total()
rate = (display_total / elapsed * 60) if elapsed > 0 else 0.0
while crossing_times and mono - crossing_times[0] > RATE_WINDOW_SEC:
crossing_times.popleft()
rate = (len(crossing_times) / RATE_WINDOW_SEC * 60) if crossing_times else 0.0
draw_elegant_counting_line(frame, line_x, h, line_pulse)
draw_hero_count(frame, line_x, h, batch_count, count_pulse)