Plane.Sdk3/PlaneGcsSdk_Shared/Copters/EmptyCopter.cs
panxu 22b8f46359 [PlaneCopter.cs]
1加入数据量统计
2降低飞机发到地面的数据频率,5hz改为1hz
3收数据不写日志(导致死机)
4为RTK数据单独组包,以减小包大小(发送大小为:RTK数据+11字节/包协议开销,自动拆分为110字节/包)
2018-05-12 23:24:43 +08:00

153 lines
3.5 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 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 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 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)
{
return TaskUtils.CompletedTask;
}
}
#if PRIVATE
public partial class EmptyCopter : CopterImplSharedPart, ICopter
{
public Task RebootAsync(bool bootloaderMode = false)
{
return TaskUtils.CompletedTask;
}
}
#endif
}