rn-dji-tello
v1.0.3
Published
React native dji tello sdk wrapper
Downloads
4
Readme
Table of contents
Quick start
This wrapper is totally based on https://github.com/AlexanderGranhof/tello-drone, special thanks to the author of this repo. 🙏
yarn add rn-dji-tello
or
npm install rn-dji-tello
Usage
This is a Tello SDK wrapper exposed here
import Tello from 'rn-dji-tello';
const drone = new Tello();
Listeners
drone.current.on(event_type, callback);
| event type | description | callback args | |--|--|--| | connection | success connection listener | - | | state | sensor state | state: DroneState | | send | on send event listener | error: Error, lenght: Number | | message | - | message: String |
Senders
await drone.current?.send(command, options?, froce?);
command list:
type list = 'command' | 'takeoff' | 'land' | 'streamon' | 'streamoff' | 'emergency' | 'up' | 'down' | 'left' | 'right' | 'forward' | 'back' | 'cw' | 'ccw' | 'flip' | 'go' | 'curve' | 'speed' | 'rc' | 'wifi' | 'speed?' | 'battery?' | 'time?' | 'wifi?' | 'sdk?' | 'sn?'
interface options {
value?: number | string;
x?: number;
y?: number;
z?: number;
x1?: number;
y1?: number;
z1?: number;
x2?: number;
y2?: number;
z2?: number;
speed?: number;
a?: number;
b?: number;
c?: number;
d?: number;
}
force: boolean
Please, read tello documentation to group the appropriate options for the desired command.
What's included
- Support for typescript and sockets using react-native-udp.
Example
import React, {useRef, useState} from 'react';
import {Button, SafeAreaView, StatusBar, StyleSheet, View} from 'react-native';
import Tello from 'rn-dji-tello';
const App = () => {
const [init, setInit] = useState<boolean>(false);
const drone = useRef<Tello>();
const onInit = () => {
try {
drone.current = new Tello();
drone.current.on('connection', () => {
setInit(true);
console.log('Connected to drone');
});
drone.current.on('state', state => {
console.log('Received State > ', state);
});
drone.current.on('send', (err, length) => {
if (err) {
console.log('error', err);
}
console.log(`Sent command is ${length} long`);
});
drone.current.on('message', message => {
console.log('Recieved Message > ', message);
});
} catch (error) {
console.error(error);
setInit(false);
}
};
const run = async () => {
await drone.current?.send('takeoff');
await drone.current?.send('battery?');
await drone.current?.send('land');
};
return (
<SafeAreaView style={styles.container}>
<StatusBar barStyle="light-content" />
<View style={styles.viewWrapper}>
<Button title="Run" disabled={!init} onPress={run} />
<Button title="Init" disabled={init} onPress={onInit} />
</View>
</SafeAreaView>
);
};
....
Creators
Me, NoRoboto
Thanks
https://github.com/AlexanderGranhof/tello-drone
Copyright and license
MIT