开始修改通讯
This commit is contained in:
parent
3622225c0b
commit
c1b3a32407
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user