UNPKG

tello-custom-ip

Version:

Tello drone client with custom IP address support, forked from @0x77/tellots

72 lines (53 loc) 2.79 kB
import commander from "../exchanger" import { CommandType } from "../types" import { parseCommandResponse } from "../parsers" const connect = (): Promise<boolean> => commander.send('command', parseCommandResponse, CommandType.CONTROL) const takeOff = (): Promise<boolean> => commander.send('takeoff', parseCommandResponse, CommandType.CONTROL) const land = (): Promise<boolean> => commander.send('land', parseCommandResponse, CommandType.CONTROL) const emergency = (): Promise<boolean> => commander.send('emergency', parseCommandResponse, CommandType.CONTROL) const stop = (): Promise<boolean> => commander.send('stop', parseCommandResponse, CommandType.CONTROL) const flip = (side: "l" | "r" | "b" | "f"): Promise<boolean> => commander.send(`flip ${side}`, parseCommandResponse, CommandType.CONTROL) const up = (distance: number): Promise<boolean> => commander.send(`up ${distance}`, parseCommandResponse, CommandType.CONTROL) const down = (distance: number): Promise<boolean> => commander.send(`down ${distance}`, parseCommandResponse, CommandType.CONTROL) const left = (distance: number): Promise<boolean> => commander.send(`left ${distance}`, parseCommandResponse, CommandType.CONTROL) const right = (distance: number): Promise<boolean> => commander.send(`right ${distance}`, parseCommandResponse, CommandType.CONTROL) const front = (distance: number): Promise<boolean> => commander.send(`forward ${distance}`, parseCommandResponse, CommandType.CONTROL) const back = (distance: number): Promise<boolean> => commander.send(`back ${distance}`, parseCommandResponse, CommandType.CONTROL) const clockwise = (angle: number): Promise<boolean> => commander.send(`cw ${angle}`, parseCommandResponse, CommandType.CONTROL) const counterClockwise = (angle: number): Promise<boolean> => commander.send(`ccw ${angle}`, parseCommandResponse, CommandType.CONTROL) const go = (end: { x: number, y: number, z: number }, speed: number): Promise<boolean> => commander.send(`go ${end.x} ${end.y} ${end.z} ${speed}`, parseCommandResponse, CommandType.CONTROL) const curve = (start: { x: number, y: number, z: number }, end: { x: number, y: number, z: number }, speed: number): Promise<boolean> => commander.send(`curve ${start.x} ${start.y} ${start.z} ${end.x} ${end.y} ${end.z} ${speed}`, parseCommandResponse, CommandType.CONTROL) export const control = { connect, takeOff, land, emergency, stop, go, curve, move: { up, down, left, right, back, front }, rotate: { clockwise, counterClockwise }, flip: { left: () => flip('l'), right: () => flip('r'), back: () => flip('b'), front: () => flip('f'), } }; export default control;