+++
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
using System.Numerics;
|
||||
using System.Runtime.InteropServices;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
||||
namespace DroneSimulator
|
||||
{
|
||||
@ -436,6 +437,32 @@ namespace DroneSimulator
|
||||
return getBytes(of);
|
||||
}
|
||||
|
||||
private byte[] SendDataGPS()
|
||||
{
|
||||
DroneData.DataGPS gps = new DroneData.DataGPS();
|
||||
|
||||
gps.Head.Size = Marshal.SizeOf(typeof(DroneData.DataGPS));
|
||||
gps.Head.Mode = DroneData.DataMode.Response;
|
||||
gps.Head.Type = DroneData.DataType.DataGPS;
|
||||
gps.Head.Time = (uint)Environment.TickCount;
|
||||
|
||||
gps.Speed = MathF.Sqrt(SpdXYZ.X * SpdXYZ.X + SpdXYZ.Y * SpdXYZ.Y + SpdXYZ.Z * SpdXYZ.Z);
|
||||
gps.Alt = GPS.Home.Alt + PosXYZ.Z;
|
||||
|
||||
DateTime tim = DateTime.Now;
|
||||
gps.UTC = tim.Second + tim.Minute * 100 + tim.Hour * 10000;
|
||||
|
||||
gps.Fix = GPS.State.Fix;
|
||||
gps.SatVisible = GPS.State.SatVisible;
|
||||
gps.SatUsed = GPS.State.SatUsed;
|
||||
gps.Noise = GPS.State.Noise;
|
||||
gps.Hdop = GPS.State.Hdop;
|
||||
gps.Vdop = GPS.State.Vdop;
|
||||
gps.Pdop = GPS.State.Pdop;
|
||||
|
||||
return getBytes(gps);
|
||||
}
|
||||
|
||||
private byte[] SendDataQuaternion()
|
||||
{
|
||||
DroneData.DataQuat quat = new DroneData.DataQuat();
|
||||
@ -484,6 +511,8 @@ namespace DroneSimulator
|
||||
|
||||
case DroneData.DataType.DataOF: if (head.Mode == DroneData.DataMode.Request) return SendDataOF(); else return zero;
|
||||
|
||||
case DroneData.DataType.DataGPS: if (head.Mode == DroneData.DataMode.Request) return SendDataGPS(); else return zero;
|
||||
|
||||
case DroneData.DataType.DataQuat: if (head.Mode == DroneData.DataMode.Request) return SendDataQuaternion(); else return zero;
|
||||
|
||||
case DroneData.DataType.DataMotor4: if (head.Mode == DroneData.DataMode.Response) RecvDataMotor4(body); return zero;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Net;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace DroneData
|
||||
{
|
||||
@ -12,7 +13,7 @@ namespace DroneData
|
||||
None = 0, Head = 1,
|
||||
|
||||
// Output
|
||||
DataAcc = 1001, DataGyr = 1002, DataMag = 1003, DataRange = 1004, DataLocal = 1005, DataBar = 1006, DataOF = 1007,
|
||||
DataAcc = 1001, DataGyr = 1002, DataMag = 1003, DataRange = 1004, DataLocal = 1005, DataBar = 1006, DataOF = 1007, DataGPS = 1008,
|
||||
|
||||
// Input
|
||||
DataMotor4 = 2001, DataMotor6 = 2002,
|
||||
@ -105,6 +106,26 @@ namespace DroneData
|
||||
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;
|
||||
|
335
DroneSimulator/FormMain.Designer.cs
generated
335
DroneSimulator/FormMain.Designer.cs
generated
@ -179,6 +179,30 @@
|
||||
checkBox_Area_Freeze_Y = new CheckBox();
|
||||
label41 = new Label();
|
||||
checkBox_Area_Freeze_X = new CheckBox();
|
||||
tabPage_GPS = new TabPage();
|
||||
groupBox5 = new GroupBox();
|
||||
numericUpDown_GPS_VDOP = new NumericUpDown();
|
||||
numericUpDown_GPS_PDOP = new NumericUpDown();
|
||||
numericUpDown_GPS_HDOP = new NumericUpDown();
|
||||
label82 = new Label();
|
||||
label81 = new Label();
|
||||
label80 = new Label();
|
||||
numericUpDown_GPS_Noise = new NumericUpDown();
|
||||
numericUpDown_GPS_Use = new NumericUpDown();
|
||||
numericUpDown_GPS_Vis = new NumericUpDown();
|
||||
numericUpDown_GPS_Fix = new NumericUpDown();
|
||||
label73 = new Label();
|
||||
label72 = new Label();
|
||||
label71 = new Label();
|
||||
label70 = new Label();
|
||||
groupBox2 = new GroupBox();
|
||||
label69 = new Label();
|
||||
numericUpDown_GPS_Alt = new NumericUpDown();
|
||||
label68 = new Label();
|
||||
numericUpDown_GPS_Lon = new NumericUpDown();
|
||||
numericUpDown_GPS_Lat = new NumericUpDown();
|
||||
label67 = new Label();
|
||||
label66 = new Label();
|
||||
groupBox_Navi = new GroupBox();
|
||||
panel1 = new Panel();
|
||||
listBox_Drones = new ListBox();
|
||||
@ -245,6 +269,19 @@
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_Area_Wind_Direction).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_Area_Wind_Speed_From).BeginInit();
|
||||
groupBox3.SuspendLayout();
|
||||
tabPage_GPS.SuspendLayout();
|
||||
groupBox5.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_VDOP).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_PDOP).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_HDOP).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Noise).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Use).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Vis).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Fix).BeginInit();
|
||||
groupBox2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Alt).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Lon).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Lat).BeginInit();
|
||||
groupBox_Navi.SuspendLayout();
|
||||
panel1.SuspendLayout();
|
||||
SuspendLayout();
|
||||
@ -300,6 +337,7 @@
|
||||
tabControl_Menu.Controls.Add(tabPage_Main);
|
||||
tabControl_Menu.Controls.Add(tabPage_Model);
|
||||
tabControl_Menu.Controls.Add(tabPage_Area);
|
||||
tabControl_Menu.Controls.Add(tabPage_GPS);
|
||||
tabControl_Menu.Dock = DockStyle.Left;
|
||||
tabControl_Menu.Location = new Point(0, 24);
|
||||
tabControl_Menu.Name = "tabControl_Menu";
|
||||
@ -1909,6 +1947,264 @@
|
||||
checkBox_Area_Freeze_X.UseVisualStyleBackColor = true;
|
||||
checkBox_Area_Freeze_X.CheckedChanged += checkBox_Area_Freeze_CheckedChanged;
|
||||
//
|
||||
// tabPage_GPS
|
||||
//
|
||||
tabPage_GPS.Controls.Add(groupBox5);
|
||||
tabPage_GPS.Controls.Add(groupBox2);
|
||||
tabPage_GPS.Location = new Point(4, 24);
|
||||
tabPage_GPS.Name = "tabPage_GPS";
|
||||
tabPage_GPS.Padding = new Padding(3);
|
||||
tabPage_GPS.Size = new Size(210, 889);
|
||||
tabPage_GPS.TabIndex = 3;
|
||||
tabPage_GPS.Text = "GPS";
|
||||
tabPage_GPS.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupBox5
|
||||
//
|
||||
groupBox5.Controls.Add(numericUpDown_GPS_VDOP);
|
||||
groupBox5.Controls.Add(numericUpDown_GPS_PDOP);
|
||||
groupBox5.Controls.Add(numericUpDown_GPS_HDOP);
|
||||
groupBox5.Controls.Add(label82);
|
||||
groupBox5.Controls.Add(label81);
|
||||
groupBox5.Controls.Add(label80);
|
||||
groupBox5.Controls.Add(numericUpDown_GPS_Noise);
|
||||
groupBox5.Controls.Add(numericUpDown_GPS_Use);
|
||||
groupBox5.Controls.Add(numericUpDown_GPS_Vis);
|
||||
groupBox5.Controls.Add(numericUpDown_GPS_Fix);
|
||||
groupBox5.Controls.Add(label73);
|
||||
groupBox5.Controls.Add(label72);
|
||||
groupBox5.Controls.Add(label71);
|
||||
groupBox5.Controls.Add(label70);
|
||||
groupBox5.Dock = DockStyle.Top;
|
||||
groupBox5.Location = new Point(3, 122);
|
||||
groupBox5.Name = "groupBox5";
|
||||
groupBox5.Size = new Size(204, 225);
|
||||
groupBox5.TabIndex = 2;
|
||||
groupBox5.TabStop = false;
|
||||
groupBox5.Text = "State";
|
||||
//
|
||||
// numericUpDown_GPS_VDOP
|
||||
//
|
||||
numericUpDown_GPS_VDOP.DecimalPlaces = 2;
|
||||
numericUpDown_GPS_VDOP.Location = new Point(58, 165);
|
||||
numericUpDown_GPS_VDOP.Name = "numericUpDown_GPS_VDOP";
|
||||
numericUpDown_GPS_VDOP.Size = new Size(62, 23);
|
||||
numericUpDown_GPS_VDOP.TabIndex = 19;
|
||||
numericUpDown_GPS_VDOP.Value = new decimal(new int[] { 1, 0, 0, 65536 });
|
||||
numericUpDown_GPS_VDOP.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// numericUpDown_GPS_PDOP
|
||||
//
|
||||
numericUpDown_GPS_PDOP.DecimalPlaces = 2;
|
||||
numericUpDown_GPS_PDOP.Location = new Point(58, 194);
|
||||
numericUpDown_GPS_PDOP.Name = "numericUpDown_GPS_PDOP";
|
||||
numericUpDown_GPS_PDOP.Size = new Size(62, 23);
|
||||
numericUpDown_GPS_PDOP.TabIndex = 18;
|
||||
numericUpDown_GPS_PDOP.Value = new decimal(new int[] { 1, 0, 0, 65536 });
|
||||
numericUpDown_GPS_PDOP.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// numericUpDown_GPS_HDOP
|
||||
//
|
||||
numericUpDown_GPS_HDOP.DecimalPlaces = 2;
|
||||
numericUpDown_GPS_HDOP.Location = new Point(58, 136);
|
||||
numericUpDown_GPS_HDOP.Name = "numericUpDown_GPS_HDOP";
|
||||
numericUpDown_GPS_HDOP.Size = new Size(62, 23);
|
||||
numericUpDown_GPS_HDOP.TabIndex = 17;
|
||||
numericUpDown_GPS_HDOP.Value = new decimal(new int[] { 1, 0, 0, 65536 });
|
||||
numericUpDown_GPS_HDOP.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// label82
|
||||
//
|
||||
label82.AutoSize = true;
|
||||
label82.Location = new Point(15, 167);
|
||||
label82.Name = "label82";
|
||||
label82.Size = new Size(37, 15);
|
||||
label82.TabIndex = 16;
|
||||
label82.Text = "Vdop:";
|
||||
//
|
||||
// label81
|
||||
//
|
||||
label81.AutoSize = true;
|
||||
label81.Location = new Point(14, 196);
|
||||
label81.Name = "label81";
|
||||
label81.Size = new Size(38, 15);
|
||||
label81.TabIndex = 15;
|
||||
label81.Text = "Pdop:";
|
||||
//
|
||||
// label80
|
||||
//
|
||||
label80.AutoSize = true;
|
||||
label80.Location = new Point(12, 138);
|
||||
label80.Name = "label80";
|
||||
label80.Size = new Size(40, 15);
|
||||
label80.TabIndex = 14;
|
||||
label80.Text = "Hdop:";
|
||||
//
|
||||
// numericUpDown_GPS_Noise
|
||||
//
|
||||
numericUpDown_GPS_Noise.DecimalPlaces = 2;
|
||||
numericUpDown_GPS_Noise.Location = new Point(58, 107);
|
||||
numericUpDown_GPS_Noise.Name = "numericUpDown_GPS_Noise";
|
||||
numericUpDown_GPS_Noise.Size = new Size(62, 23);
|
||||
numericUpDown_GPS_Noise.TabIndex = 9;
|
||||
numericUpDown_GPS_Noise.Value = new decimal(new int[] { 10, 0, 0, 0 });
|
||||
numericUpDown_GPS_Noise.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// numericUpDown_GPS_Use
|
||||
//
|
||||
numericUpDown_GPS_Use.Location = new Point(58, 78);
|
||||
numericUpDown_GPS_Use.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
|
||||
numericUpDown_GPS_Use.Name = "numericUpDown_GPS_Use";
|
||||
numericUpDown_GPS_Use.Size = new Size(40, 23);
|
||||
numericUpDown_GPS_Use.TabIndex = 8;
|
||||
numericUpDown_GPS_Use.Value = new decimal(new int[] { 10, 0, 0, 0 });
|
||||
numericUpDown_GPS_Use.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// numericUpDown_GPS_Vis
|
||||
//
|
||||
numericUpDown_GPS_Vis.Location = new Point(58, 49);
|
||||
numericUpDown_GPS_Vis.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
|
||||
numericUpDown_GPS_Vis.Name = "numericUpDown_GPS_Vis";
|
||||
numericUpDown_GPS_Vis.Size = new Size(40, 23);
|
||||
numericUpDown_GPS_Vis.TabIndex = 7;
|
||||
numericUpDown_GPS_Vis.Value = new decimal(new int[] { 15, 0, 0, 0 });
|
||||
numericUpDown_GPS_Vis.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// numericUpDown_GPS_Fix
|
||||
//
|
||||
numericUpDown_GPS_Fix.Location = new Point(58, 20);
|
||||
numericUpDown_GPS_Fix.Maximum = new decimal(new int[] { 8, 0, 0, 0 });
|
||||
numericUpDown_GPS_Fix.Name = "numericUpDown_GPS_Fix";
|
||||
numericUpDown_GPS_Fix.Size = new Size(40, 23);
|
||||
numericUpDown_GPS_Fix.TabIndex = 6;
|
||||
numericUpDown_GPS_Fix.Value = new decimal(new int[] { 3, 0, 0, 0 });
|
||||
numericUpDown_GPS_Fix.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// label73
|
||||
//
|
||||
label73.AutoSize = true;
|
||||
label73.Location = new Point(12, 109);
|
||||
label73.Name = "label73";
|
||||
label73.Size = new Size(40, 15);
|
||||
label73.TabIndex = 3;
|
||||
label73.Text = "Noise:";
|
||||
//
|
||||
// label72
|
||||
//
|
||||
label72.AutoSize = true;
|
||||
label72.Location = new Point(4, 80);
|
||||
label72.Name = "label72";
|
||||
label72.Size = new Size(48, 15);
|
||||
label72.TabIndex = 2;
|
||||
label72.Text = "Sat Use:";
|
||||
//
|
||||
// label71
|
||||
//
|
||||
label71.AutoSize = true;
|
||||
label71.Location = new Point(8, 51);
|
||||
label71.Name = "label71";
|
||||
label71.Size = new Size(44, 15);
|
||||
label71.TabIndex = 1;
|
||||
label71.Text = "Sat Vis:";
|
||||
//
|
||||
// label70
|
||||
//
|
||||
label70.AutoSize = true;
|
||||
label70.Location = new Point(27, 22);
|
||||
label70.Name = "label70";
|
||||
label70.Size = new Size(25, 15);
|
||||
label70.TabIndex = 0;
|
||||
label70.Text = "Fix:";
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
groupBox2.Controls.Add(label69);
|
||||
groupBox2.Controls.Add(numericUpDown_GPS_Alt);
|
||||
groupBox2.Controls.Add(label68);
|
||||
groupBox2.Controls.Add(numericUpDown_GPS_Lon);
|
||||
groupBox2.Controls.Add(numericUpDown_GPS_Lat);
|
||||
groupBox2.Controls.Add(label67);
|
||||
groupBox2.Controls.Add(label66);
|
||||
groupBox2.Dock = DockStyle.Top;
|
||||
groupBox2.Location = new Point(3, 3);
|
||||
groupBox2.Name = "groupBox2";
|
||||
groupBox2.Size = new Size(204, 119);
|
||||
groupBox2.TabIndex = 1;
|
||||
groupBox2.TabStop = false;
|
||||
groupBox2.Text = "Home";
|
||||
//
|
||||
// label69
|
||||
//
|
||||
label69.AutoSize = true;
|
||||
label69.Location = new Point(153, 83);
|
||||
label69.Name = "label69";
|
||||
label69.Size = new Size(18, 15);
|
||||
label69.TabIndex = 6;
|
||||
label69.Text = "m";
|
||||
//
|
||||
// numericUpDown_GPS_Alt
|
||||
//
|
||||
numericUpDown_GPS_Alt.DecimalPlaces = 3;
|
||||
numericUpDown_GPS_Alt.Location = new Point(58, 81);
|
||||
numericUpDown_GPS_Alt.Maximum = new decimal(new int[] { 10000, 0, 0, 0 });
|
||||
numericUpDown_GPS_Alt.Minimum = new decimal(new int[] { 1000, 0, 0, int.MinValue });
|
||||
numericUpDown_GPS_Alt.Name = "numericUpDown_GPS_Alt";
|
||||
numericUpDown_GPS_Alt.Size = new Size(89, 23);
|
||||
numericUpDown_GPS_Alt.TabIndex = 5;
|
||||
numericUpDown_GPS_Alt.Value = new decimal(new int[] { 503, 0, 0, 65536 });
|
||||
numericUpDown_GPS_Alt.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// label68
|
||||
//
|
||||
label68.AutoSize = true;
|
||||
label68.Location = new Point(16, 83);
|
||||
label68.Name = "label68";
|
||||
label68.Size = new Size(25, 15);
|
||||
label68.TabIndex = 4;
|
||||
label68.Text = "Alt:";
|
||||
//
|
||||
// numericUpDown_GPS_Lon
|
||||
//
|
||||
numericUpDown_GPS_Lon.DecimalPlaces = 8;
|
||||
numericUpDown_GPS_Lon.Location = new Point(58, 52);
|
||||
numericUpDown_GPS_Lon.Maximum = new decimal(new int[] { 90, 0, 0, 0 });
|
||||
numericUpDown_GPS_Lon.Minimum = new decimal(new int[] { 90, 0, 0, int.MinValue });
|
||||
numericUpDown_GPS_Lon.Name = "numericUpDown_GPS_Lon";
|
||||
numericUpDown_GPS_Lon.Size = new Size(101, 23);
|
||||
numericUpDown_GPS_Lon.TabIndex = 3;
|
||||
numericUpDown_GPS_Lon.Value = new decimal(new int[] { 472064791, 0, 0, 458752 });
|
||||
numericUpDown_GPS_Lon.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// numericUpDown_GPS_Lat
|
||||
//
|
||||
numericUpDown_GPS_Lat.DecimalPlaces = 8;
|
||||
numericUpDown_GPS_Lat.Location = new Point(58, 23);
|
||||
numericUpDown_GPS_Lat.Maximum = new decimal(new int[] { 90, 0, 0, 0 });
|
||||
numericUpDown_GPS_Lat.Minimum = new decimal(new int[] { 90, 0, 0, int.MinValue });
|
||||
numericUpDown_GPS_Lat.Name = "numericUpDown_GPS_Lat";
|
||||
numericUpDown_GPS_Lat.Size = new Size(101, 23);
|
||||
numericUpDown_GPS_Lat.TabIndex = 2;
|
||||
numericUpDown_GPS_Lat.Value = new decimal(new int[] { 389290690, 0, 0, 458752 });
|
||||
numericUpDown_GPS_Lat.ValueChanged += numericUpDown_GPS_ValueChanged;
|
||||
//
|
||||
// label67
|
||||
//
|
||||
label67.AutoSize = true;
|
||||
label67.Location = new Point(15, 54);
|
||||
label67.Name = "label67";
|
||||
label67.Size = new Size(30, 15);
|
||||
label67.TabIndex = 1;
|
||||
label67.Text = "Lon:";
|
||||
//
|
||||
// label66
|
||||
//
|
||||
label66.AutoSize = true;
|
||||
label66.Location = new Point(19, 25);
|
||||
label66.Name = "label66";
|
||||
label66.Size = new Size(26, 15);
|
||||
label66.TabIndex = 0;
|
||||
label66.Text = "Lat:";
|
||||
//
|
||||
// groupBox_Navi
|
||||
//
|
||||
groupBox_Navi.Controls.Add(panel1);
|
||||
@ -2061,6 +2357,21 @@
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_Area_Wind_Speed_From).EndInit();
|
||||
groupBox3.ResumeLayout(false);
|
||||
groupBox3.PerformLayout();
|
||||
tabPage_GPS.ResumeLayout(false);
|
||||
groupBox5.ResumeLayout(false);
|
||||
groupBox5.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_VDOP).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_PDOP).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_HDOP).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Noise).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Use).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Vis).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Fix).EndInit();
|
||||
groupBox2.ResumeLayout(false);
|
||||
groupBox2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Alt).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Lon).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown_GPS_Lat).EndInit();
|
||||
groupBox_Navi.ResumeLayout(false);
|
||||
panel1.ResumeLayout(false);
|
||||
ResumeLayout(false);
|
||||
@ -2225,5 +2536,29 @@
|
||||
private CheckBox checkBox_Model_OF_Real;
|
||||
private CheckBox checkBox_Model_Bar_Real;
|
||||
private CheckBox checkBox_Model_Pos_Real;
|
||||
private TabPage tabPage_GPS;
|
||||
private GroupBox groupBox2;
|
||||
private Label label67;
|
||||
private Label label66;
|
||||
private NumericUpDown numericUpDown_GPS_Lat;
|
||||
private NumericUpDown numericUpDown_GPS_Lon;
|
||||
private Label label69;
|
||||
private NumericUpDown numericUpDown_GPS_Alt;
|
||||
private Label label68;
|
||||
private GroupBox groupBox5;
|
||||
private NumericUpDown numericUpDown_GPS_Vis;
|
||||
private NumericUpDown numericUpDown_GPS_Fix;
|
||||
private Label label73;
|
||||
private Label label72;
|
||||
private Label label71;
|
||||
private Label label70;
|
||||
private NumericUpDown numericUpDown_GPS_Noise;
|
||||
private NumericUpDown numericUpDown_GPS_Use;
|
||||
private NumericUpDown numericUpDown_GPS_VDOP;
|
||||
private NumericUpDown numericUpDown_GPS_PDOP;
|
||||
private NumericUpDown numericUpDown_GPS_HDOP;
|
||||
private Label label82;
|
||||
private Label label81;
|
||||
private Label label80;
|
||||
}
|
||||
}
|
||||
|
@ -139,6 +139,11 @@ namespace DroneSimulator
|
||||
|
||||
private void timer_Test_Tick(object sender, EventArgs e)
|
||||
{
|
||||
DateTime test = DateTime.Now;
|
||||
|
||||
int tim = test.Second + test.Minute * 100 + test.Hour * 10000;
|
||||
|
||||
|
||||
if (screen2D == null) return;
|
||||
|
||||
listBox_Drones.Items.Clear();
|
||||
@ -242,7 +247,7 @@ namespace DroneSimulator
|
||||
|
||||
private void numericUpDown_Acc_Update(object sender, EventArgs e)
|
||||
{
|
||||
RealMode.Accelerometer.RealSimulation=checkBox_Model_Acc_Real.Checked;
|
||||
RealMode.Accelerometer.RealSimulation = checkBox_Model_Acc_Real.Checked;
|
||||
|
||||
RealMode.Accelerometer.Freq = (uint)numericUpDown_Acc_Freq.Value;
|
||||
RealMode.Accelerometer.Noise = (float)numericUpDown_Acc_Noise.Value;
|
||||
@ -317,8 +322,23 @@ namespace DroneSimulator
|
||||
Area.Wind.Speed.To = (float)numericUpDown_Area_Wind_Speed_To.Value;
|
||||
Area.Wind.Direction = (float)numericUpDown_Area_Wind_Direction.Value;
|
||||
Area.Wind.Density = (float)numericUpDown_Area_Wind_Density.Value;
|
||||
Area.Wind.PosResist = ((float)numericUpDown_Area_Wind_PosResist.Value)/1000.0f;
|
||||
Area.Wind.RotResist = ((float)numericUpDown_Area_Wind_RotResist.Value)/1000.0f;
|
||||
Area.Wind.PosResist = ((float)numericUpDown_Area_Wind_PosResist.Value) / 1000.0f;
|
||||
Area.Wind.RotResist = ((float)numericUpDown_Area_Wind_RotResist.Value) / 1000.0f;
|
||||
}
|
||||
|
||||
private void numericUpDown_GPS_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
GPS.Home.Lat = (double)numericUpDown_GPS_Lat.Value;
|
||||
GPS.Home.Lon = (double)numericUpDown_GPS_Lon.Value;
|
||||
GPS.Home.Alt = (double)numericUpDown_GPS_Alt.Value;
|
||||
|
||||
GPS.State.Fix = (byte)numericUpDown_GPS_Fix.Value;
|
||||
GPS.State.SatVisible = (byte)numericUpDown_GPS_Vis.Value;
|
||||
GPS.State.SatUsed = (byte)numericUpDown_GPS_Use.Value;
|
||||
GPS.State.Noise = (float)numericUpDown_GPS_Noise.Value;
|
||||
GPS.State.Hdop = (float)numericUpDown_GPS_HDOP.Value;
|
||||
GPS.State.Vdop = (float)numericUpDown_GPS_VDOP.Value;
|
||||
GPS.State.Pdop = (float)numericUpDown_GPS_PDOP.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
27
DroneSimulator/GPS.cs
Normal file
27
DroneSimulator/GPS.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DroneSimulator
|
||||
{
|
||||
internal class GPS
|
||||
{
|
||||
public struct Home
|
||||
{
|
||||
public static double Lat, Lon;
|
||||
public static float Alt;
|
||||
}
|
||||
|
||||
public struct State
|
||||
{
|
||||
public static byte Fix; // Тип решения 0-8 (NMEA Fix type)
|
||||
public static byte SatVisible; // Количество видимых спутников
|
||||
public static byte SatUsed; // Количество используемых спутников
|
||||
public static float Hdop, Vdop, Pdop; // Геометрический фактор
|
||||
public static float Noise; // Шум (db)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user