Plane.Sdk3/PlaneGcsSdk_Shared/Copters/EmptyCopter.cs

169 lines
3.9 KiB
C#

using Plane.Communication;
using System.Threading;
using System.Threading.Tasks;
namespace Plane.Copters
{
/// <summary>
/// <see cref="ICopter"/> 的空白实现。
/// </summary>
public partial class EmptyCopter : CopterImplSharedPart, ICopter
{
private EmptyCopter(SynchronizationContext uiSyncContext) : base(uiSyncContext)
{
}
public static EmptyCopter Instance { get; } = new EmptyCopter(SynchronizationContext.Current);
public IConnection Connection { get; set; } = EmptyConnection.Instance;
public string Id { get; } = "EmptyCopter";
public Task ConnectAsync()
{
return TaskUtils.CompletedTask;
}
public Task DisconnectAsync()
{
return TaskUtils.CompletedTask;
}
public Task GetCopterDataAsync()
{
return TaskUtils.CompletedTask;
}
public Task<float> GetParamAsync(string paramName, int millisecondsTimeout = -1)
{
return Task.FromResult(0f);
}
public Task LockAsync()
{
return TaskUtils.CompletedTask;
}
public Task LEDAsync()
{
return TaskUtils.CompletedTask;
}
public override Task SetChannelsAsync()
{
return TaskUtils.CompletedTask;
}
public override Task SetMobileControlAsync()
{
return TaskUtils.CompletedTask;
}
public void GetCommunicationNumber(out int recnumber, out int sendnumber)
{
recnumber = 0;
sendnumber = 0;
}
public Task DoCommandAckAsync(ushort command, byte result)
{
return TaskUtils.CompletedTask;
}
//重设数据量
public void ResetCommunicationNumber()
{
}
public Task SetParamAsync(string paramName, float value, int millisecondsTimeout = -1)
{
return TaskUtils.CompletedTask;
}
public Task SetShowLEDFlashAsync(int Flashtype, int millisecondsTime)
{
return TaskUtils.CompletedTask;
}
public bool GetShowLEDAsync()
{
return false;
}
public Task SetShowLEDAsync(bool Ledon)
{
return TaskUtils.CompletedTask;
}
public Task SetShowRGBLEDAsync(int RedValue, int GreenValue, int BlueValue)
{
return TaskUtils.CompletedTask;
}
public Task StartPairingAsync()
{
return TaskUtils.CompletedTask;
}
public Task StopPairingAsync()
{
return TaskUtils.CompletedTask;
}
public Task TakeOffAsync(float alt)
{
return TaskUtils.CompletedTask;
}
public Task MissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
{
return TaskUtils.CompletedTask;
}
public Task UnlockAsync()
{
return TaskUtils.CompletedTask;
}
public Task MotorTestAsync(int motor)
{
return TaskUtils.CompletedTask;
}
public Task InjectGpsDataAsync(byte[] data, ushort length)
{
return TaskUtils.CompletedTask;
}
internal override Task<bool> SetModeCoreAsync(FlightMode mode, int millisecondsTimeout = 5000)
{
return Task.FromResult(true);
}
protected override Task FlyToCoreAsync(double lat, double lng, float alt, float flytime = 0, int flytype = 0)
{
return TaskUtils.CompletedTask;
}
}
#if PRIVATE
public partial class EmptyCopter : CopterImplSharedPart, ICopter
{
public Task RebootAsync(bool bootloaderMode = false)
{
return TaskUtils.CompletedTask;
}
}
#endif
}