Plane.Sdk3/PlaneGcsSdk_Shared/Copters/PlaneCopter.Events.cs

81 lines
2.5 KiB
C#
Raw Permalink Normal View History

2017-02-27 02:02:19 +08:00
using Plane.Protocols;
using System;
namespace Plane.Copters
{
partial class PlaneCopter
{
public delegate void ErrorDataEventHandle(uint itimes, ulong iDataCount, byte sCommand);
public delegate void GetLogData(string log);
public delegate void MissionResultHandle(MAVLink.MAV_MISSION_RESULT missionresult);
public delegate void MyEvent(object sender, String ParamID, int ParamIndex, int ParamCount);
public delegate void MyEventHandler(object sender, uint iError, ulong iCount);
public delegate void MyRevEvent(object sender, byte StreamType);
public delegate void MyRevScaleImu2Event(object sender);
public delegate void MyRevSensorEvent(object sender);
public delegate void MyRevSysEvent(object sender, byte StreamType, bool GPSBadHealth, bool GyroBadHealth, bool AccelBadHealth, bool CompassBadHealth, bool BarometerBadHealth, bool canTakeOff);
public event EventHandler ConnectionBroken;
public event ErrorDataEventHandle ErrorDataEvent;
public event GetLogData GetLogDataEvent;
public event EventHandler<MessageCreatedEventArgs> MessageCreated;
/// <summary>
/// 在数据包被解析后引发。
/// </summary>
public event EventHandler<PacketReceivedEventArgs> PacketHandled;
/// <summary>
/// 在接收到数据包但未解析后引发。
/// </summary>
public event EventHandler<PacketReceivedEventArgs> PacketReceived;
public event MyRevEvent ReceiveDataStreamEvent;
public event MyEventHandler ReceiveHeartBearEvent;
public event MyEvent ReceiveParamEvent;
public event MyRevSensorEvent ReceiveScaleImu2Event;
public event MyRevSensorEvent ReceiveSensorEvent;
public event MyRevSysEvent ReceiveSysStatusEvent;
/// <summary>
/// 在尝试解析数据包但未找到对应的解析方法时引发。
/// </summary>
public event EventHandler<PacketReceivedEventArgs> UnhandledPacketReceived;
private void RaiseReceiveDataStreamEventOnUIThread(byte messageId)
{
var handler = ReceiveDataStreamEvent;
if (handler != null)
{
RunOnUIThread(() => handler(this, messageId));
}
}
public class PacketReceivedEventArgs : EventArgs
{
public PacketReceivedEventArgs(byte[] packet)
{
this.Packet = packet;
}
public byte[] Packet { get; set; }
}
}
}