From 4d3bc09e2bf8b7f44b3307e0eb623d5c025d5844 Mon Sep 17 00:00:00 2001 From: legop3 Date: Sat, 15 Nov 2025 01:16:28 -0500 Subject: [PATCH] only drive command on keypress --- server/public/src/services/driveControls.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/server/public/src/services/driveControls.js b/server/public/src/services/driveControls.js index 7e13ced0..e502ecbe 100644 --- a/server/public/src/services/driveControls.js +++ b/server/public/src/services/driveControls.js @@ -9,17 +9,22 @@ registerModule('services/driveControls', (require, exports) => { let sensorEnabled = false; let lastDrive = { left: 0, right: 0 }; const keys = new Set(); - const driveInterval = 120; window.addEventListener('keydown', (event) => { - keys.add(event.key.toLowerCase()); + const key = event.key.toLowerCase(); + if (keys.has(key)) return; + keys.add(key); + maybeSendDriveUpdate(); }); window.addEventListener('keyup', (event) => { - keys.delete(event.key.toLowerCase()); + const key = event.key.toLowerCase(); + if (!keys.has(key)) return; + keys.delete(key); + maybeSendDriveUpdate(); }); - setInterval(() => { + function maybeSendDriveUpdate() { const roverId = state.getSelected(); if (!roverId) return; const speeds = computeDrive(); @@ -30,7 +35,7 @@ registerModule('services/driveControls', (require, exports) => { type: 'drive', data: { driveDirect: speeds }, }); - }, driveInterval); + } function computeDrive() { const forward = keys.has('w');