169 lines
3.9 KiB
C#
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
|
|
}
|