forked from zakaria/chicken-counting-sukawarna-det
Reduce dashboard CPU: cache DB, suppress logs, add systemd service
- Suppress Flask request logs (werkzeug ERROR only) - Cache SQLite connection with WAL + 8MB cache - Increase poll_ms 500->1000, history refresh 30s->60s - Show 'waiting for pipeline...' when /dev/shm empty - Add chicken-dashboard.service for systemd auto-start
This commit is contained in:
1 parent
9512fc7f4d
commit
dc447264b7
3 files changed
+58
-11
No files matched your search
+19
-5
@@ -45,10 +45,12 @@ body{font-family:system-ui,monospace;background:#0f0f14;color:#e0e0e0;overflow:h
|
||||
</div>
|
||||
<div id="main">
|
||||
<div id="frame-area">
|
||||
<img id="frame-img" src="" alt="live stream">
|
||||
<div class="overlay">
|
||||
<div class="tag live" id="cam-tag">CC1 • RUNNING</div>
|
||||
<div class="count" id="cam-count">--</div>
|
||||
<canvas id="frame-canvas" style="display:none"></canvas>
|
||||
<img id="frame-img" src="" alt="live stream" style="display:none">
|
||||
<div id="waiting-msg" style="color:#555;font-size:16px;text-align:center">waiting for pipeline...</div>
|
||||
<div class="overlay" id="frame-overlay" style="display:none">
|
||||
<div class="tag live" id="cam-tag"></div>
|
||||
<div class="count" id="cam-count"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sidebar">
|
||||
@@ -76,7 +78,7 @@ function boot() {
|
||||
setInterval(poll, POLL_MS);
|
||||
setInterval(updateClock, 1000);
|
||||
loadHistory();
|
||||
setInterval(loadHistory, 30000);
|
||||
setInterval(loadHistory, 60000);
|
||||
updateClock();
|
||||
}
|
||||
|
||||
@@ -86,7 +88,9 @@ function loadCameras() {
|
||||
renderCamList();
|
||||
if (cameras.length && !activeCam) selectCam(cameras[0]);
|
||||
detectActive();
|
||||
if (!cameras.length) showWaiting("no cameras detected");
|
||||
});
|
||||
updateSidebar();
|
||||
}
|
||||
|
||||
function detectActive() {
|
||||
@@ -107,6 +111,9 @@ function detectActive() {
|
||||
|
||||
function selectCam(id) {
|
||||
activeCam = id;
|
||||
document.getElementById("waiting-msg").style.display = "none";
|
||||
document.getElementById("frame-overlay").style.display = "block";
|
||||
document.getElementById("frame-img").style.display = "block";
|
||||
renderCamList();
|
||||
refreshNow();
|
||||
}
|
||||
@@ -141,6 +148,13 @@ function refreshNow() {
|
||||
document.getElementById("frame-img").src = "/shm/" + activeCam + "/frame.jpg?t=" + t;
|
||||
}
|
||||
|
||||
function showWaiting(msg) {
|
||||
document.getElementById("waiting-msg").textContent = msg;
|
||||
document.getElementById("waiting-msg").style.display = "block";
|
||||
document.getElementById("frame-overlay").style.display = "none";
|
||||
document.getElementById("frame-img").style.display = "none";
|
||||
}
|
||||
|
||||
function setOffline() {
|
||||
document.getElementById("cam-tag").textContent = activeCam + " \u2022 OFFLINE";
|
||||
document.getElementById("cam-tag").className = "tag off";
|
||||
|
||||
Reference in new issue
Block a user