UNPKG

gd-ant-plus

Version:

A node module for ANT+ - forked from longhorn/ant-plus

193 lines (192 loc) 7.21 kB
/// <reference types="node" /> import events = require('events'); import usb = require('usb'); export declare enum Constants { MESSAGE_TX_SYNC = 164, DEFAULT_NETWORK_NUMBER = 0, MESSAGE_CHANNEL_UNASSIGN = 65, MESSAGE_CHANNEL_ASSIGN = 66, MESSAGE_CHANNEL_ID = 81, MESSAGE_CHANNEL_PERIOD = 67, MESSAGE_CHANNEL_SEARCH_TIMEOUT = 68, MESSAGE_CHANNEL_FREQUENCY = 69, MESSAGE_CHANNEL_TX_POWER = 96, MESSAGE_NETWORK_KEY = 70, MESSAGE_TX_POWER = 71, MESSAGE_PROXIMITY_SEARCH = 113, MESSAGE_ENABLE_RX_EXT = 102, MESSAGE_LIB_CONFIG = 110, MESSAGE_CHANNEL_OPEN_RX_SCAN = 91, MESSAGE_STARTUP = 111, MESSAGE_SYSTEM_RESET = 74, MESSAGE_CHANNEL_OPEN = 75, MESSAGE_CHANNEL_CLOSE = 76, MESSAGE_CHANNEL_REQUEST = 77, MESSAGE_CHANNEL_BROADCAST_DATA = 78, MESSAGE_CHANNEL_ACKNOWLEDGED_DATA = 79, MESSAGE_CHANNEL_BURST_DATA = 80, MESSAGE_CHANNEL_EVENT = 64, MESSAGE_CHANNEL_STATUS = 82, MESSAGE_VERSION = 62, MESSAGE_CAPABILITIES = 84, MESSAGE_SERIAL_NUMBER = 97, CHANNEL_TYPE_TWOWAY_RECEIVE = 0, CHANNEL_TYPE_TWOWAY_TRANSMIT = 16, CHANNEL_TYPE_SHARED_RECEIVE = 32, CHANNEL_TYPE_SHARED_TRANSMIT = 48, CHANNEL_TYPE_ONEWAY_RECEIVE = 64, CHANNEL_TYPE_ONEWAY_TRANSMIT = 80, RADIO_TX_POWER_MINUS20DB = 0, RADIO_TX_POWER_MINUS10DB = 1, RADIO_TX_POWER_0DB = 2, RADIO_TX_POWER_PLUS4DB = 3, RESPONSE_NO_ERROR = 0, EVENT_RX_SEARCH_TIMEOUT = 1, EVENT_RX_FAIL = 2, EVENT_TX = 3, EVENT_TRANSFER_RX_FAILED = 4, EVENT_TRANSFER_TX_COMPLETED = 5, EVENT_TRANSFER_TX_FAILED = 6, EVENT_CHANNEL_CLOSED = 7, EVENT_RX_FAIL_GO_TO_SEARCH = 8, EVENT_CHANNEL_COLLISION = 9, EVENT_TRANSFER_TX_START = 10, CHANNEL_IN_WRONG_STATE = 21, CHANNEL_NOT_OPENED = 22, CHANNEL_ID_NOT_SET = 24, CLOSE_ALL_CHANNELS = 25, TRANSFER_IN_PROGRESS = 31, TRANSFER_SEQUENCE_NUMBER_ERROR = 32, TRANSFER_IN_ERROR = 33, MESSAGE_SIZE_EXCEEDS_LIMIT = 39, INVALID_MESSAGE = 40, INVALID_NETWORK_NUMBER = 41, INVALID_LIST_ID = 48, INVALID_SCAN_TX_CHANNEL = 49, INVALID_PARAMETER_PROVIDED = 51, EVENT_QUEUE_OVERFLOW = 53, USB_STRING_WRITE_FAIL = 112, CHANNEL_STATE_UNASSIGNED = 0, CHANNEL_STATE_ASSIGNED = 1, CHANNEL_STATE_SEARCHING = 2, CHANNEL_STATE_TRACKING = 3, CAPABILITIES_NO_RECEIVE_CHANNELS = 1, CAPABILITIES_NO_TRANSMIT_CHANNELS = 2, CAPABILITIES_NO_RECEIVE_MESSAGES = 4, CAPABILITIES_NO_TRANSMIT_MESSAGES = 8, CAPABILITIES_NO_ACKNOWLEDGED_MESSAGES = 16, CAPABILITIES_NO_BURST_MESSAGES = 32, CAPABILITIES_NETWORK_ENABLED = 2, CAPABILITIES_SERIAL_NUMBER_ENABLED = 8, CAPABILITIES_PER_CHANNEL_TX_POWER_ENABLED = 16, CAPABILITIES_LOW_PRIORITY_SEARCH_ENABLED = 32, CAPABILITIES_SCRIPT_ENABLED = 64, CAPABILITIES_SEARCH_LIST_ENABLED = 128, CAPABILITIES_LED_ENABLED = 1, CAPABILITIES_EXT_MESSAGE_ENABLED = 2, CAPABILITIES_SCAN_MODE_ENABLED = 4, CAPABILITIES_PROX_SEARCH_ENABLED = 16, CAPABILITIES_EXT_ASSIGN_ENABLED = 32, CAPABILITIES_FS_ANTFS_ENABLED = 64, TIMEOUT_NEVER = 255 } export declare class Messages { static BUFFER_INDEX_MSG_LEN: number; static BUFFER_INDEX_MSG_TYPE: number; static BUFFER_INDEX_CHANNEL_NUM: number; static BUFFER_INDEX_MSG_DATA: number; static BUFFER_INDEX_EXT_MSG_BEGIN: number; static resetSystem(): Buffer; static requestMessage(channel: number, messageID: number): Buffer; static setNetworkKey(): Buffer; static assignChannel(channel: number, type?: string): Buffer; static setDevice(channel: number, deviceID: number, deviceType: number, transmissionType: number): Buffer; static searchChannel(channel: number, timeout: number): Buffer; static setPeriod(channel: number, period: number): Buffer; static setFrequency(channel: number, frequency: number): Buffer; static setRxExt(): Buffer; static libConfig(channel: number, how: number): Buffer; static openRxScan(): Buffer; static openChannel(channel: number): Buffer; static closeChannel(channel: number): Buffer; static unassignChannel(channel: number): Buffer; static acknowledgedData(payload: number[]): Buffer; static broadcastData(payload: number[]): Buffer; static buildMessage(payload?: number[], msgID?: number): Buffer; static intToLEHexArray(int: number, numBytes?: number): number[]; static decimalToHex(d: number, numDigits: number): string; static getChecksum(message: any[]): number; } export interface ICancellationToken { cancel(): void; } export declare class DeviceInfo extends usb.Device { inUse: boolean; } export declare class USBDriver extends events.EventEmitter { private idVendor; private idProduct; private static deviceInUse; private device; private iface; private detachedKernelDriver; private inEp; private outEp; private leftover; private usedChannels; private attachedSensors; maxChannels: number; canScan: boolean; props: any; waitingForStartup: boolean; constructor(idVendor: number, idProduct: number, dbgLevel?: number, props?: {}); private getDevices; static listDevices(filterFn?: (d: usb.Device) => boolean): usb.Device[]; blockDevice(device: usb.Device): void; unblockDevice(device: usb.Device): void; is_present(): boolean; open(): boolean; openAsync(cb: (err: Error) => void): ICancellationToken; close(): void; reset(): void; isScanning(): boolean; attach(sensor: BaseSensor, forScan: boolean): boolean; detach(sensor: BaseSensor): boolean; detach_all(): void; write(data: Buffer): void; read(data: Buffer): void; } export declare class GarminStick2 extends USBDriver { constructor(dbgLevel?: number); } export declare class GarminStick3 extends USBDriver { constructor(dbgLevel?: number); } export interface IDecodeDataCallback { (data: Buffer): void; } export declare class BaseSensor extends events.EventEmitter { private stick; channel: number; deviceID: number; transmissionType: number; protected decodeDataCbk: IDecodeDataCallback; constructor(stick: USBDriver); protected scan(type: string, frequency: number): void; protected attach(channel: number, type: string, deviceID: number, deviceType: number, transmissionType: number, timeout: number, period: number, frequency: number): void; detach(): void; protected write(data: Buffer): void; private handleEventMessages; } export declare class AntPlusBaseSensor extends BaseSensor { protected scan(type: string): void; protected attach(channel: number, type: string, deviceID: number, deviceType: number, transmissionType: number, timeout: number, period: number): void; } export declare class AntPlusSensor extends AntPlusBaseSensor { protected scan(): void; protected attach(channel: number, type: string, deviceID: number, deviceType: number, transmissionType: number, timeout: number, period: number): void; } export declare class AntPlusScanner extends AntPlusBaseSensor { protected scan(type: string): void; protected attach(): void; }