TelloCommander.CommandLine
1.0.0.9
dotnet add package TelloCommander.CommandLine --version 1.0.0.9
NuGet\Install-Package TelloCommander.CommandLine -Version 1.0.0.9
<PackageReference Include="TelloCommander.CommandLine" Version="1.0.0.9" />
paket add TelloCommander.CommandLine --version 1.0.0.9
#r "nuget: TelloCommander.CommandLine, 1.0.0.9"
// Install TelloCommander.CommandLine as a Cake Addin #addin nuget:?package=TelloCommander.CommandLine&version=1.0.0.9 // Install TelloCommander.CommandLine as a Cake Tool #tool nuget:?package=TelloCommander.CommandLine&version=1.0.0.9
TelloCommanderConsole
About
TelloCommanderConsole is a console application that demonstrates use of the TelloCommander API to connect to and communicate with a drone.
It provides the following connection types:
Type | Purpose |
---|---|
Mock | Uses a mock that simulates responses from the drone without establishing a connection |
Simulator | The application is connected to the simulator, running on the same machine |
Drone | The application is connected to a real drone |
It is based on the ConsoleCommander class provided by the API.
Pre-requisites
You will need .NET Core 3.1.101 and the .NET CLI installed to build and run the application. Instructions for downloading and installing are on the .NET website:
https://dotnet.microsoft.com/download
Building the Application
- Clone or download the repository
- Open a terminal window and CD to the folder containing the TelloCommanderConsole.sln solution file
- Enter the following command to build the application:
dotnet build
Creating the Telemetry Capture Database
The application includes support for writing drone telemetry to a SQLite database. If you intend to use this facility, you must first fulfil the prerequisites for SQLite database capture.
Running the Application
To run the application, open a terminal window, change to the folder containing the compiled output for the TelloCommanderConsole project and run the following command:
TelloCommanderConsole
The following will be displayed:
Tello Commander 1.0.0.0
Dictionary Version:
[1] 1.3.0.0
[2] 2.0.0.0
Please enter your option between 1 and 2 or enter 0 to quit:
Selecting an API Version
The dictionary version determines the set of commands available to run. For mock or simulator connections, any version can be used but for connection to a real drone it's important to choose the correct version:
Drone | Version |
---|---|
Tello | 1.3.0.0 |
Tello EDU | 2.0.0.0 |
Selecting a Connection Type
Once you have selected the version, you are prompted to enter the required connection type:
Connection:
[1] Mock connection
[2] Simulator connection
[3] Real connection
Please enter your option between 1 and 3 or enter 0 to quit:
The simulator is part of the TelloCommander project and instructions on how to start it are given in the project wiki. If you're connecting to the simulator, start it before entering the connection type.
If you're connecting to a drone, switch it on and connect to its WiFi before entering the connection type.
Once a connection type's been entered, the application will respond as follows, indicating it's connected and ready to receive and send commands:
You are connected to the Tello in API mode
Enter command or hit ENTER to quit :
Entering Commands
The application repeatedly prompts for and sends commands, echoing the reponse from the connection, until instructed to stop. For example:
Enter command or hit ENTER to quit : takeoff
Command : takeoff
Response: ok
Enter command or hit ENTER to quit : land
Command : land
Response: ok
Enter command or hit ENTER to quit :
In addition to the commands supported by the drone and the custom commands provided by the TelloCommander API, the console application also supports the following commands:
Command | Parameters | Purpose |
---|---|---|
? | None | Report the current status to the console |
startcapture | file interval | Start writing telemetry to the specified file (in CSV format) at the specified interval (in milliseconds) |
stopcapture | None | Stop file capture if it's in progress |
startdbcapture | drone session interval [property list] | Start writing telemetry to th SQLite database defined in the appsettings.json file |
stopdbcapture | None | Stop writing telemetry to a database if it's in progress |
The arguments to the "startdbcapture" command are as follows:
Name | Description |
---|---|
drone | Name of the drone, as a single word e.g. TELLO-12345 |
session | Name of the capture session, as a single word e.g. LoopTheLoop-001 |
interval | The collection interval, in milliseconds e.g. 1000 = 1 second. A value ⇐ 0 defaults to 1000 ms |
property list | A comma-separated list of the properties to capture e.g. pitch,roll,yaw |
Valid properties for the property list are those returned in the Tello status, as documented in the drone APIs:
For example, to collect the height and battery charge at 1s intervals, use the folowing:
startdbcapture MY-TELLO My-Session-1 1000 h,bat
Closing the Connection
Before closing the application, please:
- Land the drone, if you are connected to a real drone
- Stop the simulator, by issuing the "stopsimulator" command, if you are using a simulator connection
To close the connection and stop the application, enter an empty command in response to the prompt.
Wiki
Authors
- Dave Walker - Initial work - LinkedIn
Feedback
To file issues or suggestions, please use the Issues page for this project on GitHub.
License
This project is licensed under the MIT License - see the LICENSE file for details
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- TelloCommander (>= 1.0.0.8)
- TelloCommander.Data (>= 1.0.0.8)
- TelloCommander.Data.Sqlite (>= 1.0.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Dependency updates