diff options
author | Jakob Stendahl <jakobste@uio.no> | 2021-01-11 21:17:44 +0100 |
---|---|---|
committer | Jakob Stendahl <jakobste@uio.no> | 2021-01-11 21:17:44 +0100 |
commit | 5503baa65102b47d8f2b07fc69b0ebad9507613c (patch) | |
tree | e5b1d6840a5b0a32130596821f15c5e5c5a66bd9 | |
parent | cee3d11da77a1754768fcbd58cca2b61874bcef8 (diff) | |
download | hoverbit-ble-5503baa65102b47d8f2b07fc69b0ebad9507613c.tar.gz hoverbit-ble-5503baa65102b47d8f2b07fc69b0ebad9507613c.zip |
:sparkles: Add ping indicator and send all parameters
-rw-r--r-- | index.html | 5 | ||||
-rw-r--r-- | script.js | 38 | ||||
-rw-r--r-- | styles.css | 22 |
3 files changed, 53 insertions, 12 deletions
@@ -20,12 +20,15 @@ </span> <span class="battery"> <i class="material-icons">battery_std</i> - <span class="connection-status">0%</span> + <span class="battery-status">0%</span> </span> <span class="arm"> <i class="material-icons">warning</i> <span class="arm-status">Disarmed</span> </span> + <span class="ping"> + <i class="material-icons">settings_input_antenna</i> + </span> </div> </div> @@ -108,12 +108,12 @@ function on_pointer_hold_rudder() { } function on_mouse_move_rudder(event) { - let rudder = ((event.clientX * (90 - (-90))) / (rudderElement.clientWidth)) + (-90); + let rudder = Math.round(((event.clientX * (90 - (-90))) / (rudderElement.clientWidth)) + (-90)); hoverControl.setRudder(rudder); } function on_touch_move_rudder(touch) { - let rudder = ((touch.touches[0].clientX * (90 - (-90))) / (rudderElement.clientWidth)) + (-90); + let rudder = Math.round(((touch.touches[0].clientX * (90 - (-90))) / (rudderElement.clientWidth)) + (-90)); hoverControl.setRudder(rudder); } @@ -213,15 +213,31 @@ document.getElementById("btn_connect").onclick = async () => { } if (services.uartService) { - services.uartService.addEventListener("receiveText", eventHandler); - - document.getElementById("btn_arm").onclick = async() => { - await services.uartService.sendText("A1:"); - } - - document.getElementById("btn_disarm").onclick = async() => { - await services.uartService.sendText("A0:"); - } + services.uartService.addEventListener("receiveText", (event) => { + var elm = document.querySelector(".ping i"); + var newone = elm.cloneNode(true); + elm.parentNode.replaceChild(newone, elm); + + document.querySelector(".battery-status").innerHTML = event.detail + "mV"; + // console.log(event); + }); + + let sendCommands = setInterval(async() => { + if (device) { + if (device.gatt.connected) { + let command = + "T" + hoverControl.getThrottle() + + "R" + hoverControl.getRudder() + + "A" + (hoverControl.getArm() ? "1" : "0") + + "S0" + // Sending this one because my decoding-code is a bit buggy currently. + ":"; + console.log(command); + await services.uartService.sendText(command); + } else { + clearInterval(sendCommands) + } + } + }, 50); } } @@ -67,6 +67,28 @@ body { color: #008000; } +.ping { + display: none; +} + +.connected .ping { + display: block; + margin-left: 5px; + color: #4a4a4a; +} + +.ping i { + -webkit-animation: ping-fade-out 2s forwards; /* Safari 4+ */ + -moz-animation: ping-fade-out 2s forwards; /* Fx 2+ */ + -o-animation: ping-fade-out 2s forwards; /* Opera 12+ */ + animation: ping-fade-out 2s forwards; /* IE 10+, Fx 29+ */ +} + +@-webkit-keyframes ping-fade-out { + 0% { opacity: 1; } + 100% { opacity: 0; } +} + .options { position: absolute; display: flex; |