feat: add histogram_interval setting and update UI with new field.
This commit is contained in:
+21
-3
@@ -824,6 +824,20 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="cfg-field">
|
||||
<label>Histogram Interval</label>
|
||||
<select id="cfg-histogram-interval">
|
||||
<option value="">— unchanged —</option>
|
||||
<option value="2">2 seconds</option>
|
||||
<option value="5">5 seconds</option>
|
||||
<option value="15">15 seconds</option>
|
||||
<option value="60">1 minute</option>
|
||||
<option value="300">5 minutes</option>
|
||||
<option value="900">15 minutes</option>
|
||||
</select>
|
||||
<div class="hint">Only active in Histogram / Histogram + Continuous mode</div>
|
||||
</div>
|
||||
|
||||
<div class="cfg-field">
|
||||
<label>Record Time (seconds)</label>
|
||||
<input type="number" id="cfg-record-time" step="0.5" min="0.5" max="60" placeholder="e.g. 3.0" />
|
||||
@@ -1336,6 +1350,7 @@ function populateDeviceTab() {
|
||||
const complianceRows = [
|
||||
['Recording Mode', cc.recording_mode != null ? (RECORDING_MODE_LABELS[cc.recording_mode] || `0x${cc.recording_mode.toString(16).padStart(2,'0')}`) : '—'],
|
||||
['Sample Rate', cc.sample_rate != null ? `${cc.sample_rate} sps` : '—'],
|
||||
['Histogram Interval', cc.histogram_interval_sec != null ? (() => { const s = cc.histogram_interval_sec; return s < 60 ? `${s}s` : `${s/60}m`; })() : '—'],
|
||||
['Record Time', cc.record_time != null ? `${cc.record_time.toFixed(2)} s` : '—'],
|
||||
['Trigger Level (geo)', cc.trigger_level_geo != null ? `${cc.trigger_level_geo.toFixed(4)} in/s` : '—'],
|
||||
['Alarm Level (geo)', cc.alarm_level_geo != null ? `${cc.alarm_level_geo.toFixed(4)} in/s` : '—'],
|
||||
@@ -1370,9 +1385,10 @@ function renderTable(id, rows) {
|
||||
function populateConfigFromDeviceInfo() {
|
||||
if (!unitInfo) return;
|
||||
const cc = unitInfo.compliance_config || {};
|
||||
if (cc.recording_mode != null) qs('cfg-recording-mode', String(cc.recording_mode));
|
||||
if (cc.sample_rate) qs('cfg-sample-rate', String(cc.sample_rate));
|
||||
if (cc.record_time != null) qs('cfg-record-time', cc.record_time.toFixed(1));
|
||||
if (cc.recording_mode != null) qs('cfg-recording-mode', String(cc.recording_mode));
|
||||
if (cc.sample_rate) qs('cfg-sample-rate', String(cc.sample_rate));
|
||||
if (cc.histogram_interval_sec != null) qs('cfg-histogram-interval', String(cc.histogram_interval_sec));
|
||||
if (cc.record_time != null) qs('cfg-record-time', cc.record_time.toFixed(1));
|
||||
if (cc.trigger_level_geo != null) qs('cfg-trigger', cc.trigger_level_geo.toFixed(4));
|
||||
if (cc.alarm_level_geo != null) qs('cfg-alarm', cc.alarm_level_geo.toFixed(4));
|
||||
if (cc.project) qs('cfg-project', cc.project);
|
||||
@@ -1417,6 +1433,8 @@ async function writeConfig() {
|
||||
if (rm !== '') body.recording_mode = parseInt(rm, 10);
|
||||
const sr = qs('cfg-sample-rate').value;
|
||||
if (sr) body.sample_rate = parseInt(sr, 10);
|
||||
const hi = qs('cfg-histogram-interval').value;
|
||||
if (hi !== '') body.histogram_interval_sec = parseInt(hi, 10);
|
||||
const rt = qs('cfg-record-time').value;
|
||||
if (rt) body.record_time = parseFloat(rt);
|
||||
const trig = qs('cfg-trigger').value;
|
||||
|
||||
Reference in New Issue
Block a user