Files
MultiRoombaRover/webui/src/controls/constants.js
T
2026-01-31 16:25:59 -05:00

83 lines
1.8 KiB
JavaScript

export const AUX_LIMITS = {
main: [-127, 127],
side: [-127, 127],
vacuum: [0, 127],
};
export const DRIVE_LIMITS = {
maxSpeed: 500,
baseSpeed: 250,
boostSpeed: 400,
};
export const COMMAND_DELAY_MS = 100;
export const SONG_NOTE_RANGE = [31, 127];
export const SONG_DEFAULT_NOTE = 60;
export const SONG_DEFAULT_DURATION = 8;
export const SONG_REPEAT_MS = 250;
export const HORN_MAX_MS = 1200;
export const HORN_HEAT_UP_PER_SEC = 1.3;
export const HORN_HEAT_COOL_PER_SEC = 0.35;
export const HORN_HEAT_RESUME_THRESHOLD = 0.7;
export const OI_COMMANDS = {
start: [128],
safe: [131],
full: [132],
passive: [128],
dock: [143],
};
export const DEFAULT_KEYMAP = {
driveForward: ['w'],
driveBackward: ['s'],
driveLeft: ['a'],
driveRight: ['d'],
boostModifier: ['\\'],
slowModifier: ['shift'],
auxMainForward: ['i'],
auxMainReverse: ['k'],
auxSideForward: ['o'],
auxSideReverse: ['l'],
auxVacuumFast: ['p'],
auxVacuumSlow: [';'],
auxAllForward: [","],
cameraUp: ['u'],
cameraDown: ['j'],
nightVisionToggle: ['e'],
hornHonk: ['h'],
driveMacro: ['f'],
dockMacro: ['g'],
chatFocus: ['enter'],
songNoteUp: ['ArrowUp'],
songNoteDown: ['ArrowDown'],
homeAssistantOn: ['ArrowRight'],
homeAssistantOff: ['ArrowLeft'],
};
export const DEFAULT_MACROS = [
{
id: 'drive-sequence',
label: 'Drive',
description: 'Start, dock, and full command sequence used by the drive button.',
steps: [
{ type: 'servo', angle: 0 },
{ type: 'oi', command: 'start' },
{ type: 'pause', duration: COMMAND_DELAY_MS },
{ type: 'oi', command: 'dock' },
{ type: 'pause', duration: COMMAND_DELAY_MS },
{ type: 'oi', command: 'full' },
],
},
{
id: 'seek-dock',
label: 'Dock',
description: 'Send the seek dock command.',
steps: [
{ type: 'oi', command: 'dock' }
],
},
];