开始修改通讯

This commit is contained in:
xu 2020-02-21 23:59:24 +08:00
parent 3622225c0b
commit c1b3a32407

View File

@ -17,6 +17,8 @@ namespace Plane.CommunicationManagement
private DateTime waitRtcmTime = DateTime.Now;
private bool starttime = false;
private bool rtcm_run = false;
//是否单独处理传输
private bool IsSingleTrans=false;
private byte[] SetChannels(ushort? ch1 = null, ushort? ch2 = null, ushort? ch3 = null, ushort? ch4 = null, ushort? ch5 = null, ushort? ch6 = null, ushort? ch7 = null, ushort? ch8 = null)
{
@ -293,7 +295,22 @@ namespace Plane.CommunicationManagement
/// <param name="ch3"></param>
/// <param name="ch4"></param>
/// <returns></returns>
public async Task SetChannelsAsync(IEnumerable<ICopter> copters = null, ushort? ch1 = null, ushort? ch2 = null, ushort? ch3 = null, ushort? ch4 = null)
{
if (IsSingleTrans)
await SetChannelsAsync_Single(copters, ch1, ch2, ch3, ch4);
else await SetChannelsAsync_CMod(copters, ch1, ch2, ch3, ch4);
}
public async Task SetChannelsAsync_Single(IEnumerable<ICopter> copters = null, ushort? ch1 = null, ushort? ch2 = null, ushort? ch3 = null, ushort? ch4 = null)
{
await Task.WhenAll(copters.Select(async copter =>
await copter.SetChannelsAsync(ch2:ch2))).ConfigureAwait(false);
}
public async Task SetChannelsAsync_CMod(IEnumerable<ICopter> copters = null, ushort? ch1 = null, ushort? ch2 = null, ushort? ch3 = null, ushort? ch4 = null)
{
short copterId = 0;
byte[] batchPacket = null;
@ -309,7 +326,22 @@ namespace Plane.CommunicationManagement
/// <param name="id">飞机ID</param>
/// <param name="missions">任务列表</param>
/// <returns></returns>
public async Task<bool> WriteMissionListAsync(short id, List<IMission> missions)
///
public async Task<bool> WriteMissionListAsync(ICopter copter, List<IMission> missions)
{
if (IsSingleTrans)
return await WriteMissionListAsync_Single(copter, missions);
else return await WriteMissionListAsync_CMod(short.Parse(copter.Id), missions);
}
public async Task<bool> WriteMissionListAsync_Single(ICopter copter, List<IMission> missions)
{
return await copter.WriteMissionListAsync(missions);
}
public async Task<bool> WriteMissionListAsync_CMod(short id, List<IMission> missions)
{
missions.Insert(0, PLCopter.PRE_TAKE_OFF_MISSION);
List<MAVLink.mavlink_mission_item_t> mission_list = new List<MAVLink.mavlink_mission_item_t>();
@ -381,8 +413,30 @@ namespace Plane.CommunicationManagement
/// <param name="Missionlng">任务原点经度</param>
/// <param name="Missionlat">任务原点纬度</param>
/// <returns></returns>
public async Task DoMissionStartAsync(IEnumerable<ICopter> copters,int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
{
if (IsSingleTrans)
await DoMissionStartAsync_Single(copters,hour_utc, minute_utc, second_utc, Missionlng, Missionlat);
else await DoMissionStartAsync_CMod(hour_utc, minute_utc, second_utc, Missionlng, Missionlat);
public async Task DoMissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
}
public async Task DoMissionStartAsync_Single(IEnumerable<ICopter> copters,int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
{
foreach (var vcopter in copters)
{
await vcopter.MissionStartAsync(hour_utc,
minute_utc,
second_utc,
Missionlng,
Missionlat
);
}
}
public async Task DoMissionStartAsync_CMod(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
{
byte[] packet = DoCommandAsync(MAVLink.MAV_CMD.MISSION_START, hour_utc, minute_utc, second_utc, (float)Missionlng, (float)Missionlat, 0, -1);
await WriteCommPacketAsync(0, MavComm.COMM_DOWNLOAD_COMM, packet).ConfigureAwait(false);