Переглянути джерело

feat: add refinement window controls to UI

master
Jan Svabenik 11 години тому
джерело
коміт
1e2d4f0f74
2 змінених файлів з 32 додано та 0 видалено
  1. +18
    -0
      web/app.js
  2. +14
    -0
      web/index.html

+ 18
- 0
web/app.js Переглянути файл

@@ -62,6 +62,10 @@ const recMinSNR = qs('recMinSNR');
const recMaxDisk = qs('recMaxDisk');
const recClassFilter = qs('recClassFilter');

const refineAutoSpan = qs('refineAutoSpan');
const refineMinSpan = qs('refineMinSpan');
const refineMaxSpan = qs('refineMaxSpan');

const signalList = qs('signalList');
const eventList = qs('eventList');
const recordingList = qs('recordingList');
@@ -668,6 +672,9 @@ function applyConfigToUI(cfg) {
if (recMaxDisk) recMaxDisk.value = cfg.recorder.max_disk_mb ?? 0;
if (recClassFilter) recClassFilter.value = (cfg.recorder.class_filter || []).join(', ');
}
if (refineAutoSpan) refineAutoSpan.value = String(cfg.refinement?.auto_span ?? true);
if (refineMinSpan) refineMinSpan.value = cfg.refinement?.min_span_hz ?? 0;
if (refineMaxSpan) refineMaxSpan.value = cfg.refinement?.max_span_hz ?? 0;
spanInput.value = (cfg.sample_rate / zoom / 1e6).toFixed(3);
isSyncingConfig = false;
}
@@ -1926,6 +1933,17 @@ if (recClassFilter) recClassFilter.addEventListener('change', () => {
.filter(Boolean);
queueConfigUpdate({ recorder: { class_filter: list } });
});
if (refineAutoSpan) refineAutoSpan.addEventListener('change', () => {
queueConfigUpdate({ refinement: { auto_span: refineAutoSpan.value === 'true' } });
});
if (refineMinSpan) refineMinSpan.addEventListener('change', () => {
const v = parseFloat(refineMinSpan.value);
if (Number.isFinite(v)) queueConfigUpdate({ refinement: { min_span_hz: v } });
});
if (refineMaxSpan) refineMaxSpan.addEventListener('change', () => {
const v = parseFloat(refineMaxSpan.value);
if (Number.isFinite(v)) queueConfigUpdate({ refinement: { max_span_hz: v } });
});

avgSelect.addEventListener('change', () => {
avgAlpha = parseFloat(avgSelect.value) || 0;


+ 14
- 0
web/index.html Переглянути файл

@@ -239,6 +239,20 @@
<label class="field"><span>Max Disk (MB)</span><input id="recMaxDisk" type="number" step="256" min="0" /></label>
<label class="field"><span>Class Filter (CSV)</span><input id="recClassFilter" type="text" placeholder="e.g. NFM,USB" /></label>
</div>

<div class="form-group">
<div class="grp-title">Refinement Windows</div>
<label class="field"><span>Auto Span</span>
<select id="refineAutoSpan" class="ctrl-select">
<option value="true">Auto</option>
<option value="false">Manual</option>
</select>
</label>
<div class="field-pair">
<label class="field"><span>Min Span (Hz)</span><input id="refineMinSpan" type="number" step="500" min="0" /></label>
<label class="field"><span>Max Span (Hz)</span><input id="refineMaxSpan" type="number" step="500" min="0" /></label>
</div>
</div>
</section>

<!-- ── Signals Tab ── -->


Завантаження…
Відмінити
Зберегти