feat: enhance waveform viewer with record type handling and improved empty state messaging

This commit is contained in:
Brian Harrison
2026-04-03 15:22:26 -04:00
parent e4730376ad
commit f495b91d8a
3 changed files with 33 additions and 14 deletions

View File

@@ -374,13 +374,7 @@
const decoded = data.samples_decoded || 0;
const total = data.total_samples || decoded;
const channels = data.channels || {};
// Build time axis (ms)
const times = Array.from({ length: decoded }, (_, i) =>
((i - pretrig) / sr * 1000).toFixed(2)
);
const triggerMs = 0; // t=0 is trigger by construction
const recType = data.record_type || 'Unknown';
// Status bar
const bar = document.getElementById('status-bar');
@@ -392,11 +386,30 @@
} else {
bar.textContent = `Event #${data.index} `;
}
appendMeta('type', recType);
appendMeta('sr', `${sr} sps`);
appendMeta('samples', `${decoded.toLocaleString()} / ${total.toLocaleString()}`);
appendMeta('pretrig', pretrig);
appendMeta('rectime', `${data.rectime_seconds ?? '?'}s`);
// No waveform data — show a clear reason instead of empty charts
if (decoded === 0) {
document.getElementById('empty-state').style.display = 'flex';
document.getElementById('empty-state').querySelector('p').textContent =
recType === 'Waveform'
? 'Waveform decode returned no samples — check server logs'
: `Record type "${recType}" — waveform decode not yet supported for this mode`;
document.getElementById('charts').style.display = 'none';
Object.values(charts).forEach(c => c.destroy());
charts = {};
return;
}
// Build time axis (ms)
const times = Array.from({ length: decoded }, (_, i) =>
((i - pretrig) / sr * 1000).toFixed(2)
);
// Show charts area
document.getElementById('empty-state').style.display = 'none';
const chartsDiv = document.getElementById('charts');