myo-ts
Version:
Typescript and Javascript bindings for Myo, refactored to provide a clean interface
138 lines (137 loc) • 5.05 kB
TypeScript
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;