Plane.Sdk3/PlaneGcsSdk_Private_NET45/Copters/PlaneCopter.Private.cs
2020-09-20 11:43:27 +08:00

38 lines
1.2 KiB
C#

using Plane.Protocols;
using System.Threading.Tasks;
namespace Plane.Copters
{
partial class PlaneCopter
{
/// <summary>
/// // 王海, 20160122, 不明确。目测是发送重启命令,在刷固件之前用到。
/// </summary>
/// <param name="bootloaderMode"></param>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
public async Task RebootAsync(bool bootloaderMode = false)
{
int param1 = 1;
if (bootloaderMode)
{
param1 = 3;
}
if (MAV.sysid != 0 && MAV.compid != 0)
{
await DoCommandAsync(MAVLink.MAV_CMD.PREFLIGHT_REBOOT_SHUTDOWN, param1, 0, 0, 0, 0, 0, 0).ConfigureAwait(false);
await DoCommandAsync(MAVLink.MAV_CMD.PREFLIGHT_REBOOT_SHUTDOWN, 1, 0, 0, 0, 0, 0, 0).ConfigureAwait(false);
}
else
{
for (byte a = byte.MinValue; a < byte.MaxValue; a++)
{
MAV.sysid = a;
await DoCommandAsync(MAVLink.MAV_CMD.PREFLIGHT_REBOOT_SHUTDOWN, param1, 0, 0, 0, 0, 0, 0).ConfigureAwait(false);
}
}
}
}
}