waterrower
Version:
Talk to your WaterRower!
73 lines (72 loc) • 2.03 kB
TypeScript
/// <reference types="node" />
import { Observable, Subject } from 'rxjs/Rx';
import * as events from 'events';
export declare class WaterRower extends events.EventEmitter {
private refreshRate;
private baudRate;
private port;
private dataDirectory;
private datapoints;
private recordingSubscription;
reads$: Subject<ReadValue>;
datapoints$: Observable<DataPoint>;
constructor(options?: WaterRowerOptions);
private discoverPort;
private setupSerialPort;
private setupStreams;
private send;
private initialize;
private close;
reset(): void;
requestDataPoints(points?: string | string[]): void;
readDataPoints(points?: string | string[]): any;
startRecording(name?: string): void;
stopRecording(): void;
getRecordings(): string[];
playRecording(name?: string): void;
startSimulation(): void;
defineDistanceWorkout(distance: number, units?: Units): void;
defineDurationWorkout(seconds: number): void;
displaySetDistance(units: Units): void;
displaySetIntensity(option: IntensityDisplayOptions): void;
displaySetAverageIntensity(option: AverageIntensityDisplayOptions): void;
}
export interface WaterRowerOptions {
portName?: string;
baudRate?: number;
refreshRate?: number;
dataDirectory?: string;
datapoints?: string | string[];
}
export interface DataPoint {
time?: Date;
name?: string;
address: string;
length: string;
value: any;
}
export interface ReadValue {
time: number;
type: string;
data: string;
}
export declare enum IntensityDisplayOptions {
MetersPerSecond = 0,
MPH = 1,
_500m = 2,
_2km = 3,
Watts = 4,
CaloriesPerHour = 5
}
export declare enum AverageIntensityDisplayOptions {
AverageMetersPerSecond = 0,
AverageMPH = 1,
_500m = 2,
_2km = 3
}
export declare enum Units {
Meters = 1,
Miles = 2,
Kilometers = 3,
Strokes = 4
}