UNPKG

myo-ts

Version:

Typescript and Javascript bindings for Myo, refactored to provide a clean interface

138 lines (137 loc) 5.05 kB
import { Vector3, IIMUData, Quaternion } from "./util"; import { Myo } from "./Myo"; export declare type Direction = "toward_elbow" | "toward_wrist" | undefined; export declare const enum Arm { Left = "left", Right = "right", } export declare const enum VibrationDuration { Short = "short", Medium = "medium", Long = "long", } export declare const enum WarmupState { Warm = "warm", } export declare const enum LockingPolicy { Standard = "standard", None = "none", } export declare const enum MyoDataType { Paired = "paired", Pose = "pose", Orientation = "orientation", EMG = "emg", Unlocked = "unlocked", Locked = "locked", RSSI = "rssi", BatteryLevel = "battery_level", ArmSynced = "arm_synced", ArmUnsynced = "arm_unsynced", Connected = "connected", Disconnected = "disconnected", WarmupCompleted = "warmup_completed", } export interface IMyoDto { type: MyoDataType; timestamp: number; mac_address: string; name: string; myo: string; } export interface IBatteryDto extends IMyoDto { type: MyoDataType.BatteryLevel; battery_level: number; timestamp: number; } export interface IRssiDto extends IMyoDto { type: MyoDataType.RSSI; rssi: number; timestamp: number; } export interface IVersionDto extends IMyoDto { type: MyoDataType.Connected; version: string[] | number[]; } export interface IArmDto extends IMyoDto { type: MyoDataType.ArmSynced; arm: Arm; x_direction: Direction; warmup_state: string; } export declare type EMGPodsTuple = [number, number, number, number, number, number, number, number]; export interface IEmgDto extends IMyoDto { type: MyoDataType.EMG; timestamp: number; emg: EMGPodsTuple; } export interface IOrientationDto extends IMyoDto { type: MyoDataType.Orientation; timestamp: number; orientation: Quaternion; accelerometer: [number, number, number]; gyroscope: [number, number, number]; } export declare const enum Pose { Rest = "rest", FingersSpread = "fingers_spread", WaveIn = "wave_in", WaveOut = "wave_out", Fist = "fist", DoubleTap = "double_tap", } export interface IPoseDto extends IMyoDto { type: MyoDataType.Pose; pose: Pose; } export interface ICommand { command: string; myo?: string; type?: string; } export declare const enum MMEvent { Ready = "ready", SocketClosed = "socket_closed", PoseRest = "rest", PoseFingersSpreadOff = "fingers_spread_off", PoseWaveInOff = "wave_in_off", PoseWaveOutOff = "wave_out_off", PoseFistOff = "fist_off", PoseDoubleTapOff = "double_tap_off", PoseEnter = "pose", PoseLeave = "pose_off", Orientation = "orientation", Accelerometer = "accelerometer", Gyroscope = "gyroscope", IMU = "imu", ZeroOrientation = "zero_orientation", EMG = "emg", BluetoothStrength = "bluetooth_strength", RSSI = "rssi", BatteryLevel = "battery_level", Status = "status", WarmupCompleted = "warmup_completed", Paired = "paired", Disconnected = "disconnected", Connected = "connected", Locked = "locked", ArmSynced = "arm_synced", ArmUnsynced = "arm_unsynced", } export declare function isMMStatusEvent(event: string): boolean; export declare type MMStatusEvent = MMEvent.Status | MMEvent.WarmupCompleted | MMEvent.Paired | MMEvent.Disconnected | MMEvent.Connected | MMEvent.Locked | MMEvent.ArmSynced | MMEvent.ArmUnsynced; export declare type MMPoseOffEvent = MMEvent.PoseDoubleTapOff | MMEvent.PoseFingersSpreadOff | MMEvent.PoseWaveInOff | MMEvent.PoseWaveOutOff | MMEvent.PoseFistOff; export declare type MCBEmpty = (myo: Myo | undefined) => void; export declare type MCBPose = (myo: Myo | undefined, pose: Pose) => void; export declare type MCBEvent = (myo: Myo | undefined, ev: Event) => void; export declare type MCBCloseEvent = (myo: Myo | undefined, ev: CloseEvent) => void; export declare type MCBOrientation = (myo: Myo | undefined, orientation: Quaternion, t: number) => void; export declare type MCBAcceleration = (myo: Myo | undefined, acceleration: Vector3, t: number) => void; export declare type MCBGyroscope = (myo: Myo | undefined, gyroscope: Vector3, t: number) => void; export declare type MCBIMU = (myo: Myo | undefined, imuData: IIMUData, t: number) => void; export declare type MCBEMG = (myo: Myo | undefined, emg: EMGPodsTuple, t: number) => void; export declare type MCBBluetoothStrength = (myo: Myo | undefined, strength: number, t: number) => void; export declare type MCBRSSI = (myo: Myo | undefined, rssi: number, t: number) => void; export declare type MCBBatteryLevel = (myo: Myo | undefined, level: number, t: number) => void; export declare type MCBStatus = (myo: Myo | undefined, data: IMyoDto, t: number) => void; export declare type MyoCallback = (myo: Myo | undefined, ...args: any[]) => void;