diff options
author | Jakob Stendahl <jakob.stendahl@outlook.com> | 2021-02-06 14:10:00 +0100 |
---|---|---|
committer | Jakob Stendahl <jakob.stendahl@outlook.com> | 2021-02-06 14:10:00 +0100 |
commit | b07c2d6792174c9132679671ea7dae77c87349d9 (patch) | |
tree | 06c534166d24f3c426a7dff9aa1cbce2e1cfd639 /src/js/hoverControlModule.js | |
parent | 34a24733ef7159105ab162f870b96e9649bc5c34 (diff) | |
download | hoverbit-ble-b07c2d6792174c9132679671ea7dae77c87349d9.tar.gz hoverbit-ble-b07c2d6792174c9132679671ea7dae77c87349d9.zip |
Use parcel, add features
Diffstat (limited to 'src/js/hoverControlModule.js')
-rw-r--r-- | src/js/hoverControlModule.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/js/hoverControlModule.js b/src/js/hoverControlModule.js new file mode 100644 index 0000000..44c06fb --- /dev/null +++ b/src/js/hoverControlModule.js @@ -0,0 +1,75 @@ +import { notif_alert, notif_warn, notif_info, notif_success } from './notification'; + +export default class hoverControlModule { + #throttle = 0; + #throttleAcc = 0; + #rudder = 0; + #rudderAcc = 0; + #arm = 0; + #armAcc = 0; + + constructor() {} + + acc(accString) { + accString.match(/[A-Z][-,0-9]+/g).forEach((item, i) => { + switch (item.substring(0, 1)) { + case "T": + this.#throttleAcc = parseInt(item.substring(1, item.length)); + break; + case "R": + this.#rudderAcc = parseInt(item.substring(1, item.length)); + break; + case "A": + this.#armAcc = parseInt(item.substring(1, item.length)) == 1; + if (this.#armAcc) { + document.body.classList.add("armed"); + } else { + document.body.classList.remove("armed"); + } + break; + case "S": + break; + default: + console.log(`Unkown acc: ${item}`); + } + }); + document.querySelector(".acc-string pre").innerHTML = `T: ${this.#throttleAcc}, R: ${this.#rudderAcc}`; + } + + reset() { + this.setArm(0); + this.setThrottle(0); + this.setRudder(0); + } + + setThrottle(throttle) { + if (!this.#armAcc) { return; } + if (throttle > 100) { throttle = 100; } + if (throttle < 0) { throttle = 0; } + this.#throttle = throttle; + } + getThrottle() { + return this.#throttle; + } + + setRudder(rudder) { + if (!this.#armAcc) { return; } + if (rudder > 90) { rudder = 90; } + if (rudder < -90) { rudder = -90; } + this.#rudder = rudder; + } + getRudder() { + return this.#rudder; + } + + setArm(arm) { + this.#arm = arm; + if (!this.#arm) { + this.#throttle = 0; + this.#rudder = 0; + } + } + getArm() { + return this.#arm; + } +} |