From d329ce6191f1b8aafa2c0461e590e446bb4b509f Mon Sep 17 00:00:00 2001 From: Nathan Kellenicki Date: Mon, 13 Jan 2020 14:30:43 -0800 Subject: [PATCH] Added support for Spike Prime motors --- src/consts.ts | 6 ++++-- src/devices/techniclargeangularmotor.ts | 13 +++++++++++++ src/devices/technicmediumangularmotor.ts | 13 +++++++++++++ src/hubs/basehub.ts | 4 ++++ src/hubs/lpf2hub.ts | 1 - src/index-browser.ts | 4 ++++ src/index-node.ts | 4 ++++ 7 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src/devices/techniclargeangularmotor.ts create mode 100644 src/devices/technicmediumangularmotor.ts diff --git a/src/consts.ts b/src/consts.ts index 0c66aba..1ea749c 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -69,8 +69,10 @@ export enum DeviceType { DUPLO_TRAIN_BASE_SPEAKER = 42, DUPLO_TRAIN_BASE_COLOR_SENSOR = 43, DUPLO_TRAIN_BASE_SPEEDOMETER = 44, - TECHNIC_LARGE_LINEAR_MOTOR = 46, - TECHNIC_XLARGE_LINEAR_MOTOR = 47, + TECHNIC_LARGE_LINEAR_MOTOR = 46, // Technic Control+ + TECHNIC_XLARGE_LINEAR_MOTOR = 47, // Technic Control+ + TECHNIC_MEDIUM_ANGULAR_MOTOR = 48, // Spike Prime + TECHNIC_LARGE_ANGULAR_MOTOR = 49, // Spike Prime TECHNIC_MEDIUM_HUB_GEST_SENSOR = 54, REMOTE_CONTROL_BUTTON = 55, REMOTE_CONTROL_RSSI = 56, diff --git a/src/devices/techniclargeangularmotor.ts b/src/devices/techniclargeangularmotor.ts new file mode 100644 index 0000000..2ef4ed1 --- /dev/null +++ b/src/devices/techniclargeangularmotor.ts @@ -0,0 +1,13 @@ +import { AbsoluteMotor } from "./absolutemotor"; + +import { IDeviceInterface } from "../interfaces"; + +import * as Consts from "../consts"; + +export class TechnicLargeAngularMotor extends AbsoluteMotor { + + constructor (hub: IDeviceInterface, portId: number) { + super(hub, portId, {}, Consts.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR); + } + +} diff --git a/src/devices/technicmediumangularmotor.ts b/src/devices/technicmediumangularmotor.ts new file mode 100644 index 0000000..421838c --- /dev/null +++ b/src/devices/technicmediumangularmotor.ts @@ -0,0 +1,13 @@ +import { AbsoluteMotor } from "./absolutemotor"; + +import { IDeviceInterface } from "../interfaces"; + +import * as Consts from "../consts"; + +export class TechnicMediumAngularMotor extends AbsoluteMotor { + + constructor (hub: IDeviceInterface, portId: number) { + super(hub, portId, {}, Consts.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR); + } + +} diff --git a/src/hubs/basehub.ts b/src/hubs/basehub.ts index d917ead..c7c9dd2 100644 --- a/src/hubs/basehub.ts +++ b/src/hubs/basehub.ts @@ -20,7 +20,9 @@ import { MoveHubTiltSensor } from "../devices/movehubtiltsensor"; import { PiezoBuzzer } from "../devices/piezobuzzer"; import { RemoteControlButton } from "../devices/remotecontrolbutton"; import { SimpleMediumLinearMotor } from "../devices/simplemediumlinearmotor"; +import { TechnicLargeAngularMotor } from "../devices/techniclargeangularmotor"; import { TechnicLargeLinearMotor } from "../devices/techniclargelinearmotor"; +import { TechnicMediumAngularMotor } from "../devices/technicmediumangularmotor"; import { TechnicMediumHubAccelerometerSensor } from "../devices/technicmediumhubaccelerometersensor"; import { TechnicMediumHubGyroSensor } from "../devices/technicmediumhubgyrosensor"; import { TechnicMediumHubTiltSensor } from "../devices/technicmediumhubtiltsensor"; @@ -348,6 +350,8 @@ export class BaseHub extends EventEmitter { [Consts.DeviceType.TECHNIC_MEDIUM_HUB_GYRO_SENSOR]: TechnicMediumHubGyroSensor, [Consts.DeviceType.TECHNIC_MEDIUM_HUB_ACCELEROMETER]: TechnicMediumHubAccelerometerSensor, [Consts.DeviceType.MEDIUM_LINEAR_MOTOR]: MediumLinearMotor, + [Consts.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR]: TechnicMediumAngularMotor, + [Consts.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR]: TechnicLargeAngularMotor, [Consts.DeviceType.TECHNIC_LARGE_LINEAR_MOTOR]: TechnicLargeLinearMotor, [Consts.DeviceType.TECHNIC_XLARGE_LINEAR_MOTOR]: TechnicXLargeLinearMotor, [Consts.DeviceType.COLOR_DISTANCE_SENSOR]: ColorDistanceSensor, diff --git a/src/hubs/lpf2hub.ts b/src/hubs/lpf2hub.ts index 8d980f5..7f674f8 100644 --- a/src/hubs/lpf2hub.ts +++ b/src/hubs/lpf2hub.ts @@ -195,7 +195,6 @@ export class LPF2Hub extends BaseHub { // Button press reports if (message[3] === 0x02) { - console.log("BUTTON PRESS", message); if (message[5] === 1) { /** * Emits when a button is pressed. diff --git a/src/index-browser.ts b/src/index-browser.ts index 284b682..6b9e86b 100644 --- a/src/index-browser.ts +++ b/src/index-browser.ts @@ -26,7 +26,9 @@ import { MoveHubTiltSensor } from "./devices/movehubtiltsensor"; import { PiezoBuzzer } from "./devices/piezobuzzer"; import { RemoteControlButton } from "./devices/remotecontrolbutton"; import { SimpleMediumLinearMotor } from "./devices/simplemediumlinearmotor"; +import { TechnicLargeAngularMotor } from "./devices/techniclargeangularmotor"; import { TechnicLargeLinearMotor } from "./devices/techniclargelinearmotor"; +import { TechnicMediumAngularMotor } from "./devices/technicmediumangularmotor"; import { TechnicMediumHubAccelerometerSensor } from "./devices/technicmediumhubaccelerometersensor"; import { TechnicMediumHubGyroSensor } from "./devices/technicmediumhubgyrosensor"; import { TechnicMediumHubTiltSensor } from "./devices/technicmediumhubtiltsensor"; @@ -66,6 +68,8 @@ window.PoweredUP = { TechnicMediumHubAccelerometerSensor, TechnicMediumHubGyroSensor, TechnicMediumHubTiltSensor, + TechnicMediumAngularMotor, + TechnicLargeAngularMotor, TechnicLargeLinearMotor, TechnicXLargeLinearMotor, TiltSensor, diff --git a/src/index-node.ts b/src/index-node.ts index edf4f85..591735e 100644 --- a/src/index-node.ts +++ b/src/index-node.ts @@ -26,7 +26,9 @@ import { MoveHubTiltSensor } from "./devices/movehubtiltsensor"; import { PiezoBuzzer } from "./devices/piezobuzzer"; import { RemoteControlButton } from "./devices/remotecontrolbutton"; import { SimpleMediumLinearMotor } from "./devices/simplemediumlinearmotor"; +import { TechnicLargeAngularMotor } from "./devices/techniclargeangularmotor"; import { TechnicLargeLinearMotor } from "./devices/techniclargelinearmotor"; +import { TechnicMediumAngularMotor } from "./devices/technicmediumangularmotor"; import { TechnicMediumHubAccelerometerSensor } from "./devices/technicmediumhubaccelerometersensor"; import { TechnicMediumHubGyroSensor } from "./devices/technicmediumhubgyrosensor"; import { TechnicMediumHubTiltSensor } from "./devices/technicmediumhubtiltsensor"; @@ -66,6 +68,8 @@ export { TechnicMediumHubAccelerometerSensor, TechnicMediumHubGyroSensor, TechnicMediumHubTiltSensor, + TechnicMediumAngularMotor, + TechnicLargeAngularMotor, TechnicLargeLinearMotor, TechnicXLargeLinearMotor, TiltSensor,