diff --git a/PlaneGcsSdk.Contract_Shared/Copters/ICopter.cs b/PlaneGcsSdk.Contract_Shared/Copters/ICopter.cs
index d4c4a61..63282e1 100644
--- a/PlaneGcsSdk.Contract_Shared/Copters/ICopter.cs
+++ b/PlaneGcsSdk.Contract_Shared/Copters/ICopter.cs
@@ -2,7 +2,7 @@
namespace Plane.Copters
{
- public partial interface ICopter : ICopterStatus, ICopterEvents, ICopterActions, ICopterCommunication, INotifyPropertyChanged, ICopterAttribute
+ public partial interface ICopter : ICopterStatus, ICopterEvents, ICopterVirtualId, ICopterActions, ICopterCommunication, INotifyPropertyChanged, ICopterAttribute
{
}
diff --git a/PlaneGcsSdk.Contract_Shared/Copters/IVisibleStatus.cs b/PlaneGcsSdk.Contract_Shared/Copters/IVisibleStatus.cs
index 379184a..0a8489c 100644
--- a/PlaneGcsSdk.Contract_Shared/Copters/IVisibleStatus.cs
+++ b/PlaneGcsSdk.Contract_Shared/Copters/IVisibleStatus.cs
@@ -10,6 +10,6 @@ namespace Plane.Copters
///
/// 获取名称。
///
- string Name { get; }
+ string Name { get; set; }
}
}
diff --git a/PlaneGcsSdk.Contract_Shared/PlaneGcsSdk.Contract_Shared.projitems b/PlaneGcsSdk.Contract_Shared/PlaneGcsSdk.Contract_Shared.projitems
index f92db2d..7764b35 100644
--- a/PlaneGcsSdk.Contract_Shared/PlaneGcsSdk.Contract_Shared.projitems
+++ b/PlaneGcsSdk.Contract_Shared/PlaneGcsSdk.Contract_Shared.projitems
@@ -22,6 +22,7 @@
+
diff --git a/PlaneGcsSdk_Shared/CommunicationManagement/CommModule.cs b/PlaneGcsSdk_Shared/CommunicationManagement/CommModule.cs
index 74652b2..196479f 100644
--- a/PlaneGcsSdk_Shared/CommunicationManagement/CommModule.cs
+++ b/PlaneGcsSdk_Shared/CommunicationManagement/CommModule.cs
@@ -413,6 +413,23 @@ namespace Plane.CommunicationManagement
///
public async Task WriteCommPacketAsync(short copterId, short messageType, byte[] data = null, byte[] batchPacket = null)
{
+ if (messageType == MavComm.COMM_DOWNLOAD_COMM && copterId == 0)
+ {
+ short byteNum;
+ short length;
+ if (batchPacket == null)
+ {
+ byteNum = 0;
+ length = (short)((0x5 << 12) ^ byteNum);
+ batchPacket = BitConverter.GetBytes(length);
+ }
+ else
+ {
+ byteNum = (short)(batchPacket.Length / 2);
+ length = (short)((0x5 << 12) ^ byteNum);
+ batchPacket = BitConverter.GetBytes(length).Concat(batchPacket).ToArray();
+ }
+ }
if (data != null && batchPacket != null) data = batchPacket.Concat(data).ToArray();
int packetlength = data == null ? 0 : data.Length;
@@ -466,11 +483,13 @@ namespace Plane.CommunicationManagement
{
int dataLength = 6 + 2 + indata.Length * 32;
byte[] data = new byte[dataLength];
+ Int16 countNum = (Int16)indata.Length;
+
+ byte[] uses = new byte[] { 0, 1, 0, 0, 0, 0 };
- byte[] uses = new byte[] { 0, 0, 1, 0, 0, 0 };
Array.Copy(uses, 0, data, 0, 6);
- Int16 countNum = (Int16)indata.Length;
+ Array.Copy(BitConverter.GetBytes(countNum), 0, data, 2, 2);
Array.Copy(BitConverter.GetBytes(countNum), 0, data, 6, 2);
int offset = 8;
diff --git a/PlaneGcsSdk_Shared/Copters/CopterImplSharedPart.cs b/PlaneGcsSdk_Shared/Copters/CopterImplSharedPart.cs
index ae5a138..0a498fc 100644
--- a/PlaneGcsSdk_Shared/Copters/CopterImplSharedPart.cs
+++ b/PlaneGcsSdk_Shared/Copters/CopterImplSharedPart.cs
@@ -169,6 +169,11 @@ namespace Plane.Copters
private double _RecordLng;
+
+ private int _VirtualId;
+
+ private bool _DisplayVirtualId = false;
+
#endregion Backing Fields
public CopterImplSharedPart(SynchronizationContext uiSyncContext) : base(uiSyncContext)
@@ -394,6 +399,20 @@ namespace Plane.Copters
protected set { Set(nameof(Elevation), ref _Elevation, value); }
}
+ public int VirtualId
+ {
+ get { return _VirtualId; }
+ set { Set(nameof(VirtualId), ref _VirtualId, value); }
+ }
+
+ public bool DisplayVirtualId
+ {
+ get { return _DisplayVirtualId; }
+ set { Set(nameof(DisplayVirtualId), ref _DisplayVirtualId, value); }
+ }
+
+
+
///
/// 获取固件版本。
///
@@ -597,7 +616,6 @@ namespace Plane.Copters
public string Name { get; set; }
-
public float Pitch
{
get { return _Pitch; }