mirror of
https://github.com/cjfranko/NTP-Timeturner.git
synced 2025-11-08 18:32:02 +00:00
feat: Add dynamic FPS icon display to web UI
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
parent
9360e0011c
commit
ba9b897157
4 changed files with 15 additions and 3 deletions
|
|
@ -26,5 +26,13 @@ const iconMap = {
|
|||
'good': { src: 'assets/timeturner_delta_green.png', tooltip: 'Clock delta is 0ms.' },
|
||||
'average': { src: 'assets/timeturner_delta_orange.png', tooltip: 'Clock delta is less than 10ms.' },
|
||||
'bad': { src: 'assets/timeturner_delta_red.png', tooltip: 'Clock delta is 10ms or greater.' }
|
||||
},
|
||||
frameRate: {
|
||||
'23.98': { src: 'assets/timeturner_fps_2398.png', tooltip: '23.98 frames per second' },
|
||||
'24.00': { src: 'assets/timeturner_fps_2400.png', tooltip: '24.00 frames per second' },
|
||||
'25.00': { src: 'assets/timeturner_fps_2500.png', tooltip: '25.00 frames per second' },
|
||||
'29.97': { src: 'assets/timeturner_fps_2997.png', tooltip: '29.97 frames per second' },
|
||||
'30.00': { src: 'assets/timeturner_fps_3000.png', tooltip: '30.00 frames per second' },
|
||||
'default': { src: 'assets/timeturner_fps_unknown.png', tooltip: 'Unknown frame rate' }
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<h2>LTC Status</h2>
|
||||
<p id="ltc-timecode">--:--:--:--</p>
|
||||
<p id="ltc-status">--</p>
|
||||
<p id="frame-rate">-- fps</p>
|
||||
<p><span id="frame-rate">-- fps</span></p>
|
||||
<p>Lock Ratio: <span id="lock-ratio">--</span>%</p>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -85,7 +85,11 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||
statusElements.ltcStatus.innerHTML = `<img src="${ltcIconInfo.src}" class="status-icon" alt="" title="${ltcIconInfo.tooltip}"><span>${ltcStatus}</span>`;
|
||||
statusElements.ltcStatus.className = ltcStatus.toLowerCase();
|
||||
statusElements.ltcTimecode.textContent = data.ltc_timecode;
|
||||
statusElements.frameRate.textContent = data.frame_rate;
|
||||
|
||||
const frameRate = data.frame_rate || 'unknown';
|
||||
const frameRateIconInfo = iconMap.frameRate[frameRate] || iconMap.frameRate.default;
|
||||
statusElements.frameRate.innerHTML = `<img src="${frameRateIconInfo.src}" class="status-icon" alt="" title="${frameRateIconInfo.tooltip}"><span>${frameRate} fps</span>`;
|
||||
|
||||
statusElements.lockRatio.textContent = data.lock_ratio.toFixed(2);
|
||||
statusElements.systemClock.textContent = data.system_clock;
|
||||
statusElements.systemDate.textContent = data.system_date;
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ button:hover {
|
|||
color: #555;
|
||||
}
|
||||
|
||||
#ltc-status, #ntp-active, #sync-status, #jitter-status, #delta-status {
|
||||
#ltc-status, #ntp-active, #sync-status, #jitter-status, #delta-status, #frame-rate {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5em;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue