From 4890b4e5c65ce6c512045ba3741bc5ea943225ea Mon Sep 17 00:00:00 2001 From: legop3 Date: Fri, 1 May 2026 19:37:38 -0400 Subject: [PATCH] kjf --- .../src/services/neatoService/lidarRuntime.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/server/src/services/neatoService/lidarRuntime.js b/server/src/services/neatoService/lidarRuntime.js index c55897b7..f36293ec 100644 --- a/server/src/services/neatoService/lidarRuntime.js +++ b/server/src/services/neatoService/lidarRuntime.js @@ -4,6 +4,7 @@ const fs = require('fs'); const SCAN_TIMEOUT_MS = 8000; const RECONNECT_DELAY_MS = 5000; +const IDLE_RETRY_MS = 1000; function sanitizeLogText(value) { return String(value || '') @@ -111,6 +112,14 @@ function createLidarRuntime({ logger, host, port = 6053, key, logFile = '', shou }, 0); } + function schedulePollRetry(delayMs = IDLE_RETRY_MS) { + if (state.pollSoonTimer) return; + state.pollSoonTimer = setTimeout(() => { + state.pollSoonTimer = null; + tickPoll(); + }, delayMs); + } + function scheduleReconnect() { if (state.reconnectTimer) return; state.reconnectTimer = setTimeout(() => { @@ -330,8 +339,14 @@ function createLidarRuntime({ logger, host, port = 6053, key, logFile = '', shou } async function tickPoll() { - if (!state.connected) return; - if (!shouldPoll?.()) return; + if (!state.connected) { + schedulePollRetry(); + return; + } + if (!shouldPoll?.()) { + schedulePollRetry(); + return; + } if (state.requestInFlight) return; state.requestInFlight = true; state.requestStartedAt = Date.now();