forked from CPL/Simulator
153 lines
3.8 KiB
C#
153 lines
3.8 KiB
C#
using System.Net;
|
||
using System.Runtime.InteropServices;
|
||
|
||
namespace DroneData
|
||
{
|
||
public enum DataMode : ushort
|
||
{
|
||
None = 0, Response = 1, Request = 2
|
||
};
|
||
|
||
public enum DataType : ushort
|
||
{
|
||
None = 0, Head = 1,
|
||
|
||
// Output
|
||
DataAcc = 1001, DataGyr = 1002, DataMag = 1003, DataRange = 1004, DataLocal = 1005, DataBar = 1006, DataOF = 1007, DataGPS = 1008,
|
||
|
||
// Input
|
||
DataMotor4 = 2001, DataMotor6 = 2002,
|
||
|
||
// State
|
||
DataQuat = 3001,
|
||
};
|
||
|
||
public struct DataHead
|
||
{
|
||
public int Size;
|
||
|
||
public DataMode Mode;
|
||
public DataType Type;
|
||
|
||
public uint Time; // Общее время
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataHead));
|
||
}
|
||
|
||
public struct XYZ { public float X, Y, Z; }
|
||
|
||
public struct DataAcc
|
||
{
|
||
public DataHead Head;
|
||
public XYZ Acc;
|
||
|
||
public uint Time; // Последнее время изменения данных
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataAcc));
|
||
}
|
||
|
||
public struct DataGyr
|
||
{
|
||
public DataHead Head;
|
||
public XYZ Gyr;
|
||
|
||
public uint Time; // Последнее время изменения данных
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataGyr));
|
||
}
|
||
|
||
public struct DataMag
|
||
{
|
||
public DataHead Head;
|
||
public XYZ Mag;
|
||
|
||
public uint Time; // Последнее время изменения данных
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataMag));
|
||
}
|
||
|
||
public struct DataRange
|
||
{
|
||
public DataHead Head;
|
||
public float LiDAR; // Датчик посадки
|
||
|
||
public uint Time; // Последнее время изменения данных
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataRange));
|
||
}
|
||
|
||
public struct DataLocal
|
||
{
|
||
public DataHead Head;
|
||
public XYZ Local; // Локальные координаты
|
||
|
||
public uint Time; // Последнее время изменения данных
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataLocal));
|
||
}
|
||
|
||
public struct DataBar
|
||
{
|
||
public DataHead Head;
|
||
public float Pressure; // Давление
|
||
|
||
public uint Time; // Последнее время изменения данных
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataBar));
|
||
}
|
||
|
||
public struct DataOF
|
||
{
|
||
public DataHead Head;
|
||
public float X, Y; // Угловой сдвиг
|
||
|
||
public uint Time; // Последнее время изменения данных
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataOF));
|
||
}
|
||
|
||
public struct DataGPS
|
||
{
|
||
public DataHead Head;
|
||
|
||
public double Lat, Lon; // Координаты (градусы)
|
||
public float Alt; // Высота (метры)
|
||
public float Speed; // Скорость (м/с)
|
||
public int UTC; // Время UTC hhmmss
|
||
|
||
public byte Fix; // Тип решения 0-8 (NMEA Fix type)
|
||
public byte SatVisible; // Количество видимых спутников
|
||
public byte SatUsed; // Количество используемых спутников
|
||
public float Hdop, Vdop, Pdop; // Геометрический фактор
|
||
public float Noise; // Шум (db)
|
||
|
||
public uint Time; // Последнее время изменения данных
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataOF));
|
||
}
|
||
|
||
public struct DataMotor4
|
||
{
|
||
public DataHead Head;
|
||
public float UL, UR, DL, DR;
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataMotor4));
|
||
}
|
||
|
||
public struct DataMotor6
|
||
{
|
||
public DataHead Head;
|
||
public float UL, UR, LL, RR, DL, DR;
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataMotor6));
|
||
}
|
||
|
||
public struct DataQuat
|
||
{
|
||
public DataHead Head;
|
||
public float X, Y, Z, W;
|
||
|
||
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataQuat));
|
||
}
|
||
}
|