UNPKG

incyclist-ant-plus

Version:

Incyclist library for ANT+ - originally forked from longhorn/ant-plus

78 lines (77 loc) 2.47 kB
import EventEmitter from 'events'; export interface IDecodeDataCallback { (data: Buffer): void; } export interface BaseInterface extends EventEmitter { attach(channel: number, type: string, deviceID: number, deviceType: number, transmissionType: number, timeout: number, period: number, frequency: number): void; detach(): void; handleEventMessages(data: Buffer): void; } export interface BaseScanner extends BaseInterface { scan(type: string, frequency: number): void; } export interface BaseSensor extends BaseInterface { write(data: Buffer): void; } export type AntDeviceProps = { deviceNo?: number; debug?: boolean; logger?: { logEvent?: (event: any) => void; log: (...args: any[]) => void; }; startupTimeout?: number; detailedStartReport?: boolean; }; export type AntOpenResult = 'Success' | 'AlreadyInUse' | 'NoStick' | 'CommunicationError' | 'StartupError'; export interface IAntDevice { open(): Promise<boolean | AntOpenResult>; close(): Promise<boolean>; getMaxChannels(): number; getChannel(): IChannel; freeChannel(channel: IChannel): void; getDeviceNumber(): number; write(data: Buffer): void; } export type ChannelProps = { debug?: boolean; logger?: { logEvent?: (event: any) => void; log: (...args: any[]) => void; }; }; export type Profile = 'PWR' | 'HR' | 'FE' | 'CAD' | 'SPD' | 'SC'; export interface IChannel { getChannelNo(): number; getDevice(): IAntDevice; setProps(props: ChannelProps): void; getProps(): ChannelProps; onMessage(data: Buffer): void; onDeviceData(profile: Profile, deviceID: number, deviceState: any): void; startScanner(): Promise<boolean>; stopScanner(): Promise<boolean>; attach(sensor: ISensor): void; startSensor(sensor: ISensor): Promise<boolean>; stopSensor(sensor: ISensor): Promise<boolean>; sendMessage(data: Buffer, props?: { timeout?: number; }): Promise<any>; flush(): void; } export type ChannelConfiguration = { type: string; transmissionType: number; timeout: number; period: number; frequency: number; }; export interface ISensor { getChannel(): IChannel; setChannel(channel: IChannel): void; getDeviceType(): number; getProfile(): Profile; getDeviceID(): number; getChannelConfiguration(): ChannelConfiguration; onMessage(data: Buffer): void; onEvent(data: Buffer): void; }