using Plane.Communication; using System.Threading; using System.Threading.Tasks; namespace Plane.Copters { /// /// 的空白实现。 /// 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 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 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 }