mirror of
https://github.com/smittix/intercept.git
synced 2026-06-08 14:11:54 -07:00
Stabilize sweep display and lower SNR default
This commit is contained in:
@@ -64,7 +64,7 @@ scanner_config = {
|
||||
'bias_t': False, # Bias-T power for external LNA
|
||||
'sdr_type': 'rtlsdr', # SDR type: rtlsdr, hackrf, airspy, limesdr, sdrplay
|
||||
'scan_method': 'power', # power (rtl_power) or classic (rtl_fm hop)
|
||||
'snr_threshold': 12,
|
||||
'snr_threshold': 8,
|
||||
}
|
||||
|
||||
# Activity log
|
||||
@@ -529,7 +529,7 @@ def scanner_loop_power():
|
||||
if total_bins <= 0:
|
||||
time.sleep(0.2)
|
||||
continue
|
||||
global_index = 0
|
||||
segment_offset = 0
|
||||
|
||||
for sweep_start, sweep_end, sweep_bin, bin_values in segments:
|
||||
# Noise floor (median)
|
||||
@@ -550,7 +550,7 @@ def scanner_loop_power():
|
||||
snr = val - noise_floor
|
||||
level = int(max(0, snr) * 100)
|
||||
threshold = int(snr_threshold * 100)
|
||||
progress = min(1.0, global_index / max(1, total_bins - 1))
|
||||
progress = min(1.0, (segment_offset + idx) / max(1, total_bins - 1))
|
||||
try:
|
||||
scanner_queue.put_nowait({
|
||||
'type': 'scan_update',
|
||||
@@ -562,7 +562,7 @@ def scanner_loop_power():
|
||||
})
|
||||
except queue.Full:
|
||||
pass
|
||||
global_index += emit_stride
|
||||
segment_offset += len(bin_values)
|
||||
|
||||
# Detect peaks (clusters above threshold)
|
||||
peaks = []
|
||||
|
||||
@@ -28,7 +28,7 @@ let audioQueue = [];
|
||||
let isWebSocketAudio = false;
|
||||
let audioFetchController = null;
|
||||
let audioUnlockRequested = false;
|
||||
let scannerSnrThreshold = 12;
|
||||
let scannerSnrThreshold = 8;
|
||||
|
||||
// Visualizer state
|
||||
let visualizerContext = null;
|
||||
@@ -570,7 +570,11 @@ function handleScannerEvent(data) {
|
||||
}
|
||||
|
||||
function handleFrequencyUpdate(data) {
|
||||
const freqStr = data.frequency.toFixed(3);
|
||||
const progressValue = (data.progress !== undefined)
|
||||
? data.progress
|
||||
: ((data.frequency - scannerStartFreq) / (scannerEndFreq - scannerStartFreq));
|
||||
const displayFreq = scannerStartFreq + (progressValue * (scannerEndFreq - scannerStartFreq));
|
||||
const freqStr = displayFreq.toFixed(3);
|
||||
|
||||
const currentFreq = document.getElementById('scannerCurrentFreq');
|
||||
if (currentFreq) currentFreq.textContent = freqStr + ' MHz';
|
||||
@@ -579,9 +583,7 @@ function handleFrequencyUpdate(data) {
|
||||
if (mainFreq) mainFreq.textContent = freqStr;
|
||||
|
||||
// Update progress bar
|
||||
const progress = (data.progress !== undefined)
|
||||
? (data.progress * 100)
|
||||
: ((data.frequency - scannerStartFreq) / (scannerEndFreq - scannerStartFreq)) * 100;
|
||||
const progress = Math.max(0, Math.min(100, progressValue * 100));
|
||||
const progressBar = document.getElementById('scannerProgressBar');
|
||||
if (progressBar) progressBar.style.width = Math.max(0, Math.min(100, progress)) + '%';
|
||||
|
||||
|
||||
@@ -1073,10 +1073,10 @@
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; gap: 8px; margin-top: 8px;">
|
||||
<span style="font-size: 7px; color: var(--text-muted); letter-spacing: 1px;">SNR THRESH</span>
|
||||
<input type="range" id="snrThresholdSlider" min="6" max="20" step="1" value="12"
|
||||
<input type="range" id="snrThresholdSlider" min="6" max="20" step="1" value="8"
|
||||
style="flex: 1;" />
|
||||
<span id="snrThresholdValue"
|
||||
style="font-size: 8px; color: var(--text-muted); min-width: 26px; text-align: right;">12</span>
|
||||
style="font-size: 8px; color: var(--text-muted); min-width: 26px; text-align: right;">8</span>
|
||||
</div>
|
||||
<!-- Signal Alert inline -->
|
||||
<div id="mainSignalAlert"
|
||||
|
||||
Reference in New Issue
Block a user