only drive command on keypress

This commit is contained in:
legop3
2025-11-15 01:16:28 -05:00
parent 093654ea89
commit 4d3bc09e2b
+10 -5
View File
@@ -9,17 +9,22 @@ registerModule('services/driveControls', (require, exports) => {
let sensorEnabled = false; let sensorEnabled = false;
let lastDrive = { left: 0, right: 0 }; let lastDrive = { left: 0, right: 0 };
const keys = new Set(); const keys = new Set();
const driveInterval = 120;
window.addEventListener('keydown', (event) => { 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) => { 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(); const roverId = state.getSelected();
if (!roverId) return; if (!roverId) return;
const speeds = computeDrive(); const speeds = computeDrive();
@@ -30,7 +35,7 @@ registerModule('services/driveControls', (require, exports) => {
type: 'drive', type: 'drive',
data: { driveDirect: speeds }, data: { driveDirect: speeds },
}); });
}, driveInterval); }
function computeDrive() { function computeDrive() {
const forward = keys.has('w'); const forward = keys.has('w');