TelloCommander 1.0.0.8

dotnet add package TelloCommander --version 1.0.0.8                
NuGet\Install-Package TelloCommander -Version 1.0.0.8                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TelloCommander" Version="1.0.0.8" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TelloCommander --version 1.0.0.8                
#r "nuget: TelloCommander, 1.0.0.8"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install TelloCommander as a Cake Addin
#addin nuget:?package=TelloCommander&version=1.0.0.8

// Install TelloCommander as a Cake Tool
#tool nuget:?package=TelloCommander&version=1.0.0.8                

TelloCommander

Build Status GitHub issues Coverage Status Releases NuGet License: MIT Language GitHub code size in bytes

About

Tello Commander is a C# API for controlling a Tello drone, offering the following features:

  • A simple interface to connect to, control and disconnect from the drone
  • Validation of all commands to ensure only valid commands are sent to the drone
  • Command/response history
  • Response parser for processing drone "read" command responses
  • Execution of commands from pre-prepared scripts
  • Background monitoring and reporting of drone status
  • Capture of drone telemetry information to CSV
  • Capture of drone telemetry to a SQL database

Version 1.0.0.5

Release 1.0.0.5 of TelloCommander introduces the ability to stream drone telemetry to a SQL database for subsequent analysis and splits the project into the following repos/libraries/NuGet packages:

Repo NuGet Package Purpose
TelloCommander TelloCommander Core Tello control API
TelloCommanderDb TelloCommander.Data Core SQL telemetry capture API
TelloCommanderDb TelloCommander.Data.InMemory EF Core database context for capturing telemetry to an in-memory database
TelloCommanderDb TelloCommander.Data.Sqlite EF Core database context for capturing telemetry to a SQLite database
TelloCommanderConsole TelloCommander.CommandLine Basis for a command-line controller for the Tello with example application

Release 1.0.0.5 also changed the location of the following classes and, with it, the repo/library/NuGet package that they reside in:

Class Original Namespace New Namespace
ConsoleCommander TelloCommander.Commander TelloCommander.CommandLine
ConsoleCommanderWrapper TelloCommander.Commander TelloCommander.CommandLine

Getting Started

Once the API is referenced by a project, you should include the following "using" statements to import the necessary types:

using TelloCommander.CommandDictionaries;
using TelloCommander.Commander;
using TelloCommander.Connections;
using TelloCommander.Interfaces;

The following code snippet can be pasted into the Main() method of a C# console application to demonstrate connection to the drone, command processing and disconnection from the drone:

// Connect to the drone
var dictionary = CommandDictionary.ReadStandardDictionary("1.3.0.0");
var commander = new DroneCommander(new TelloConnection(), dictionary);
commander.Connect();

// Ask for a command to process and process it. Repeat until the an empty
// command is entered
bool isEmpty;
do
{
    Console.Write("Please enter a command or press [ENTER] to quit : ");
    string command = Console.ReadLine().Trim();
    isEmpty = string.IsNullOrEmpty(command);
    if (!isEmpty)
    {
        try
        {
            // Process the command using the API
            Console.WriteLine($"Command  : {command}");
            commander.RunCommand(command);
            Console.WriteLine($"Response : {commander.LastResponse}");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}
while (!isEmpty);

// Disconnect from the drone
commander.Disconnect();

The argument passed to the "ReadStandardDictionary" is the Tello API version number and defines the set of available commands (see the wiki) for more details.

The following is example output for a simple takeoff, height query and landing:

Please enter a command or press [ENTER] to quit : takeoff
Command  : takeoff
Response : ok
Please enter a command or press [ENTER] to quit : height?
Command  : height?
Response : 6dm
Please enter a command or press [ENTER] to quit : land
Command  : land
Response : ok

Wiki

More complete information on the capabilities and use of the API are provided in the Wiki

Authors

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on TelloCommander:

Package Downloads
TelloCommander.Data

Database Collector for TelloCommander Drone Telemetry

TelloCommander.CommandLine

C# command line utilities for controlling a Tello drone

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0.8 407 4/11/2023
1.0.0.7 377 4/11/2023
1.0.0.6 1,130 10/2/2021
1.0.0.5 1,227 1/23/2020
1.0.0.4 457 1/16/2020
1.0.0.3 456 1/11/2020
1.0.0.2 482 1/7/2020
1.0.0.1 724 1/5/2020

Dependency updates