Показать сообщение отдельно
  #1 (permalink)  
Старый 06.01.2019, 02:05
Новичок на форуме
Отправить личное сообщение для Artem_r32 Посмотреть профиль Найти все сообщения от Artem_r32
 
Регистрация: 06.01.2019
Сообщений: 4

webiopi car robot mouseUP/down в key
1 Поздравляю Всех с наступившим!!! Продолжим.
Собрал на скорую управление (GPIO+l298n) для старой RC car.
Настроил всё естественно через webiopi.
Серверная часть на JS. Управление примитивное из готовых вариантов на просторах интернета.


Суть в том что управлять через веб интерфейс - кликая на ПК/смартфоне на экран совсем не удобно. пример
https://drive.google.com/open?id=1hj...gOyOUnQHEfiYWG


За последние 2 дня я так и не смог реализовать дублирование нажатий мышью кнопками с помощью keyup\down
Хочу услышать грамотное решение..
мой HTML
<!DOCTYPE html>
<html lang="ru">
<p align="center"><iframe align="middle" frameborder="0" height="720" id="strea$
        <head>
                <meta charset="utf-8">
                <title>Робот</title>
                <link rel="stylesheet" href="script.css">
                <script src="/jquery.js"></script>
                <script src="/script.js"></script>
        </head>
        <body>
                <div id="wrapper">
                        <button id="up">▲</button>
                        <button id="left">◄</button>
                        <button id="right">►</button>
                        <button id="down">▼</button>
                </div>
        </body>
</html>


и главный виновник


var robot = {
                ports: {
                up: 26,
                right: 13,
                left: 6,
                down: 19
        },
        ready: function() {
                console.log('started');

              $('#up, #right, #left, #right, #down').on({
                        mousedown: robot.start,
                        mouseup: robot.end
                });

        },
        start: function() {
		robot.send(this.id, 1);
	},
	end: function() {
		robot.send(this.id, 0);
	},
	send: function(port, value) {
		$.ajax({
			type: 'POST',
			url: '/GPIO/' + robot.ports[port] + '/value/' + value
		});
	}
};

$(document).ready(robot.ready);



Пытался добавить в функцию
ready: function() {
console.log('started');
$('#up, #right, #left, #right').on({
mousedown: robot.start,
mouseup: robot.end
});

что-то типо
document.addEventListener('keydown', function(e) {
if(e.keyCode == 114){document.getElementById('button id="up"').click();
но т.к не смог разобрать ничего не вышло.
колдовал с

document.onkeydown = function(e){
e = e || window.event;
if(e.keyCode === 87) {
document.location.href = "#up";
}
}

вижу решение в

$(document).keydown(function(e)
{
switch(e.which)
{
case 87:up();
case 83:down();
case 65:left();
case 68:right();
}
});

p.s исходный скрипт
https://drive.google.com/open?id=1ol...jPlqCYyNRE3RfJ

Последний раз редактировалось Artem_r32, 06.01.2019 в 02:12.
Ответить с цитированием