From df4ea5dd86a5b29f0921bbd80b3b41f3231eff88 Mon Sep 17 00:00:00 2001 From: Nathan Kellenicki Date: Wed, 23 Dec 2020 10:24:59 -0800 Subject: [PATCH] Mario gesture support --- examples/mario.js | 4 ++-- src/devices/marioaccelerometer.ts | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/examples/mario.js b/examples/mario.js index 4be7e40..5d7a258 100644 --- a/examples/mario.js +++ b/examples/mario.js @@ -18,8 +18,8 @@ poweredUP.on("discover", async (hub) => { // Wait to discover hubs await mario.connect(); // Connect to Mario console.log(`Connected to Mario!`); - mario.on("accel", (_, { x, y, z }) => { - console.log("Accelerometer", x, y, z); + mario.on("gesture", (_, { gesture }) => { + console.log("Gesture", gesture); }); mario.on("pants", (_, { pants }) => { diff --git a/src/devices/marioaccelerometer.ts b/src/devices/marioaccelerometer.ts index bf2c90d..6b0b759 100644 --- a/src/devices/marioaccelerometer.ts +++ b/src/devices/marioaccelerometer.ts @@ -32,15 +32,27 @@ export class MarioAccelerometer extends Device { const z = message[6]; this.notify("accel", { x, y, z }); break; + case Mode.GEST: + /** + * Emits when a gesture is detected + * @event MarioAccelerometer#gest + * @type {object} + * @param {number} gesture + */ + const gesture = message[4]; + this.notify("gesture", { gesture }); + break; } } } export enum Mode { - ACCEL = 0x00 + ACCEL = 0x00, + GEST = 0x01, } export const ModeMap: {[event: string]: number} = { - "accel": Mode.ACCEL + "accel": Mode.ACCEL, + "gesture": Mode.GEST, };