tello-custom-ip
Version:
Tello drone client with custom IP address support, forked from @0x77/tellots
45 lines (37 loc) • 1.17 kB
text/typescript
import { EventEmitter } from "events";
import { constants } from "../constants";
import dgram from "dgram";
import commander from "../exchanger";
import { parseCommandResponse } from "../parsers";
import { CommandType } from "../types";
const client = dgram.createSocket('udp4'),
_local = {
emitter: new EventEmitter()
}
client.on('message', message => _local.emitter.emit('message', message))
const bind = async () => {
try {
const res = await commander.send('streamon', parseCommandResponse, CommandType.CONTROL)
if (!res) {
throw "Unable to start video stream"
}
} catch (_) {
throw "Unable to start video stream"
}
client.bind(constants.ports.video)
_local.emitter = new EventEmitter()
return _local.emitter
}
const close = async () => {
try {
const res = await commander.send('streamoff', parseCommandResponse, CommandType.CONTROL)
if (!res) {
throw "Unable to stop video stream"
}
} catch (_) {
throw "Unable to stop video stream"
}
client.close()
}
export const video = { bind, close };
export default video;