Renamed devices

This commit is contained in:
Nathan Kellenicki 2019-12-16 21:19:56 -08:00
parent 225f331811
commit df70d8a8a4
4 changed files with 38 additions and 16 deletions

View File

@ -16,17 +16,13 @@ export class ColorDistanceSensor extends Device {
if (this.autoSubscribe) { if (this.autoSubscribe) {
switch (event) { switch (event) {
case "color": case "color":
if (this._isWeDo2) { this.subscribe(ColorDistanceSensor.Mode.COLOR);
this.subscribe(0x00);
} else {
this.subscribe(0x08);
}
break; break;
case "distance": case "distance":
this.subscribe(0x08); this.subscribe(ColorDistanceSensor.Mode.DISTANCE);
break; break;
case "colorAndDistance": case "colorAndDistance":
this.subscribe(0x08); this.subscribe(ColorDistanceSensor.Mode.COLOR_AND_DISTANCE);
break; break;
} }
} }
@ -39,13 +35,13 @@ export class ColorDistanceSensor extends Device {
console.log(message); console.log(message);
switch (mode) { switch (mode) {
case 0x00: case ColorDistanceSensor.Mode.COLOR:
if (this._isWeDo2 && message[2] <= 10) { if (this._isWeDo2 && message[2] <= 10) {
const color = message[2]; const color = message[2];
this.emit("color", color); this.emit("color", color);
} }
break; break;
case 0x08: case ColorDistanceSensor.Mode.COLOR_AND_DISTANCE:
/** /**
* Emits when a color sensor is activated. * Emits when a color sensor is activated.
* @event ColorDistanceSensor#color * @event ColorDistanceSensor#color
@ -90,3 +86,11 @@ export class ColorDistanceSensor extends Device {
} }
} }
export namespace ColorDistanceSensor {
export enum Mode {
COLOR = 0x00,
DISTANCE = 0x01,
COLOR_AND_DISTANCE = 0x08
}
}

View File

@ -13,7 +13,7 @@ export class MotionSensor extends Device {
if (this.autoSubscribe) { if (this.autoSubscribe) {
switch (event) { switch (event) {
case "distance": case "distance":
this.subscribe(0x00); this.subscribe(MotionSensor.Mode.DISTANCE);
break; break;
} }
} }
@ -25,7 +25,7 @@ export class MotionSensor extends Device {
const isWeDo2 = (this.hub.type === Consts.HubType.WEDO2_SMART_HUB); const isWeDo2 = (this.hub.type === Consts.HubType.WEDO2_SMART_HUB);
switch (mode) { switch (mode) {
case 0x00: case MotionSensor.Mode.DISTANCE:
let distance = message[isWeDo2 ? 2 : 4]; let distance = message[isWeDo2 ? 2 : 4];
if (message[isWeDo2 ? 3 : 5] === 1) { if (message[isWeDo2 ? 3 : 5] === 1) {
distance = distance + 255; distance = distance + 255;
@ -41,3 +41,9 @@ export class MotionSensor extends Device {
} }
} }
export namespace MotionSensor {
export enum Mode {
DISTANCE = 0x00
}
}

View File

@ -14,7 +14,7 @@ export class TachoMotor extends BasicMotor {
if (this.autoSubscribe) { if (this.autoSubscribe) {
switch (event) { switch (event) {
case "rotate": case "rotate":
this.subscribe(0x02); this.subscribe(TachoMotor.Mode.ROTATION);
break; break;
} }
} }
@ -26,7 +26,7 @@ export class TachoMotor extends BasicMotor {
const isWeDo2 = (this.hub.type === Consts.HubType.WEDO2_SMART_HUB); const isWeDo2 = (this.hub.type === Consts.HubType.WEDO2_SMART_HUB);
switch (mode) { switch (mode) {
case 0x02: case TachoMotor.Mode.ROTATION:
const rotation = message.readInt32LE(isWeDo2 ? 2 : 4); const rotation = message.readInt32LE(isWeDo2 ? 2 : 4);
/** /**
* Emits when a rotation sensor is activated. * Emits when a rotation sensor is activated.
@ -48,7 +48,7 @@ export class TachoMotor extends BasicMotor {
public rotateByAngle (angle: number, power: number = 100) { public rotateByAngle (angle: number, power: number = 100) {
const isWeDo2 = (this.hub.type === Consts.HubType.WEDO2_SMART_HUB); const isWeDo2 = (this.hub.type === Consts.HubType.WEDO2_SMART_HUB);
if (isWeDo2) { if (isWeDo2) {
throw new Error("Rotating by angle is not available on the WeDo 2.0 Smart Hub"); throw new Error("Angle rotation is not available on the WeDo 2.0 Smart Hub");
} }
return new Promise((resolve) => { return new Promise((resolve) => {
this._busy = true; this._busy = true;
@ -62,3 +62,9 @@ export class TachoMotor extends BasicMotor {
} }
} }
export namespace TachoMotor {
export enum Mode {
ROTATION = 0x02
}
}

View File

@ -13,7 +13,7 @@ export class TiltSensor extends Device {
if (this.autoSubscribe) { if (this.autoSubscribe) {
switch (event) { switch (event) {
case "tilt": case "tilt":
this.subscribe(0x00); this.subscribe(TiltSensor.Mode.TILT);
break; break;
} }
} }
@ -25,7 +25,7 @@ export class TiltSensor extends Device {
const isWeDo2 = (this.hub.type === Consts.HubType.WEDO2_SMART_HUB); const isWeDo2 = (this.hub.type === Consts.HubType.WEDO2_SMART_HUB);
switch (mode) { switch (mode) {
case 0x00: case TiltSensor.Mode.TILT:
const tiltX = message.readInt8(isWeDo2 ? 2 : 4); const tiltX = message.readInt8(isWeDo2 ? 2 : 4);
const tiltY = message.readInt8(isWeDo2 ? 3 : 5); const tiltY = message.readInt8(isWeDo2 ? 3 : 5);
/** /**
@ -40,3 +40,9 @@ export class TiltSensor extends Device {
} }
} }
export namespace TiltSensor {
export enum Mode {
TILT = 0x00
}
}