Compare commits

...

2 Commits
Dev ... master

Author SHA1 Message Date
e2ea96ed56 考虑RTK数据采用发送---未完成 2017-09-17 19:55:36 +08:00
fb17c0a3f9 加入两个参数,一个CopterLocationType在连接后取一次,确定飞机的定位方式,用于判断是否向它发送RTCM差分数据
一个MissionStatus参数,确定当前飞行任务执行情况,如果是1就是正在飞行到目标航点中,界面上飞机图标前面会有个小标识,到达航点后消失,用来人为判断哪些飞机没有到达航点
2017-09-11 03:57:47 +08:00
7 changed files with 63 additions and 0 deletions

View File

@ -172,5 +172,15 @@ namespace Plane.Copters
/// 获取当前电池电压,单位为伏特。 /// 获取当前电池电压,单位为伏特。
/// </summary> /// </summary>
float Voltage { get; } float Voltage { get; }
//定位类型RTK,GPS
CopterLocationType LocationType { get; }
/// <summary>
/// MissionStatus=1表示正在飞向目标中0标识达到目标
/// </summary>
int MissionStatus { get; set; }
} }
} }

View File

@ -20,6 +20,7 @@
<Compile Include="$(MSBuildThisFileDirectory)CopterManagement\ICopterManager.cs" /> <Compile Include="$(MSBuildThisFileDirectory)CopterManagement\ICopterManager.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Copters\Constants.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Copters\Constants.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Copters\CopterCommand.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Copters\CopterCommand.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Copters\CopterLocationType.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Copters\CopterState.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Copters\CopterState.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Copters\PLObservableObject.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Copters\PLObservableObject.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Copters\FlightCommand.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Copters\FlightCommand.cs" />

View File

@ -9,6 +9,7 @@ namespace Plane.Communication
internal class UdpServerConnection : UdpConnectionBase internal class UdpServerConnection : UdpConnectionBase
{ {
private IPEndPoint _remoteEP; private IPEndPoint _remoteEP;
private IPEndPoint _boardaddEP;
private Func<byte[], int, IPEndPoint, Task<int>> _sendFunc; private Func<byte[], int, IPEndPoint, Task<int>> _sendFunc;
@ -17,6 +18,7 @@ namespace Plane.Communication
/// </summary> /// </summary>
public UdpServerConnection(IPEndPoint remoteEP, Func<byte[], int, IPEndPoint, Task<int>> sendFunc) public UdpServerConnection(IPEndPoint remoteEP, Func<byte[], int, IPEndPoint, Task<int>> sendFunc)
{ {
_boardaddEP = new IPEndPoint(IPAddress.Parse("192.168.62.255"), remoteEP.Port);
_remoteEP = remoteEP; _remoteEP = remoteEP;
_sendFunc = sendFunc; _sendFunc = sendFunc;
} }
@ -37,6 +39,13 @@ namespace Plane.Communication
try try
{ {
await _sendFunc(datagram, bytes, _remoteEP).ConfigureAwait(false); await _sendFunc(datagram, bytes, _remoteEP).ConfigureAwait(false);
/*
//如果是广播包,用于广播消息比如RTK等
if (false)
await _sendFunc(datagram, bytes, _boardaddEP).ConfigureAwait(false);
else
await _sendFunc(datagram, bytes, _remoteEP).ConfigureAwait(false);
*/
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -155,8 +155,12 @@ namespace Plane.Copters
private float _Voltage; private float _Voltage;
private CopterLocationType _LocationType= CopterLocationType.GPS;
private float _Yaw; private float _Yaw;
private int _MissionStatus;
#endregion Backing Fields #endregion Backing Fields
public CopterImplSharedPart(SynchronizationContext uiSyncContext) : base(uiSyncContext) public CopterImplSharedPart(SynchronizationContext uiSyncContext) : base(uiSyncContext)
@ -613,12 +617,27 @@ namespace Plane.Copters
protected set { Set(nameof(Voltage), ref _Voltage, value); } protected set { Set(nameof(Voltage), ref _Voltage, value); }
} }
public CopterLocationType LocationType
{
get { return _LocationType; }
protected set { Set(nameof(LocationType), ref _LocationType, value); }
}
public float Yaw public float Yaw
{ {
get { return _Yaw; } get { return _Yaw; }
protected set { Set(nameof(Yaw), ref _Yaw, value); } protected set { Set(nameof(Yaw), ref _Yaw, value); }
} }
public int MissionStatus
{
get { return _MissionStatus; }
set { Set(nameof(MissionStatus), ref _MissionStatus, value); }
}
#if PRIVATE #if PRIVATE
public public
#else #else

View File

@ -84,6 +84,11 @@ namespace Plane.Copters
return TaskUtils.CompletedTask; return TaskUtils.CompletedTask;
} }
public Task InitAsync()
{
return TaskUtils.CompletedTask;
}
public Task StopPairingAsync() public Task StopPairingAsync()
{ {
return TaskUtils.CompletedTask; return TaskUtils.CompletedTask;

View File

@ -343,6 +343,12 @@ namespace Plane.Copters
return TaskUtils.CompletedTask; return TaskUtils.CompletedTask;
} }
public Task InitAsync()
{
return TaskUtils.CompletedTask;
}
public Task StopPairingAsync() public Task StopPairingAsync()
{ {
return TaskUtils.CompletedTask; return TaskUtils.CompletedTask;

View File

@ -54,6 +54,8 @@ namespace Plane.Copters
await _internalCopter.ConnectAsync().ConfigureAwait(false); await _internalCopter.ConnectAsync().ConfigureAwait(false);
IsConnected = _internalCopter.IsConnected; IsConnected = _internalCopter.IsConnected;
IsCheckingConnection = true; IsCheckingConnection = true;
//连接完成后做一些初始化的工作
await InitAsync();
} }
public virtual async Task DisconnectAsync() public virtual async Task DisconnectAsync()
@ -248,6 +250,17 @@ namespace Plane.Copters
await _internalCopter.GeneratePacketAsync(MAVLink.MAVLINK_MSG_ID_SET_PAIR, packet).ConfigureAwait(false); await _internalCopter.GeneratePacketAsync(MAVLink.MAVLINK_MSG_ID_SET_PAIR, packet).ConfigureAwait(false);
} }
public async Task InitAsync()
{
float Gpstype= await _internalCopter.GetParamAsync("GPS_TYPE") ;
if (Gpstype == 15)
LocationType = CopterLocationType.RTK;
else
LocationType = CopterLocationType.GPS;
}
public async Task StopPairingAsync() public async Task StopPairingAsync()
{ {
if (!IsPairing) return; if (!IsPairing) return;