diff --git a/types/johnny-five/index.d.ts b/types/johnny-five/index.d.ts index eafa4038de..6a00952153 100644 --- a/types/johnny-five/index.d.ts +++ b/types/johnny-five/index.d.ts @@ -3,6 +3,7 @@ // Definitions by: Toshiya Nakakura // Zoltan Ujvary // Simon Colmer +// XtrimSystems // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// @@ -514,9 +515,16 @@ export class Motion { on(event: "calibrated", cb: () => void): this; } +export interface MotorPins { + pwm: number; + dir: number; + cdir?: number; + brake?:number; +} + export interface MotorOption { - pins: any; - current?: any; + pins: MotorPins; + current?: SensorOption; invertPWM?: boolean; address?: number; controller?: string; @@ -525,7 +533,7 @@ export interface MotorOption { } export declare class Motor { - constructor(option: Array | MotorOption); + constructor(option: number[] | MotorOption); readonly isOn: boolean; @@ -533,8 +541,22 @@ export declare class Motor { fwd(speed: number): void; reverse(speed: number): void; rev(speed: number): void; - start(): void; - start(speed: number): void; + start(speed?: number): void; + stop(): void; + brake(): void; + release(): void; +} + +export declare class Motors { + constructor(option: number[] | MotorOption[]); + + readonly isOn: boolean; + + forward(speed: number): void; + fwd(speed: number): void; + reverse(speed: number): void; + rev(speed: number): void; + start(speed?: number): void; stop(): void; brake(): void; release(): void; @@ -625,7 +647,7 @@ export declare class Ping { export declare interface ProximityOption { pin: number | string; controller: string; -} +} export declare interface ProximityData { cm: number; @@ -665,6 +687,7 @@ export interface SensorOption { pin: number | string; freq?: boolean; threshold?: number; + enabled?: boolean; } export declare class Sensor { diff --git a/types/johnny-five/johnny-five-tests.ts b/types/johnny-five/johnny-five-tests.ts index b2dd24904e..9d2b117344 100644 --- a/types/johnny-five/johnny-five-tests.ts +++ b/types/johnny-five/johnny-five-tests.ts @@ -155,6 +155,11 @@ board.on('ready', function(){ } }); + var motors = new five.Motors([ + { controller: 'PCA9685', pins: { pwm: 4, dir: 6 }}, + { controller: 'PCA9685', pins: { pwm: 5, dir: 7 }} + ]); + var piezo = new five.Piezo(3); // Plays a song