diff --git a/public/GamePad.js b/public/GamePad.js index b405351..8670a3a 100755 --- a/public/GamePad.js +++ b/public/GamePad.js @@ -1,109 +1,109 @@ -var isRunning = false; -var gamePadId = 0; -var gamepad = {}; - -let lastCheckTime = 0; - - - -function checkGamePad() { - if(isRunning == false){return;} - - const stepSize = "0.01"; - const stepSizeXYZ = "0.5"; // 3 ist auch ok - const stepSizeE = "0.01"; - var gp = navigator.getGamepads()[gamePadId] - var buttons = gp.buttons - - var xyzSpeed = 5000; - - var psi = gp.axes[0]; - var z = gp.axes[1]; - var x = gp.axes[2]; - var y = gp.axes[3]; - - - // Dreieck zum Dreieck-Setzen - if (buttons[3].pressed) { - socket.sendCommand(`G90 G1 X0 Y300 Z0 A${Math.PI/2} B${-1.0*Math.PI/2} C0 F${xyzSpeed}`); - } - if (buttons[4].pressed) { - //console.log("x=" + robot.x + " y=" + robot.y + " z=" + robot.z); - } - - - - // X Button setzt eine Marke - if(buttons[0].pressed && (Date.now() - lastCheckTime > 500)){ - lastCheckTime = Date.now() - console.log('FPoint!'); - socket.sendCommand('FPoint'); - socket.sendCommand('FShow'); - } - - // L1 und R1 Button to forward-backward in Point-List - if(gp.buttons[4].pressed && (Date.now() - lastCheckTime > 500)){ - lastCheckTime = Date.now() - socket.sendCommand('FMinus'); - socket.sendCommand('FShow'); - } - if(gp.buttons[5].pressed && (Date.now() - lastCheckTime > 500)){ - lastCheckTime = Date.now() - socket.sendCommand('FPlus'); - socket.sendCommand('FShow'); - } - - if (x < -0.2) { socket.sendCommand(`G91 G1 X+${stepSizeXYZ} F${xyzSpeed}`);} - if (x > 0.2) { socket.sendCommand(`G91 G1 X-${stepSizeXYZ} F${xyzSpeed}`);} - - if (y < -0.2) { socket.sendCommand(`G91 G1 Y${stepSizeXYZ} F${xyzSpeed}`); } - if (y > 0.2) { socket.sendCommand(`G91 G1 Y-${stepSizeXYZ} F${xyzSpeed}`);} - - if (z < -0.2) { socket.sendCommand(`G91 G1 Z${stepSizeXYZ} F${xyzSpeed}`); } - if (z > 0.2) { socket.sendCommand(`G91 G1 Z-${stepSizeXYZ} F${xyzSpeed}`); } - - - // Greif-Richtung - // LeftRight - if(buttons[14].pressed){ socket.sendCommand(`G91 G1 A${stepSize} F${xyzSpeed}`);} - if(buttons[15].pressed){ socket.sendCommand(`G91 G1 A-${stepSize} F${xyzSpeed}`);} - // Up - Down - if(buttons[12].pressed){ socket.sendCommand(`G91 G1 B${stepSize} F${xyzSpeed}`);} - if(buttons[13].pressed){ socket.sendCommand(`G91 G1 B-${stepSize} F${xyzSpeed}`);} - // Drehung - if (psi < -0.2) { socket.sendCommand(`G91 G1 C${stepSize} F${xyzSpeed}`); } - if (psi > 0.2) { socket.sendCommand(`G91 G1 C-${stepSize} F${xyzSpeed}`); } - - // Trigger-Buttons für Öffnen und Schliessen - if(buttons[6].pressed){socket.sendCommand(`G91 G1 E-${stepSizeE} F${xyzSpeed}`);} - if(buttons[7].pressed){socket.sendCommand(`G91 G1 E${stepSizeE} F${xyzSpeed}`);} - if (isRunning) { setTimeout(checkGamePad, 15);} -} - -function gamepadHandler(event, connecting) { - - gamepad = event.gamepad; - if (typeof gamepad === `undefined`) { - isRunning = false; - gamePadId = 0; - console.warn("GamePad kann nicht gefunden werden"); - return; - } - - if (connecting) { - console.log("GamePad " + event.gamepad.index + " connected"); - gamePadId = gamepad.index; - isRunning = true; - setTimeout(checkGamePad, 20); - } else { - console.log("GamePad " +gamePadId +" disconnected"); - isRunning = false; - gamePadId = 0; - } -} - - -window.addEventListener("gamepadconnected", function (e) { gamepadHandler(e, true); }, false); -window.addEventListener("gamepaddisconnected", function (e) { gamepadHandler(e, false); }, false); - +var isRunning = false; +var gamePadId = 0; +var gamepad = {}; + +let lastCheckTime = 0; + + + +function checkGamePad() { + if(isRunning == false){return;} + + const stepSize = "0.01"; + const stepSizeXYZ = "0.5"; // 3 ist auch ok + const stepSizeE = "0.01"; + var gp = navigator.getGamepads()[gamePadId] + var buttons = gp.buttons + + var xyzSpeed = 5000; + + var psi = gp.axes[0]; + var z = gp.axes[1]; + var x = gp.axes[2]; + var y = gp.axes[3]; + + + // Dreieck zum Dreieck-Setzen + if (buttons[3].pressed) { + socket.sendCommand(`G90 G1 X0 Y-300 Z0 A${Math.PI/2} B${-1.0*Math.PI/2} C0 F${xyzSpeed}`); + } + if (buttons[4].pressed) { + //console.log("x=" + robot.x + " y=" + robot.y + " z=" + robot.z); + } + + + + // X Button setzt eine Marke + if(buttons[0].pressed && (Date.now() - lastCheckTime > 500)){ + lastCheckTime = Date.now() + console.log('FPoint!'); + socket.sendCommand('FPoint'); + socket.sendCommand('FShow'); + } + + // L1 und R1 Button to forward-backward in Point-List + if(gp.buttons[4].pressed && (Date.now() - lastCheckTime > 500)){ + lastCheckTime = Date.now() + socket.sendCommand('FMinus'); + socket.sendCommand('FShow'); + } + if(gp.buttons[5].pressed && (Date.now() - lastCheckTime > 500)){ + lastCheckTime = Date.now() + socket.sendCommand('FPlus'); + socket.sendCommand('FShow'); + } + + if (x < -0.2) { socket.sendCommand(`G91 G1 X+${stepSizeXYZ} F${xyzSpeed}`);} + if (x > 0.2) { socket.sendCommand(`G91 G1 X-${stepSizeXYZ} F${xyzSpeed}`);} + + if (y < -0.2) { socket.sendCommand(`G91 G1 Y${stepSizeXYZ} F${xyzSpeed}`); } + if (y > 0.2) { socket.sendCommand(`G91 G1 Y-${stepSizeXYZ} F${xyzSpeed}`);} + + if (z < -0.2) { socket.sendCommand(`G91 G1 Z${stepSizeXYZ} F${xyzSpeed}`); } + if (z > 0.2) { socket.sendCommand(`G91 G1 Z-${stepSizeXYZ} F${xyzSpeed}`); } + + + // Greif-Richtung + // LeftRight + if(buttons[14].pressed){ socket.sendCommand(`G91 G1 A${stepSize} F${xyzSpeed}`);} + if(buttons[15].pressed){ socket.sendCommand(`G91 G1 A-${stepSize} F${xyzSpeed}`);} + // Up - Down + if(buttons[12].pressed){ socket.sendCommand(`G91 G1 B${stepSize} F${xyzSpeed}`);} + if(buttons[13].pressed){ socket.sendCommand(`G91 G1 B-${stepSize} F${xyzSpeed}`);} + // Drehung + if (psi < -0.2) { socket.sendCommand(`G91 G1 C${stepSize} F${xyzSpeed}`); } + if (psi > 0.2) { socket.sendCommand(`G91 G1 C-${stepSize} F${xyzSpeed}`); } + + // Trigger-Buttons für Öffnen und Schliessen + if(buttons[6].pressed){socket.sendCommand(`G91 G1 E-${stepSizeE} F${xyzSpeed}`);} + if(buttons[7].pressed){socket.sendCommand(`G91 G1 E${stepSizeE} F${xyzSpeed}`);} + if (isRunning) { setTimeout(checkGamePad, 15);} +} + +function gamepadHandler(event, connecting) { + + gamepad = event.gamepad; + if (typeof gamepad === `undefined`) { + isRunning = false; + gamePadId = 0; + console.warn("GamePad kann nicht gefunden werden"); + return; + } + + if (connecting) { + console.log("GamePad " + event.gamepad.index + " connected"); + gamePadId = gamepad.index; + isRunning = true; + setTimeout(checkGamePad, 20); + } else { + console.log("GamePad " +gamePadId +" disconnected"); + isRunning = false; + gamePadId = 0; + } +} + + +window.addEventListener("gamepadconnected", function (e) { gamepadHandler(e, true); }, false); +window.addEventListener("gamepaddisconnected", function (e) { gamepadHandler(e, false); }, false); + document.addEventListener("touchstart", e => { console.log("TouchStart"); }) \ No newline at end of file