50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
namespace Tello_Drone
|
|
{
|
|
public class DroneComands : IDroneCommands
|
|
{
|
|
private readonly IUdpClientWrapper _udpClient;
|
|
|
|
public DroneComands(IUdpClientWrapperFactory udpClientWrapperFactory)
|
|
{
|
|
_udpClient = udpClientWrapperFactory.Create();
|
|
}
|
|
|
|
public void Forward(int x) =>SendCommand($"forward {x}");
|
|
public void Reverse(int x) => SendCommand($"back {x}");
|
|
public void Up(int z) => SendCommand($"up {z}");
|
|
public void Down(int z) => SendCommand($"down {z}");
|
|
public void Left(int y) => SendCommand($"left {y}");
|
|
public void Right(int y) => SendCommand($"right {y}");
|
|
public bool Command() => TrySendCommand("command");
|
|
public bool InitialTakeOff() => TrySendCommand("takeoff");
|
|
public void TakeOff() => SendCommand("takeoff");
|
|
public void Land() => SendCommand("land");
|
|
public void RotateClockWise(int r) => SendCommand($"cw {r}");
|
|
public void FrontFlip() => SendCommand($"flip f");
|
|
public void BackFlip() => SendCommand($"flip b");
|
|
public void RightFlip() => SendCommand($"flip r");
|
|
public void LeftFlip() => SendCommand($"flip l");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void SendCommand(string message)
|
|
{
|
|
_udpClient.TrySend(message, 5_000, 3);
|
|
}
|
|
|
|
private bool TrySendCommand(string message)
|
|
{
|
|
return _udpClient.TrySend(message, 20_000, 3);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|