1 changed files with 0 additions and 149 deletions
@ -1,149 +0,0 @@ |
|||||
/* |
|
||||
############ |
|
||||
# COMMANDS # |
|
||||
############ |
|
||||
|
|
||||
COMMAND_CONTINUE |
|
||||
COMMAND_STOP |
|
||||
COMMAND_RIDE_FORWARD |
|
||||
COMMAND_FORWARD_STEER_LEFT |
|
||||
COMMAND_FORWARD_STEER_RIGHT |
|
||||
COMMAND_RIDE_BACKWARD |
|
||||
COMMAND_BACKWARD_STEER_LEFT |
|
||||
COMMAND_BACKWARD_STEER_RIGHT |
|
||||
COMMAND_TURN_LEFT |
|
||||
COMMAND_TURN_RIGHT |
|
||||
|
|
||||
COMMAND_SEND_STATE |
|
||||
|
|
||||
COMMAND_SET_PWM_BYTE |
|
||||
COMMAND_SET_SPEED_LEVEL |
|
||||
COMMAND_SET_SAFE_STOP_INTENSITY |
|
||||
COMMAND_SET_FREE_SPACE_MULTIPLIER |
|
||||
*/ |
|
||||
|
|
||||
|
|
||||
var pressed_keys = new Set(); |
|
||||
var command = null; |
|
||||
// pressed_keys.add("UP");
|
|
||||
|
|
||||
setInterval(function(){ |
|
||||
document.getElementById("keys").innerHTML = Array.from(pressed_keys).join(' '); |
|
||||
}, 50); |
|
||||
|
|
||||
setInterval(function(){ |
|
||||
document.getElementById("command").innerHTML = command; |
|
||||
}, 50) |
|
||||
|
|
||||
setInterval(function(){ |
|
||||
if (document.visibilityState == "visible") { |
|
||||
send_command('COMMAND_CONTINUE'); |
|
||||
} |
|
||||
}, 1000); |
|
||||
|
|
||||
|
|
||||
document.addEventListener('keydown', function(event) { |
|
||||
switch (event.code){ |
|
||||
case 'ArrowUp': |
|
||||
pressed_keys.add("UP"); |
|
||||
break; |
|
||||
case 'ArrowDown': |
|
||||
pressed_keys.add("DOWN"); |
|
||||
break; |
|
||||
case 'ArrowLeft': |
|
||||
pressed_keys.add("LEFT"); |
|
||||
break; |
|
||||
case 'ArrowRight': |
|
||||
pressed_keys.add("RIGHT"); |
|
||||
break; |
|
||||
} |
|
||||
|
|
||||
update_state(); |
|
||||
}); |
|
||||
|
|
||||
document.addEventListener('keyup', function(event) { |
|
||||
switch (event.code){ |
|
||||
case 'ArrowUp': |
|
||||
pressed_keys.delete("UP"); |
|
||||
break; |
|
||||
case 'ArrowDown': |
|
||||
pressed_keys.delete("DOWN"); |
|
||||
break; |
|
||||
case 'ArrowLeft': |
|
||||
pressed_keys.delete("LEFT"); |
|
||||
break; |
|
||||
case 'ArrowRight': |
|
||||
pressed_keys.delete("RIGHT"); |
|
||||
break; |
|
||||
} |
|
||||
|
|
||||
update_state(); |
|
||||
}); |
|
||||
|
|
||||
|
|
||||
function update_state() { |
|
||||
if (pressed_keys.size == 0) { |
|
||||
command = "COMMAND_STOP"; |
|
||||
send_command(command); |
|
||||
return; |
|
||||
} |
|
||||
else if (pressed_keys.size > 2) { |
|
||||
command = 'COMMAND_CONTINUE'; |
|
||||
return; |
|
||||
} |
|
||||
else { |
|
||||
command = map_key_with_command(pressed_keys); |
|
||||
send_command(command); |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
function map_key_with_command(pressed_keys) { |
|
||||
if (pressed_keys.has("UP")) { |
|
||||
if (pressed_keys.size == 1) |
|
||||
return "COMMAND_RIDE_FORWARD"; |
|
||||
else if (pressed_keys.has("LEFT")) |
|
||||
return "COMMAND_FORWARD_STEER_LEFT"; |
|
||||
else if (pressed_keys.has("RIGHT")) |
|
||||
return "COMMAND_FORWARD_STEER_RIGHT"; |
|
||||
else if (pressed_keys.has("DOWN")) { |
|
||||
return "COMMAND_STOP"; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
else if (pressed_keys.has("DOWN")) { |
|
||||
if (pressed_keys.size == 1) |
|
||||
return "COMMAND_RIDE_BACKWARD"; |
|
||||
else if (pressed_keys.has("LEFT")) |
|
||||
return "COMMAND_BACKWARD_STEER_LEFT"; |
|
||||
else if (pressed_keys.has("RIGHT")) |
|
||||
return "COMMAND_BACKWARD_STEER_RIGHT"; |
|
||||
} |
|
||||
|
|
||||
else if (pressed_keys.has("LEFT")) { |
|
||||
return "COMMAND_TURN_LEFT"; |
|
||||
} |
|
||||
|
|
||||
else if (pressed_keys.has("RIGHT")) { |
|
||||
return "COMMAND_TURN_RIGHT"; |
|
||||
} |
|
||||
|
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
function send_command(command) { |
|
||||
$.ajax({ |
|
||||
headers: { "X-CSRFToken": csrf_token }, |
|
||||
url: send_command_url, |
|
||||
type: 'post', |
|
||||
dataType: 'json', |
|
||||
data: { |
|
||||
command : command, |
|
||||
}, |
|
||||
success: function(response){ |
|
||||
if (response.status == "ERROR") { |
|
||||
alert(response.message); |
|
||||
} |
|
||||
}, |
|
||||
}); |
|
||||
} |
|
Loading…
Reference in new issue