Simulator/DroneClient/DroneData.cs
2025-04-11 21:59:06 +03:00

100 lines
2.1 KiB
C#

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,
// Input
DataMotor4 = 2001, DataMotor6 = 2002
};
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 DataLocal
{
public DataHead Head;
public XYZ Local; // Ëîêàëüíûå êîîðäèíàòû
public uint Time; // Ïîñëåäíåå âðåìÿ èçìåíåíèÿ äàííûõ
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataLocal));
}
public struct DataRange
{
public DataHead Head;
public float LiDAR; // Äàò÷èê ïîñàäêè
public uint Time; // Ïîñëåäíåå âðåìÿ èçìåíåíèÿ äàííûõ
static public int StrLen = Marshal.SizeOf(typeof(DroneData.DataRange));
}
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));
}
}