mirror of
https://github.com/smittix/intercept.git
synced 2026-07-11 02:58:12 -07:00
Ignore out-of-order scan updates
This commit is contained in:
@@ -15,6 +15,7 @@ let scannerCycles = 0;
|
|||||||
let scannerStartFreq = 118;
|
let scannerStartFreq = 118;
|
||||||
let scannerEndFreq = 137;
|
let scannerEndFreq = 137;
|
||||||
let scannerSignalActive = false;
|
let scannerSignalActive = false;
|
||||||
|
let lastScanFreq = null;
|
||||||
|
|
||||||
// Audio state
|
// Audio state
|
||||||
let isAudioPlaying = false;
|
let isAudioPlaying = false;
|
||||||
@@ -181,6 +182,7 @@ function startScanner() {
|
|||||||
scannerEndFreq = endFreq;
|
scannerEndFreq = endFreq;
|
||||||
scannerFreqsScanned = 0;
|
scannerFreqsScanned = 0;
|
||||||
scannerCycles = 0;
|
scannerCycles = 0;
|
||||||
|
lastScanFreq = null;
|
||||||
|
|
||||||
// Update sidebar display
|
// Update sidebar display
|
||||||
updateScannerDisplay('STARTING...', 'var(--accent-orange)');
|
updateScannerDisplay('STARTING...', 'var(--accent-orange)');
|
||||||
@@ -294,6 +296,7 @@ function stopScanner() {
|
|||||||
isScannerPaused = false;
|
isScannerPaused = false;
|
||||||
scannerSignalActive = false;
|
scannerSignalActive = false;
|
||||||
currentSignalLevel = 0;
|
currentSignalLevel = 0;
|
||||||
|
lastScanFreq = null;
|
||||||
|
|
||||||
// Re-enable listen button (will be in local mode after stop)
|
// Re-enable listen button (will be in local mode after stop)
|
||||||
updateListenButtonState(false);
|
updateListenButtonState(false);
|
||||||
@@ -572,6 +575,18 @@ function handleScannerEvent(data) {
|
|||||||
function handleFrequencyUpdate(data) {
|
function handleFrequencyUpdate(data) {
|
||||||
const freqStr = data.frequency.toFixed(3);
|
const freqStr = data.frequency.toFixed(3);
|
||||||
|
|
||||||
|
// Prevent jitter from out-of-order sweep segments
|
||||||
|
if (lastScanFreq !== null) {
|
||||||
|
const range = scannerEndFreq - scannerStartFreq;
|
||||||
|
if (range > 0 && data.frequency < lastScanFreq) {
|
||||||
|
const drop = lastScanFreq - data.frequency;
|
||||||
|
if (drop < range * 0.5) {
|
||||||
|
return; // ignore backward blip within sweep
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastScanFreq = data.frequency;
|
||||||
|
|
||||||
const currentFreq = document.getElementById('scannerCurrentFreq');
|
const currentFreq = document.getElementById('scannerCurrentFreq');
|
||||||
if (currentFreq) currentFreq.textContent = freqStr + ' MHz';
|
if (currentFreq) currentFreq.textContent = freqStr + ' MHz';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user