mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-16 01:21:20 -04:00
only drive command on keypress
This commit is contained in:
@@ -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');
|
||||||
|
|||||||
Reference in New Issue
Block a user