From 762b1ea0df02d9d083341500088547c199542b5b Mon Sep 17 00:00:00 2001 From: Michael Oborne Date: Sat, 7 Apr 2012 07:51:00 +0800 Subject: [PATCH] APM Planner 1.1.62 3dr Radio support update mavlink library --- .../ArdupilotMegaPlanner/ArdupilotMega.csproj | 5 +- Tools/ArdupilotMegaPlanner/CodeGen.cs | 13 +- Tools/ArdupilotMegaPlanner/Common.cs | 9 +- Tools/ArdupilotMegaPlanner/CurrentState.cs | 14 +- .../GCSViews/Configuration.cs | 11 +- .../ConfigArducopter.Designer.cs | 4 + .../ConfigurationView/ConfigArducopter.cs | 329 ++ .../ConfigurationView/ConfigArducopter.resx | 3 + .../ConfigArduplane.Designer.cs | 4 + .../ConfigurationView/ConfigArduplane.cs | 251 + .../ConfigurationView/ConfigArduplane.resx | 3 + .../ConfigHardwareOptions.cs | 2 +- .../ConfigurationView/ConfigRadioInput.cs | 4 +- .../ConfigRawParams.Designer.cs | 16 +- .../ConfigurationView/ConfigRawParams.cs | 171 +- .../ConfigurationView/ConfigRawParams.resx | 3 + .../Configuration.Designer.cs | 1 + .../ConfigurationView/Configuration.cs | 7 +- .../ConfigurationView/Setup.Designer.cs | 13 - .../GCSViews/FlightData.cs | 18 +- .../GCSViews/FlightPlanner.cs | 10 +- .../GCSViews/Simulation.cs | 17 +- Tools/ArdupilotMegaPlanner/MAVLink.cs | 52 +- Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs | 4309 +++++++++-------- Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs | 222 +- Tools/ArdupilotMegaPlanner/MainV2.cs | 6 +- Tools/ArdupilotMegaPlanner/Msi/wix.pdb | Bin 19968 -> 19968 bytes .../Properties/AssemblyInfo.cs | 2 +- Tools/ArdupilotMegaPlanner/RAW_Sensor.cs | 16 +- Tools/ArdupilotMegaPlanner/SerialInput.cs | 2 +- .../bin/Release/ArdupilotMegaPlanner.pdb | Bin 1172992 -> 1156608 bytes Tools/ArdupilotMegaPlanner/paramcompare.cs | 15 +- 32 files changed, 3299 insertions(+), 2233 deletions(-) diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj index 92d2d6b7bf..31a032782f 100644 --- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj +++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj @@ -45,7 +45,7 @@ TRACE;DEBUG;MAVLINK10cra prompt 4 - false + true false @@ -61,7 +61,7 @@ TRACE;DEBUG;MAVLINK10cra prompt 4 - false + true false @@ -318,6 +318,7 @@ Setup.cs + UserControl diff --git a/Tools/ArdupilotMegaPlanner/CodeGen.cs b/Tools/ArdupilotMegaPlanner/CodeGen.cs index f3faeaca2a..199bb33324 100644 --- a/Tools/ArdupilotMegaPlanner/CodeGen.cs +++ b/Tools/ArdupilotMegaPlanner/CodeGen.cs @@ -49,13 +49,12 @@ namespace ArdupilotMega return answer; } - static ICodeCompiler CreateCompiler() + static CodeDomProvider CreateCompiler() { //Create an instance of the C# compiler - CodeDomProvider codeProvider = null; - codeProvider = new CSharpCodeProvider(); - ICodeCompiler compiler = codeProvider.CreateCompiler(); - return compiler; + CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp"); + //ICodeCompiler compiler = codeProvider.CreateCompiler(); + return codeProvider; } /// @@ -88,7 +87,7 @@ namespace ArdupilotMega /// /// /// - static private CompilerResults CompileCode(ICodeCompiler compiler, CompilerParameters parms, string source) + static private CompilerResults CompileCode(CodeDomProvider compiler, CompilerParameters parms, string source) { //actually compile the code CompilerResults results = compiler.CompileAssemblyFromSource( @@ -144,7 +143,7 @@ namespace ArdupilotMega static private CompilerResults CompileAssembly() { // create a compiler - ICodeCompiler compiler = CreateCompiler(); + CodeDomProvider compiler = CreateCompiler(); // get all the compiler parameters CompilerParameters parms = CreateCompilerParameters(); // compile the code into an assembly diff --git a/Tools/ArdupilotMegaPlanner/Common.cs b/Tools/ArdupilotMegaPlanner/Common.cs index 2840e9b7c8..4a596aeca5 100644 --- a/Tools/ArdupilotMegaPlanner/Common.cs +++ b/Tools/ArdupilotMegaPlanner/Common.cs @@ -448,7 +448,7 @@ namespace ArdupilotMega case (int)Common.apmmodes.LOITER: case (int)Common.apmmodes.FLY_BY_WIRE_A: case (int)Common.apmmodes.FLY_BY_WIRE_B: - mode.base_mode = (byte)MAVLink.MAV_MODE_FLAG.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED; + mode.base_mode = (byte)MAVLink.MAV_MODE_FLAG.CUSTOM_MODE_ENABLED; mode.custom_mode = (uint)(int)Enum.Parse(Common.getModes(), modein); break; default: @@ -468,7 +468,7 @@ namespace ArdupilotMega case (int)Common.ac2modes.ALT_HOLD: case (int)Common.ac2modes.CIRCLE: case (int)Common.ac2modes.POSITION: - mode.base_mode = (byte)MAVLink.MAV_MODE_FLAG.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED; + mode.base_mode = (byte)MAVLink.MAV_MODE_FLAG.CUSTOM_MODE_ENABLED; mode.custom_mode = (uint)(int)Enum.Parse(Common.getModes(), modein); break; default: @@ -576,7 +576,10 @@ namespace ArdupilotMega try { // this is for mono to a ssl server - ServicePointManager.CertificatePolicy = new NoCheckCertificatePolicy(); + //ServicePointManager.CertificatePolicy = new NoCheckCertificatePolicy(); + + ServicePointManager.ServerCertificateValidationCallback = + new System.Net.Security.RemoteCertificateValidationCallback((sender, certificate, chain, policyErrors) => { return true; }); // Create a request using a URL that can receive a post. WebRequest request = WebRequest.Create(url); diff --git a/Tools/ArdupilotMegaPlanner/CurrentState.cs b/Tools/ArdupilotMegaPlanner/CurrentState.cs index 719305e122..859fc0f1ab 100644 --- a/Tools/ArdupilotMegaPlanner/CurrentState.cs +++ b/Tools/ArdupilotMegaPlanner/CurrentState.cs @@ -385,9 +385,9 @@ namespace ArdupilotMega mode = "Unknown"; - if ((hb.base_mode & (byte)MAVLink.MAV_MODE_FLAG.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED) != 0) + if ((hb.base_mode & (byte)MAVLink.MAV_MODE_FLAG.CUSTOM_MODE_ENABLED) != 0) { - if (hb.type == (byte)MAVLink.MAV_TYPE.MAV_TYPE_FIXED_WING) + if (hb.type == (byte)MAVLink.MAV_TYPE.FIXED_WING) { switch (hb.custom_mode) { @@ -423,7 +423,7 @@ namespace ArdupilotMega break; } } - else if (hb.type == (byte)MAVLink.MAV_TYPE.MAV_TYPE_QUADROTOR) + else if (hb.type == (byte)MAVLink.MAV_TYPE.QUADROTOR) { switch (hb.custom_mode) { @@ -461,9 +461,9 @@ namespace ArdupilotMega } } - if (oldmode != mode && MainV2.speechenable && MainV2.getConfig("speechmodeenabled") == "True") + if (oldmode != mode && MainV2.speechEnable && MainV2.getConfig("speechmodeenabled") == "True") { - MainV2.talk.SpeakAsync(Common.speechConversion(MainV2.getConfig("speechmode"))); + MainV2.speechEngine.SpeakAsync(Common.speechConversion(MainV2.getConfig("speechmode"))); } } @@ -726,9 +726,9 @@ namespace ArdupilotMega wpno = wpcur.seq; - if (oldwp != wpno && MainV2.speechenable && MainV2.getConfig("speechwaypointenabled") == "True") + if (oldwp != wpno && MainV2.speechEnable && MainV2.getConfig("speechwaypointenabled") == "True") { - MainV2.talk.SpeakAsync(Common.speechConversion(MainV2.getConfig("speechwaypoint"))); + MainV2.speechEngine.SpeakAsync(Common.speechConversion(MainV2.getConfig("speechwaypoint"))); } //MAVLink.packets[ArdupilotMega.MAVLink.MAVLINK_MSG_ID_WAYPOINT_CURRENT] = null; diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs index 512dad7487..2c875ef644 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs @@ -579,7 +579,6 @@ namespace ArdupilotMega.GCSViews } } catch { ((Control)text[0]).BackColor = Color.Red; } - Params.Focus(); } @@ -712,13 +711,6 @@ namespace ArdupilotMega.GCSViews { if (ConfigTabs.SelectedTab == TabSetup) { - if (!MainV2.comPort.BaseStream.IsOpen) - { - CustomMessageBox.Show("Please Connect First"); - ConfigTabs.SelectedIndex = 0; - } - else - { GCSViews.ConfigurationView.Setup temp = new GCSViews.ConfigurationView.Setup(); @@ -729,7 +721,6 @@ namespace ArdupilotMega.GCSViews startup = true; processToScreen(); startup = false; - } } } @@ -1106,7 +1097,7 @@ namespace ArdupilotMega.GCSViews { param2 = loadParamFile(ofd.FileName); - ParamCompare temp = new ParamCompare(this, param, param2); + ParamCompare temp = new ParamCompare(Params, param, param2); ThemeManager.ApplyThemeTo(temp); temp.ShowDialog(); } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.Designer.cs index 2bcd2ea558..767aeb4a6f 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.Designer.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); this.myLabel3 = new ArdupilotMega.MyLabel(); this.TUNE_LOW = new System.Windows.Forms.NumericUpDown(); this.TUNE_HIGH = new System.Windows.Forms.NumericUpDown(); @@ -123,6 +124,7 @@ this.label90 = new System.Windows.Forms.Label(); this.RATE_RLL_P = new System.Windows.Forms.NumericUpDown(); this.label91 = new System.Windows.Forms.Label(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); ((System.ComponentModel.ISupportInitialize)(this.TUNE_LOW)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.TUNE_HIGH)).BeginInit(); this.groupBox5.SuspendLayout(); @@ -1090,6 +1092,7 @@ this.Controls.Add(this.groupBox25); this.Name = "ConfigArducopter"; this.Size = new System.Drawing.Size(728, 393); + this.Load += new System.EventHandler(this.ConfigArducopter_Load); ((System.ComponentModel.ISupportInitialize)(this.TUNE_LOW)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.TUNE_HIGH)).EndInit(); this.groupBox5.ResumeLayout(false); @@ -1243,5 +1246,6 @@ private System.Windows.Forms.Label label90; private System.Windows.Forms.NumericUpDown RATE_RLL_P; private System.Windows.Forms.Label label91; + private System.Windows.Forms.ToolTip toolTip1; } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.cs index 0d90aedb4b..606a5f34d4 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.cs @@ -7,14 +7,343 @@ using System.Linq; using System.Text; using System.Windows.Forms; using ArdupilotMega.Controls.BackstageView; +using System.Collections; namespace ArdupilotMega.GCSViews.ConfigurationView { public partial class ConfigArducopter : BackStageViewContentPanel { + Hashtable changes = new Hashtable(); + static Hashtable tooltips = new Hashtable(); + internal bool startup = true; + + public ConfigArducopter() { InitializeComponent(); } + + public struct paramsettings // hk's + { + public string name; + public float minvalue; + public float maxvalue; + public float normalvalue; + public float scale; + public string desc; + } + + private void ConfigArducopter_Load(object sender, EventArgs e) + { + if (!MainV2.comPort.BaseStream.IsOpen) + { + this.Enabled = false; + return; + } + else + { + if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2) + { + this.Enabled = true; + } + else + { + this.Enabled = false; + return; + } + } + + startup = true; + + changes.Clear(); + + // read tooltips + if (tooltips.Count == 0) + readToolTips(); + + // ensure the fields are populated before setting them + CH7_OPT.DataSource = Enum.GetNames(typeof(Common.ac2ch7modes)); + TUNE.DataSource = Enum.GetNames(typeof(Common.ac2ch6modes)); + + // prefill all fields + processToScreen(); + + startup = false; + } + + void readToolTips() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Configuration)); + + string data = resources.GetString("MAVParam"); + + if (data == null) + { + data = global::ArdupilotMega.Properties.Resources.MAVParam; + } + + string[] tips = data.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + + foreach (var tip in tips) + { + if (!tip.StartsWith("||")) + continue; + + string[] cols = tip.Split(new string[] { "||" }, 9, StringSplitOptions.None); + + if (cols.Length >= 8) + { + paramsettings param = new paramsettings(); + try + { + param.name = cols[1]; + param.desc = AddNewLinesForTooltip(cols[7]); + param.scale = float.Parse(cols[5]); + param.minvalue = float.Parse(cols[2]); + param.maxvalue = float.Parse(cols[3]); + param.normalvalue = float.Parse(cols[4]); + } + catch { } + tooltips[cols[1]] = param; + } + + } + } + + // from http://stackoverflow.com/questions/2512781/winforms-big-paragraph-tooltip/2512895#2512895 + private const int maximumSingleLineTooltipLength = 50; + + private static string AddNewLinesForTooltip(string text) + { + if (text.Length < maximumSingleLineTooltipLength) + return text; + int lineLength = (int)Math.Sqrt((double)text.Length) * 2; + StringBuilder sb = new StringBuilder(); + int currentLinePosition = 0; + for (int textIndex = 0; textIndex < text.Length; textIndex++) + { + // If we have reached the target line length and the next + // character is whitespace then begin a new line. + if (currentLinePosition >= lineLength && + char.IsWhiteSpace(text[textIndex])) + { + sb.Append(Environment.NewLine); + currentLinePosition = 0; + } + // If we have just started a new line, skip all the whitespace. + if (currentLinePosition == 0) + while (textIndex < text.Length && char.IsWhiteSpace(text[textIndex])) + textIndex++; + // Append the next character. + if (textIndex < text.Length) sb.Append(text[textIndex]); + currentLinePosition++; + } + return sb.ToString(); + } + + void disableNumericUpDownControls(Control inctl) + { + foreach (Control ctl in inctl.Controls) + { + if (ctl.Controls.Count > 0) + { + disableNumericUpDownControls(ctl); + } + if (ctl.GetType() == typeof(NumericUpDown)) + { + ctl.Enabled = false; + } + } + } + + internal void processToScreen() + { + toolTip1.RemoveAll(); + + disableNumericUpDownControls(this); + + + // process hashdefines and update display + foreach (string value in MainV2.comPort.param.Keys) + { + if (value == null || value == "") + continue; + + //System.Diagnostics.Debug.WriteLine("Doing: " + value); + + + string name = value; + Control[] text = this.Controls.Find(name, true); + foreach (Control ctl in text) + { + try + { + if (ctl.GetType() == typeof(NumericUpDown)) + { + + NumericUpDown thisctl = ((NumericUpDown)ctl); + thisctl.Maximum = 9000; + thisctl.Minimum = -9000; + thisctl.Value = (decimal)(float)MainV2.comPort.param[value]; + thisctl.Increment = (decimal)0.001; + if (thisctl.Name.EndsWith("_P") || thisctl.Name.EndsWith("_I") || thisctl.Name.EndsWith("_D") + || thisctl.Name.EndsWith("_LOW") || thisctl.Name.EndsWith("_HIGH") || thisctl.Value == 0 + || thisctl.Value.ToString("0.###", new System.Globalization.CultureInfo("en-US")).Contains(".")) + { + thisctl.DecimalPlaces = 3; + } + else + { + thisctl.Increment = (decimal)1; + thisctl.DecimalPlaces = 1; + } + + if (thisctl.Name.EndsWith("_IMAX")) + { + thisctl.Maximum = 180; + thisctl.Minimum = -180; + } + + thisctl.Enabled = true; + + thisctl.BackColor = Color.FromArgb(0x43, 0x44, 0x45); + thisctl.Validated += null; + if (tooltips[value] != null) + { + try + { + toolTip1.SetToolTip(ctl, ((paramsettings)tooltips[value]).desc); + } + catch { } + } + thisctl.Validated += new EventHandler(EEPROM_View_float_TextChanged); + + } + else if (ctl.GetType() == typeof(ComboBox)) + { + + ComboBox thisctl = ((ComboBox)ctl); + + thisctl.SelectedIndex = (int)(float)MainV2.comPort.param[value]; + + thisctl.Validated += new EventHandler(ComboBox_Validated); + + thisctl.BackColor = Color.FromArgb(0x43, 0x44, 0x45); + } + } + catch { } + + } + if (text.Length == 0) + { + //Console.WriteLine(name + " not found"); + } + + } + } + + void ComboBox_Validated(object sender, EventArgs e) + { + EEPROM_View_float_TextChanged(sender, e); + } + + void Configuration_Validating(object sender, CancelEventArgs e) + { + EEPROM_View_float_TextChanged(sender, e); + } + + internal void EEPROM_View_float_TextChanged(object sender, EventArgs e) + { + if (startup == true) + return; + + float value = 0; + string name = ((Control)sender).Name; + + // do domainupdown state check + try + { + if (sender.GetType() == typeof(NumericUpDown)) + { + value = float.Parse(((Control)sender).Text); + changes[name] = value; + } + else if (sender.GetType() == typeof(ComboBox)) + { + value = ((ComboBox)sender).SelectedIndex; + changes[name] = value; + } + ((Control)sender).BackColor = Color.Green; + } + catch (Exception) + { + ((Control)sender).BackColor = Color.Red; + } + + try + { + // enable roll and pitch pairing for ac2 + if (CHK_lockrollpitch.Checked) + { + if (name.StartsWith("RATE_") || name.StartsWith("STB_") || name.StartsWith("ACRO_")) + { + if (name.Contains("_RLL_")) + { + string newname = name.Replace("_RLL_", "_PIT_"); + Control[] arr = this.Controls.Find(newname, true); + changes[newname] = float.Parse(((Control)sender).Text); + + if (arr.Length > 0) + { + arr[0].Text = ((Control)sender).Text; + arr[0].BackColor = Color.Green; + } + + } + else if (name.Contains("_PIT_")) + { + string newname = name.Replace("_PIT_", "_RLL_"); + Control[] arr = this.Controls.Find(newname, true); + changes[newname] = float.Parse(((Control)sender).Text); + + if (arr.Length > 0) + { + arr[0].Text = ((Control)sender).Text; + arr[0].BackColor = Color.Green; + } + } + } + } + // keep nav_lat and nav_lon paired + if (name.Contains("NAV_LAT_")) + { + string newname = name.Replace("NAV_LAT_", "NAV_LON_"); + Control[] arr = this.Controls.Find(newname, true); + changes[newname] = float.Parse(((Control)sender).Text); + + if (arr.Length > 0) + { + arr[0].Text = ((Control)sender).Text; + arr[0].BackColor = Color.Green; + } + } + // keep nav_lat and nav_lon paired + if (name.Contains("HLD_LAT_")) + { + string newname = name.Replace("HLD_LAT_", "HLD_LON_"); + Control[] arr = this.Controls.Find(newname, true); + changes[newname] = float.Parse(((Control)sender).Text); + + if (arr.Length > 0) + { + arr[0].Text = ((Control)sender).Text; + arr[0].BackColor = Color.Green; + } + } + } + catch { } + } + + } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.resx index 7080a7d118..271670364a 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.resx +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.Designer.cs index a6928f5b21..f30b039741 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.Designer.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.THR_FS_VALUE = new System.Windows.Forms.NumericUpDown(); this.label5 = new System.Windows.Forms.Label(); @@ -128,6 +129,7 @@ this.label51 = new System.Windows.Forms.Label(); this.RLL2SRV_P = new System.Windows.Forms.NumericUpDown(); this.label52 = new System.Windows.Forms.Label(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); this.groupBox3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.THR_FS_VALUE)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.THR_MAX)).BeginInit(); @@ -1104,6 +1106,7 @@ this.Controls.Add(this.groupBox8); this.Name = "ConfigArduplane"; this.Size = new System.Drawing.Size(621, 456); + this.Load += new System.EventHandler(this.ConfigArduplane_Load); this.groupBox3.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.THR_FS_VALUE)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.THR_MAX)).EndInit(); @@ -1266,5 +1269,6 @@ private System.Windows.Forms.Label label51; private System.Windows.Forms.NumericUpDown RLL2SRV_P; private System.Windows.Forms.Label label52; + private System.Windows.Forms.ToolTip toolTip1; } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.cs index 96ae024bca..34afb1dc4c 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.cs @@ -7,14 +7,265 @@ using System.Linq; using System.Text; using System.Windows.Forms; using ArdupilotMega.Controls.BackstageView; +using System.Collections; namespace ArdupilotMega.GCSViews.ConfigurationView { public partial class ConfigArduplane : BackStageViewContentPanel { + Hashtable changes = new Hashtable(); + static Hashtable tooltips = new Hashtable(); + internal bool startup = true; + public ConfigArduplane() { InitializeComponent(); } + + private void ConfigArduplane_Load(object sender, EventArgs e) + { + if (!MainV2.comPort.BaseStream.IsOpen) + { + this.Enabled = false; + return; + } + else + { + if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane) + { + this.Enabled = true; + } + else + { + this.Enabled = false; + return; + } + } + + startup = true; + + changes.Clear(); + + // read tooltips + if (tooltips.Count == 0) + readToolTips(); + + processToScreen(); + + startup = false; + } + + public struct paramsettings // hk's + { + public string name; + public float minvalue; + public float maxvalue; + public float normalvalue; + public float scale; + public string desc; + } + + void readToolTips() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Configuration)); + + string data = resources.GetString("MAVParam"); + + if (data == null) + { + data = global::ArdupilotMega.Properties.Resources.MAVParam; + } + + string[] tips = data.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + + foreach (var tip in tips) + { + if (!tip.StartsWith("||")) + continue; + + string[] cols = tip.Split(new string[] { "||" }, 9, StringSplitOptions.None); + + if (cols.Length >= 8) + { + paramsettings param = new paramsettings(); + try + { + param.name = cols[1]; + param.desc = AddNewLinesForTooltip(cols[7]); + param.scale = float.Parse(cols[5]); + param.minvalue = float.Parse(cols[2]); + param.maxvalue = float.Parse(cols[3]); + param.normalvalue = float.Parse(cols[4]); + } + catch { } + tooltips[cols[1]] = param; + } + + } + } + + + // from http://stackoverflow.com/questions/2512781/winforms-big-paragraph-tooltip/2512895#2512895 + private const int maximumSingleLineTooltipLength = 50; + + private static string AddNewLinesForTooltip(string text) + { + if (text.Length < maximumSingleLineTooltipLength) + return text; + int lineLength = (int)Math.Sqrt((double)text.Length) * 2; + StringBuilder sb = new StringBuilder(); + int currentLinePosition = 0; + for (int textIndex = 0; textIndex < text.Length; textIndex++) + { + // If we have reached the target line length and the next + // character is whitespace then begin a new line. + if (currentLinePosition >= lineLength && + char.IsWhiteSpace(text[textIndex])) + { + sb.Append(Environment.NewLine); + currentLinePosition = 0; + } + // If we have just started a new line, skip all the whitespace. + if (currentLinePosition == 0) + while (textIndex < text.Length && char.IsWhiteSpace(text[textIndex])) + textIndex++; + // Append the next character. + if (textIndex < text.Length) sb.Append(text[textIndex]); + currentLinePosition++; + } + return sb.ToString(); + } + + void disableNumericUpDownControls(Control inctl) + { + foreach (Control ctl in inctl.Controls) + { + if (ctl.Controls.Count > 0) + { + disableNumericUpDownControls(ctl); + } + if (ctl.GetType() == typeof(NumericUpDown)) + { + ctl.Enabled = false; + } + } + } + + internal void processToScreen() + { + toolTip1.RemoveAll(); + + disableNumericUpDownControls(this); + + // process hashdefines and update display + foreach (string value in MainV2.comPort.param.Keys) + { + if (value == null || value == "") + continue; + + string name = value; + Control[] text = this.Controls.Find(name, true); + foreach (Control ctl in text) + { + try + { + if (ctl.GetType() == typeof(NumericUpDown)) + { + + NumericUpDown thisctl = ((NumericUpDown)ctl); + thisctl.Maximum = 9000; + thisctl.Minimum = -9000; + thisctl.Value = (decimal)(float)MainV2.comPort.param[value]; + thisctl.Increment = (decimal)0.001; + if (thisctl.Name.EndsWith("_P") || thisctl.Name.EndsWith("_I") || thisctl.Name.EndsWith("_D") + || thisctl.Name.EndsWith("_LOW") || thisctl.Name.EndsWith("_HIGH") || thisctl.Value == 0 + || thisctl.Value.ToString("0.###", new System.Globalization.CultureInfo("en-US")).Contains(".")) + { + thisctl.DecimalPlaces = 3; + } + else + { + thisctl.Increment = (decimal)1; + thisctl.DecimalPlaces = 1; + } + + if (thisctl.Name.EndsWith("_IMAX")) + { + thisctl.Maximum = 180; + thisctl.Minimum = -180; + } + + thisctl.Enabled = true; + + thisctl.BackColor = Color.FromArgb(0x43, 0x44, 0x45); + thisctl.Validated += null; + if (tooltips[value] != null) + { + try + { + toolTip1.SetToolTip(ctl, ((paramsettings)tooltips[value]).desc); + } + catch { } + } + thisctl.Validated += new EventHandler(EEPROM_View_float_TextChanged); + + } + else if (ctl.GetType() == typeof(ComboBox)) + { + + ComboBox thisctl = ((ComboBox)ctl); + + thisctl.SelectedIndex = (int)(float)MainV2.comPort.param[value]; + + thisctl.Validated += new EventHandler(ComboBox_Validated); + } + } + catch { } + + } + if (text.Length == 0) + { + //Console.WriteLine(name + " not found"); + } + + } + } + + void ComboBox_Validated(object sender, EventArgs e) + { + EEPROM_View_float_TextChanged(sender, e); + } + + void Configuration_Validating(object sender, CancelEventArgs e) + { + EEPROM_View_float_TextChanged(sender, e); + } + + internal void EEPROM_View_float_TextChanged(object sender, EventArgs e) + { + float value = 0; + string name = ((Control)sender).Name; + + // do domainupdown state check + try + { + if (sender.GetType() == typeof(NumericUpDown)) + { + value = float.Parse(((Control)sender).Text); + changes[name] = value; + } + else if (sender.GetType() == typeof(ComboBox)) + { + value = ((ComboBox)sender).SelectedIndex; + changes[name] = value; + } + ((Control)sender).BackColor = Color.Green; + } + catch (Exception) + { + ((Control)sender).BackColor = Color.Red; + } + } + } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.resx index 7080a7d118..271670364a 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.resx +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs index d54bb4d027..470cd09026 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs @@ -32,7 +32,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView MainV2.cs.ratesensors = 10; - MainV2.comPort.requestDatastream((byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_SENSORS, MainV2.cs.ratesensors); // mag captures at 10 hz + MainV2.comPort.requestDatastream((byte)MAVLink.MAV_DATA_STREAM.RAW_SENSORS, MainV2.cs.ratesensors); // mag captures at 10 hz CustomMessageBox.Show("Data will be collected for 30 seconds, Please click ok and move the apm around all axises"); diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.cs index afc3094794..91e6716fe9 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.cs @@ -115,7 +115,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView try { - MainV2.comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RC_CHANNELS, 10); + MainV2.comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RC_CHANNELS, 10); } catch { } @@ -229,7 +229,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView try { - MainV2.comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RC_CHANNELS, oldrc); + MainV2.comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RC_CHANNELS, oldrc); } catch { } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.Designer.cs index 7887cd29c9..8ef9695b92 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.Designer.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); this.BUT_compare = new ArdupilotMega.MyButton(); @@ -41,11 +42,13 @@ this.Default = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.mavScale = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.RawValue = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); ((System.ComponentModel.ISupportInitialize)(this.Params)).BeginInit(); this.SuspendLayout(); // // BUT_compare // + this.BUT_compare.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.BUT_compare.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.BUT_compare.Location = new System.Drawing.Point(341, 119); this.BUT_compare.Name = "BUT_compare"; @@ -57,6 +60,7 @@ // // BUT_rerequestparams // + this.BUT_rerequestparams.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.BUT_rerequestparams.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.BUT_rerequestparams.Location = new System.Drawing.Point(341, 94); this.BUT_rerequestparams.Name = "BUT_rerequestparams"; @@ -68,6 +72,7 @@ // // BUT_writePIDS // + this.BUT_writePIDS.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.BUT_writePIDS.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.BUT_writePIDS.Location = new System.Drawing.Point(341, 69); this.BUT_writePIDS.Name = "BUT_writePIDS"; @@ -79,6 +84,7 @@ // // BUT_save // + this.BUT_save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.BUT_save.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.BUT_save.Location = new System.Drawing.Point(341, 35); this.BUT_save.Margin = new System.Windows.Forms.Padding(0); @@ -91,6 +97,7 @@ // // BUT_load // + this.BUT_load.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.BUT_load.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.BUT_load.Location = new System.Drawing.Point(341, 7); this.BUT_load.Margin = new System.Windows.Forms.Padding(0); @@ -105,8 +112,9 @@ // this.Params.AllowUserToAddRows = false; this.Params.AllowUserToDeleteRows = false; - this.Params.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); + this.Params.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; dataGridViewCellStyle1.BackColor = System.Drawing.Color.Maroon; dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); @@ -136,6 +144,7 @@ this.Params.RowHeadersWidth = 150; this.Params.Size = new System.Drawing.Size(321, 302); this.Params.TabIndex = 68; + this.Params.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.Params_CellValueChanged); // // Command // @@ -181,8 +190,6 @@ this.Name = "ConfigRawParams"; this.Size = new System.Drawing.Size(460, 305); this.Load += new System.EventHandler(this.ConfigRawParams_Load); - this.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.ConfigRawParams_ControlAdded); - this.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.ConfigRawParams_ControlRemoved); ((System.ComponentModel.ISupportInitialize)(this.Params)).EndInit(); this.ResumeLayout(false); @@ -201,5 +208,6 @@ private System.Windows.Forms.DataGridViewTextBoxColumn Default; private System.Windows.Forms.DataGridViewTextBoxColumn mavScale; private System.Windows.Forms.DataGridViewTextBoxColumn RawValue; + private System.Windows.Forms.ToolTip toolTip1; } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs index bb6cbb9ced..4d9cf61ece 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs @@ -21,9 +21,21 @@ namespace ArdupilotMega.GCSViews.ConfigurationView // Changes made to the params between writing to the copter readonly Hashtable _changes = new Hashtable(); + static Hashtable tooltips = new Hashtable(); + // ? internal bool startup = true; + public struct paramsettings // hk's + { + public string name; + public float minvalue; + public float maxvalue; + public float normalvalue; + public float scale; + public string desc; + } + public ConfigRawParams() { @@ -234,11 +246,10 @@ namespace ArdupilotMega.GCSViews.ConfigurationView { param2 = loadParamFile(ofd.FileName); - int fixme; - //var paramCompareForm = new ParamCompare((Form)this, MainV2.comPort.param, param2); + Form paramCompareForm = new ParamCompare(Params, MainV2.comPort.param, param2); - //ThemeManager.ApplyThemeTo(paramCompareForm); - //paramCompareForm.ShowDialog(); + ThemeManager.ApplyThemeTo(paramCompareForm); + paramCompareForm.ShowDialog(); } } @@ -264,25 +275,155 @@ namespace ArdupilotMega.GCSViews.ConfigurationView ((Control)sender).Enabled = true; startup = true; + + processToScreen(); + + startup = false; // Todo: this populates or the combos etc and what not. This shoudl prob be a bsv button } + void Params_CellValueChanged(object sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex == -1 || e.ColumnIndex == -1 || startup == true || e.ColumnIndex != 1) + return; + try + { + if (Params[Command.Index, e.RowIndex].Value.ToString().EndsWith("_REV") && (Params[Command.Index, e.RowIndex].Value.ToString().StartsWith("RC") || Params[Command.Index, e.RowIndex].Value.ToString().StartsWith("HS"))) + { + if (Params[e.ColumnIndex, e.RowIndex].Value.ToString() == "0") + Params[e.ColumnIndex, e.RowIndex].Value = "-1"; + } + + Params[e.ColumnIndex, e.RowIndex].Style.BackColor = Color.Green; + _changes[Params[0, e.RowIndex].Value] = float.Parse(Params[e.ColumnIndex, e.RowIndex].Value.ToString()); + } + catch (Exception) + { + Params[e.ColumnIndex, e.RowIndex].Style.BackColor = Color.Red; + } + + + Params.Focus(); + } + + void readToolTips() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Configuration)); + + string data = resources.GetString("MAVParam"); + + if (data == null) + { + data = global::ArdupilotMega.Properties.Resources.MAVParam; + } + + string[] tips = data.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + + foreach (var tip in tips) + { + if (!tip.StartsWith("||")) + continue; + + string[] cols = tip.Split(new string[] { "||" }, 9, StringSplitOptions.None); + + if (cols.Length >= 8) + { + paramsettings param = new paramsettings(); + try + { + param.name = cols[1]; + param.desc = AddNewLinesForTooltip(cols[7]); + param.scale = float.Parse(cols[5]); + param.minvalue = float.Parse(cols[2]); + param.maxvalue = float.Parse(cols[3]); + param.normalvalue = float.Parse(cols[4]); + } + catch { } + tooltips[cols[1]] = param; + } + + } + } + + // from http://stackoverflow.com/questions/2512781/winforms-big-paragraph-tooltip/2512895#2512895 + private const int maximumSingleLineTooltipLength = 50; + + private static string AddNewLinesForTooltip(string text) + { + if (text.Length < maximumSingleLineTooltipLength) + return text; + int lineLength = (int)Math.Sqrt((double)text.Length) * 2; + StringBuilder sb = new StringBuilder(); + int currentLinePosition = 0; + for (int textIndex = 0; textIndex < text.Length; textIndex++) + { + // If we have reached the target line length and the next + // character is whitespace then begin a new line. + if (currentLinePosition >= lineLength && + char.IsWhiteSpace(text[textIndex])) + { + sb.Append(Environment.NewLine); + currentLinePosition = 0; + } + // If we have just started a new line, skip all the whitespace. + if (currentLinePosition == 0) + while (textIndex < text.Length && char.IsWhiteSpace(text[textIndex])) + textIndex++; + // Append the next character. + if (textIndex < text.Length) sb.Append(text[textIndex]); + currentLinePosition++; + } + return sb.ToString(); + } + + internal void processToScreen() + { + toolTip1.RemoveAll(); + Params.Rows.Clear(); + + // process hashdefines and update display + foreach (string value in MainV2.comPort.param.Keys) + { + if (value == null || value == "") + continue; + + //System.Diagnostics.Debug.WriteLine("Doing: " + value); + + Params.Rows.Add(); + Params.Rows[Params.RowCount - 1].Cells[Command.Index].Value = value; + Params.Rows[Params.RowCount - 1].Cells[Value.Index].Value = ((float)MainV2.comPort.param[value]).ToString("0.###"); + try + { + if (tooltips[value] != null) + { + Params.Rows[Params.RowCount - 1].Cells[Command.Index].ToolTipText = ((paramsettings)tooltips[value]).desc; + //Params.Rows[Params.RowCount - 1].Cells[RawValue.Index].ToolTipText = ((paramsettings)tooltips[value]).desc; + Params.Rows[Params.RowCount - 1].Cells[Value.Index].ToolTipText = ((paramsettings)tooltips[value]).desc; + + //Params.Rows[Params.RowCount - 1].Cells[Default.Index].Value = ((paramsettings)tooltips[value]).normalvalue; + //Params.Rows[Params.RowCount - 1].Cells[mavScale.Index].Value = ((paramsettings)tooltips[value]).scale; + //Params.Rows[Params.RowCount - 1].Cells[Value.Index].Value = float.Parse(Params.Rows[Params.RowCount - 1].Cells[RawValue.Index].Value.ToString()) / float.Parse(Params.Rows[Params.RowCount - 1].Cells[mavScale.Index].Value.ToString()); + } + } + catch { } + + } + Params.Sort(Params.Columns[0], ListSortDirection.Ascending); + } + private void ConfigRawParams_Load(object sender, EventArgs e) { + // read tooltips + if (tooltips.Count == 0) + readToolTips(); + startup = true; + + processToScreen(); + + startup = false; } - - private void ConfigRawParams_ControlRemoved(object sender, ControlEventArgs e) - { - - } - - private void ConfigRawParams_ControlAdded(object sender, ControlEventArgs e) - { - - } - } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.resx index 3267b69260..a5480f3926 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.resx +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.resx @@ -129,4 +129,7 @@ True + + 17, 17 + \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.Designer.cs index 714e60edae..9878d6c542 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.Designer.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.Designer.cs @@ -47,6 +47,7 @@ this.Controls.Add(this.backstageView); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "Configuration"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Configuration_FormClosing); this.ResumeLayout(false); this.PerformLayout(); diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs index 33869ddb02..459bf45cb6 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs @@ -23,9 +23,14 @@ namespace ArdupilotMega.GCSViews.ConfigurationView this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibration(), "Level Calibration")); this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArducopter(), "Arducopter Setup")); this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArduplane(), "Arduplane Setup")); - this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArduplane(), "Heli Setup")); + this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigTradHeli(), "Heli Setup")); this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigRawParams(), "Raw params (Advanced)")); this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigPlanner(), "Planner")); } + + private void Configuration_FormClosing(object sender, FormClosingEventArgs e) + { + backstageView.Close(); + } } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs index f0ca41efc7..6476469624 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs @@ -29,20 +29,9 @@ private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Setup)); - this.lbl_pleaseconnect = new System.Windows.Forms.Label(); this.backstageView = new ArdupilotMega.Controls.BackstageView.BackstageView(); this.SuspendLayout(); // - // lbl_pleaseconnect - // - this.lbl_pleaseconnect.AutoSize = true; - this.lbl_pleaseconnect.Location = new System.Drawing.Point(297, 284); - this.lbl_pleaseconnect.Name = "lbl_pleaseconnect"; - this.lbl_pleaseconnect.Size = new System.Drawing.Size(104, 13); - this.lbl_pleaseconnect.TabIndex = 1; - this.lbl_pleaseconnect.Text = "Please Connect First"; - this.lbl_pleaseconnect.Visible = false; - // // backstageView // this.backstageView.AutoSize = true; @@ -55,7 +44,6 @@ // Setup // this.ClientSize = new System.Drawing.Size(823, 468); - this.Controls.Add(this.lbl_pleaseconnect); this.Controls.Add(this.backstageView); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimumSize = new System.Drawing.Size(839, 506); @@ -71,6 +59,5 @@ #endregion private Controls.BackstageView.BackstageView backstageView; - private System.Windows.Forms.Label lbl_pleaseconnect; } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs index 3f3143eaf2..fb77827749 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs @@ -276,14 +276,14 @@ namespace ArdupilotMega.GCSViews { //System.Threading.Thread.Sleep(1000); - //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_CONTROLLER, 0); // request servoout - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTENDED_STATUS, MainV2.cs.ratestatus); // mode - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_POSITION, MainV2.cs.rateposition); // request gps - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA1, MainV2.cs.rateattitude); // request attitude - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA2, MainV2.cs.rateattitude); // request vfr - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA3, MainV2.cs.ratesensors); // request extra stuff - tridge - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_SENSORS, MainV2.cs.ratesensors); // request raw sensor - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RC_CHANNELS, MainV2.cs.raterc); // request rc info + //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RAW_CONTROLLER, 0); // request servoout + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.EXTENDED_STATUS, MainV2.cs.ratestatus); // mode + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.POSITION, MainV2.cs.rateposition); // request gps + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.EXTRA1, MainV2.cs.rateattitude); // request attitude + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.EXTRA2, MainV2.cs.rateattitude); // request vfr + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.EXTRA3, MainV2.cs.ratesensors); // request extra stuff - tridge + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RAW_SENSORS, MainV2.cs.ratesensors); // request raw sensor + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RC_CHANNELS, MainV2.cs.raterc); // request rc info } catch { } lastdata = DateTime.Now.AddSeconds(12); // prevent flooding @@ -927,7 +927,7 @@ namespace ArdupilotMega.GCSViews { MainV2.giveComport = true; - MainV2.comPort.setWP(gotohere, 0, MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL_RELATIVE_ALT, (byte)2); + MainV2.comPort.setWP(gotohere, 0, MAVLink.MAV_FRAME.GLOBAL_RELATIVE_ALT, (byte)2); GuidedModeWP = new PointLatLngAlt(gotohere.lat, gotohere.lng, gotohere.alt,"Guided Mode"); diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs b/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs index 490d6f88fa..4c861632ad 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs @@ -1164,7 +1164,7 @@ namespace ArdupilotMega.GCSViews sw.Write((a + 1)); // seq sw.Write("\t" + 0); // current - sw.Write("\t" + (CHK_altmode.Checked == true ? (byte)MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL : (byte)MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL_RELATIVE_ALT)); //frame + sw.Write("\t" + (CHK_altmode.Checked == true ? (byte)MAVLink.MAV_FRAME.GLOBAL : (byte)MAVLink.MAV_FRAME.GLOBAL_RELATIVE_ALT)); //frame sw.Write("\t" + mode); sw.Write("\t" + double.Parse(Commands.Rows[a].Cells[Param1.Index].Value.ToString()).ToString("0.000000", new System.Globalization.CultureInfo("en-US"))); sw.Write("\t" + double.Parse(Commands.Rows[a].Cells[Param2.Index].Value.ToString()).ToString("0.000000", new System.Globalization.CultureInfo("en-US"))); @@ -1352,9 +1352,9 @@ namespace ArdupilotMega.GCSViews ((Controls.ProgressReporterDialogue)sender).UpdateProgressAndStatus(0, "Set Home"); - port.setWP(home, (ushort)0, MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL, 0); + port.setWP(home, (ushort)0, MAVLink.MAV_FRAME.GLOBAL, 0); - MAVLink.MAV_FRAME frame = MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL_RELATIVE_ALT; + MAVLink.MAV_FRAME frame = MAVLink.MAV_FRAME.GLOBAL_RELATIVE_ALT; // process grid to memory eeprom for (int a = 0; a < Commands.Rows.Count - 0; a++) @@ -1368,11 +1368,11 @@ namespace ArdupilotMega.GCSViews { if (CHK_altmode.Checked) { - frame = MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL; + frame = MAVLink.MAV_FRAME.GLOBAL; } else { - frame = MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL_RELATIVE_ALT; + frame = MAVLink.MAV_FRAME.GLOBAL_RELATIVE_ALT; } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs index d97921914e..f5872fe2a3 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs @@ -51,7 +51,11 @@ namespace ArdupilotMega.GCSViews // gps buffer int gpsbufferindex = 0; +#if !MAVLINK10 ArdupilotMega.MAVLink.mavlink_gps_raw_t[] gpsbuffer = new MAVLink.mavlink_gps_raw_t[5]; +#else + ArdupilotMega.MAVLink.mavlink_gps_raw_int_t[] gpsbuffer = new MAVLink.mavlink_gps_raw_int_t[5]; +#endif // set defaults int rollgain = 10000; @@ -374,7 +378,6 @@ namespace ArdupilotMega.GCSViews /// true/false private void xmlconfig(bool write) { - int fixme; // add profiles? if (write) { ArdupilotMega.MainV2.config["REV_roll"] = CHKREV_roll.Checked.ToString(); @@ -576,11 +579,11 @@ namespace ArdupilotMega.GCSViews { if (CHK_quad.Checked && !RAD_aerosimrc.Checked)// || chkSensor.Checked && RAD_JSBSim.Checked) { - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_CONTROLLER, 0); // request servoout + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RAW_CONTROLLER, 0); // request servoout } else { - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_CONTROLLER, 50); // request servoout + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RAW_CONTROLLER, 50); // request servoout } } catch { } @@ -834,11 +837,11 @@ namespace ArdupilotMega.GCSViews gps.fix_type = 3; if (xplane9) { - gps.cog = ((float)DATA[19][2]); + gps.cog = (ushort)((float)DATA[19][2]); } else { - gps.cog = ((float)DATA[18][2]); + gps.cog = (ushort)((float)DATA[18][2]); } gps.lat = (int)(DATA[20][0] * 1.0e7); gps.lon = (int)(DATA[20][1] * 1.0e7); @@ -1167,7 +1170,11 @@ namespace ArdupilotMega.GCSViews sitlout.alt = gps.alt; sitlout.lat = gps.lat; sitlout.lon = gps.lon; +#if !MAVLINK10 sitlout.heading = gps.hdg; +#else + sitlout.heading = gps.cog; +#endif sitlout.v_north = DATA[21][4]; sitlout.v_east = DATA[21][5]; diff --git a/Tools/ArdupilotMegaPlanner/MAVLink.cs b/Tools/ArdupilotMegaPlanner/MAVLink.cs index 0e918f344f..fc6ea283ab 100644 --- a/Tools/ArdupilotMegaPlanner/MAVLink.cs +++ b/Tools/ArdupilotMegaPlanner/MAVLink.cs @@ -799,7 +799,7 @@ namespace ArdupilotMega public bool setWPCurrent(ushort index) { #if MAVLINK10 - MainV2.givecomport = true; + MainV2.giveComport = true; byte[] buffer; mavlink_mission_set_current_t req = new mavlink_mission_set_current_t(); @@ -825,7 +825,7 @@ namespace ArdupilotMega retrys--; continue; } - MainV2.givecomport = false; + MainV2.giveComport = false; throw new Exception("Timeout on read - setWPCurrent"); } @@ -834,7 +834,7 @@ namespace ArdupilotMega { if (buffer[5] == MAVLINK_MSG_ID_MISSION_CURRENT) { - MainV2.givecomport = false; + MainV2.giveComport = false; return true; } } @@ -844,7 +844,7 @@ namespace ArdupilotMega public bool doCommand(MAV_CMD actionid, float p1, float p2, float p3, float p4, float p5, float p6, float p7) { - MainV2.givecomport = true; + MainV2.giveComport = true; byte[] buffer; mavlink_command_long_t req = new mavlink_command_long_t(); @@ -888,7 +888,7 @@ namespace ArdupilotMega retrys--; continue; } - MainV2.givecomport = false; + MainV2.giveComport = false; throw new Exception("Timeout on read - doAction"); } @@ -902,14 +902,14 @@ namespace ArdupilotMega var ack = buffer.ByteArrayToStructure(6); - if (ack.result == (byte)MAV_RESULT.MAV_RESULT_ACCEPTED) + if (ack.result == (byte)MAV_RESULT.ACCEPTED) { - MainV2.givecomport = false; + MainV2.giveComport = false; return true; } else { - MainV2.givecomport = false; + MainV2.giveComport = false; return false; } } @@ -1032,10 +1032,10 @@ namespace ArdupilotMega switch (id) { - case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_ALL: + case (byte)MAVLink.MAV_DATA_STREAM.ALL: break; - case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTENDED_STATUS: + case (byte)MAVLink.MAV_DATA_STREAM.EXTENDED_STATUS: if (packetspersecondbuild[MAVLINK_MSG_ID_SYS_STATUS] < DateTime.Now.AddSeconds(-2)) break; pps = packetspersecond[MAVLINK_MSG_ID_SYS_STATUS]; @@ -1044,7 +1044,7 @@ namespace ArdupilotMega return; } break; - case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA1: + case (byte)MAVLink.MAV_DATA_STREAM.EXTRA1: if (packetspersecondbuild[MAVLINK_MSG_ID_ATTITUDE] < DateTime.Now.AddSeconds(-2)) break; pps = packetspersecond[MAVLINK_MSG_ID_ATTITUDE]; @@ -1053,7 +1053,7 @@ namespace ArdupilotMega return; } break; - case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA2: + case (byte)MAVLink.MAV_DATA_STREAM.EXTRA2: if (packetspersecondbuild[MAVLINK_MSG_ID_VFR_HUD] < DateTime.Now.AddSeconds(-2)) break; pps = packetspersecond[MAVLINK_MSG_ID_VFR_HUD]; @@ -1062,7 +1062,7 @@ namespace ArdupilotMega return; } break; - case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA3: + case (byte)MAVLink.MAV_DATA_STREAM.EXTRA3: if (packetspersecondbuild[MAVLINK_MSG_ID_AHRS] < DateTime.Now.AddSeconds(-2)) break; pps = packetspersecond[MAVLINK_MSG_ID_AHRS]; @@ -1071,7 +1071,7 @@ namespace ArdupilotMega return; } break; - case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_POSITION: + case (byte)MAVLink.MAV_DATA_STREAM.POSITION: // ac2 does not send rate position if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2) return; @@ -1083,7 +1083,7 @@ namespace ArdupilotMega return; } break; - case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_CONTROLLER: + case (byte)MAVLink.MAV_DATA_STREAM.RAW_CONTROLLER: if (packetspersecondbuild[MAVLINK_MSG_ID_RC_CHANNELS_SCALED] < DateTime.Now.AddSeconds(-2)) break; pps = packetspersecond[MAVLINK_MSG_ID_RC_CHANNELS_SCALED]; @@ -1092,7 +1092,7 @@ namespace ArdupilotMega return; } break; - case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_SENSORS: + case (byte)MAVLink.MAV_DATA_STREAM.RAW_SENSORS: if (packetspersecondbuild[MAVLINK_MSG_ID_RAW_IMU] < DateTime.Now.AddSeconds(-2)) break; pps = packetspersecond[MAVLINK_MSG_ID_RAW_IMU]; @@ -1101,7 +1101,7 @@ namespace ArdupilotMega return; } break; - case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RC_CHANNELS: + case (byte)MAVLink.MAV_DATA_STREAM.RC_CHANNELS: if (packetspersecondbuild[MAVLINK_MSG_ID_RC_CHANNELS_RAW] < DateTime.Now.AddSeconds(-2)) break; pps = packetspersecond[MAVLINK_MSG_ID_RC_CHANNELS_RAW]; @@ -1193,13 +1193,13 @@ namespace ArdupilotMega { if (retrys > 0) { - log.Info("getWPCount Retry " + retrys + " - giv com " + MainV2.givecomport); + log.Info("getWPCount Retry " + retrys + " - giv com " + MainV2.giveComport); generatePacket(MAVLINK_MSG_ID_MISSION_REQUEST_LIST, req); start = DateTime.Now; retrys--; continue; } - MainV2.givecomport = false; + MainV2.giveComport = false; //return (byte)int.Parse(param["WP_TOTAL"].ToString()); throw new Exception("Timeout on read - getWPCount"); } @@ -1216,7 +1216,7 @@ namespace ArdupilotMega log.Info("wpcount: " + count.count); - MainV2.givecomport = false; + MainV2.giveComport = false; return (byte)count.count; // should be ushort, but apm has limited wp count < byte } else @@ -1311,7 +1311,7 @@ namespace ArdupilotMega retrys--; continue; } - MainV2.givecomport = false; + MainV2.giveComport = false; throw new Exception("Timeout on read - getWP"); } //Console.WriteLine("getwp read " + DateTime.Now.Millisecond); @@ -1561,7 +1561,7 @@ namespace ArdupilotMega public void setWPTotal(ushort wp_total) { #if MAVLINK10 - MainV2.givecomport = true; + MainV2.giveComport = true; mavlink_mission_count_t req = new mavlink_mission_count_t(); req.target_system = sysid; @@ -1586,7 +1586,7 @@ namespace ArdupilotMega retrys--; continue; } - MainV2.givecomport = false; + MainV2.giveComport = false; throw new Exception("Timeout on read - setWPTotal"); } byte[] buffer = readPacket(); @@ -1605,7 +1605,7 @@ namespace ArdupilotMega param["WP_TOTAL"] = (float)wp_total - 1; if (param["CMD_TOTAL"] != null) param["CMD_TOTAL"] = (float)wp_total - 1; - MainV2.givecomport = false; + MainV2.giveComport = false; return; } } @@ -1813,12 +1813,12 @@ namespace ArdupilotMega if (ans.seq == (index + 1)) { log.Info("set wp doing " + index + " req " + ans.seq + " REQ 40 : " + buffer[5]); - MainV2.givecomport = false; + MainV2.giveComport = false; break; } else { - log.Info("set wp fail doing " + index + " req " + ans.seq + " ACK 47 or REQ 40 : " + buffer[5] + " seq {0} ts {1} tc {2}", req.seq, req.target_system, req.target_component); + log.InfoFormat("set wp fail doing " + index + " req " + ans.seq + " ACK 47 or REQ 40 : " + buffer[5] + " seq {0} ts {1} tc {2}", req.seq, req.target_system, req.target_component); //break; } } diff --git a/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs b/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs index 215c9c545b..d1e2fffbfb 100644 --- a/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs +++ b/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs @@ -1,1935 +1,2374 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Runtime.InteropServices; - -namespace ArdupilotMega -{ -#if MAVLINK10 - partial class MAVLink - { - public const string MAVLINK_BUILD_DATE = "Wed Apr 4 18:13:10 2012"; - public const string MAVLINK_WIRE_PROTOCOL_VERSION = "1.0"; - public const int MAVLINK_MAX_DIALECT_PAYLOAD_SIZE = 42; - - public const int MAVLINK_LITTLE_ENDIAN = 1; - public const int MAVLINK_BIG_ENDIAN = 0; - - public const byte MAVLINK_STX = 254; - - public const byte MAVLINK_ENDIAN = MAVLINK_LITTLE_ENDIAN; - - public const bool MAVLINK_ALIGNED_FIELDS = (1 == 1); - - public const byte MAVLINK_CRC_EXTRA = 1; - - public const bool MAVLINK_NEED_BYTE_SWAP = (MAVLINK_ENDIAN == MAVLINK_LITTLE_ENDIAN); - - public byte[] MAVLINK_MESSAGE_LENGTHS = new byte[] {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 0, 0, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 18, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 8, 4, 12, 15, 13, 6, 15, 14, 0, 12, 3, 8, 28, 36, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 3}; - - public byte[] MAVLINK_MESSAGE_CRCS = new byte[] {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 0, 0, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 19, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 219, 208, 188, 84, 22, 19, 21, 134, 0, 78, 68, 189, 127, 42, 21, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 247}; - - public Type[] MAVLINK_MESSAGE_INFO = new Type[] {typeof( mavlink_heartbeat_t ), typeof( mavlink_sys_status_t ), typeof( mavlink_system_time_t ), null, typeof( mavlink_ping_t ), typeof( mavlink_change_operator_control_t ), typeof( mavlink_change_operator_control_ack_t ), typeof( mavlink_auth_key_t ), null, null, null, typeof( mavlink_set_mode_t ), null, null, null, null, null, null, null, null, typeof( mavlink_param_request_read_t ), typeof( mavlink_param_request_list_t ), typeof( mavlink_param_value_t ), typeof( mavlink_param_set_t ), typeof( mavlink_gps_raw_int_t ), typeof( mavlink_gps_status_t ), typeof( mavlink_scaled_imu_t ), typeof( mavlink_raw_imu_t ), typeof( mavlink_raw_pressure_t ), typeof( mavlink_scaled_pressure_t ), typeof( mavlink_attitude_t ), typeof( mavlink_attitude_quaternion_t ), typeof( mavlink_local_position_ned_t ), typeof( mavlink_global_position_int_t ), typeof( mavlink_rc_channels_scaled_t ), typeof( mavlink_rc_channels_raw_t ), typeof( mavlink_servo_output_raw_t ), typeof( mavlink_mission_request_partial_list_t ), typeof( mavlink_mission_write_partial_list_t ), typeof( mavlink_mission_item_t ), typeof( mavlink_mission_request_t ), typeof( mavlink_mission_set_current_t ), typeof( mavlink_mission_current_t ), typeof( mavlink_mission_request_list_t ), typeof( mavlink_mission_count_t ), typeof( mavlink_mission_clear_all_t ), typeof( mavlink_mission_item_reached_t ), typeof( mavlink_mission_ack_t ), typeof( mavlink_set_gps_global_origin_t ), typeof( mavlink_gps_global_origin_t ), typeof( mavlink_set_local_position_setpoint_t ), typeof( mavlink_local_position_setpoint_t ), typeof( mavlink_global_position_setpoint_int_t ), typeof( mavlink_set_global_position_setpoint_int_t ), typeof( mavlink_safety_set_allowed_area_t ), typeof( mavlink_safety_allowed_area_t ), typeof( mavlink_set_roll_pitch_yaw_thrust_t ), typeof( mavlink_set_roll_pitch_yaw_speed_thrust_t ), typeof( mavlink_roll_pitch_yaw_thrust_setpoint_t ), typeof( mavlink_roll_pitch_yaw_speed_thrust_setpoint_t ), null, null, typeof( mavlink_nav_controller_output_t ), null, typeof( mavlink_state_correction_t ), null, typeof( mavlink_request_data_stream_t ), typeof( mavlink_data_stream_t ), null, typeof( mavlink_manual_control_t ), typeof( mavlink_rc_channels_override_t ), null, null, null, typeof( mavlink_vfr_hud_t ), null, typeof( mavlink_command_long_t ), typeof( mavlink_command_ack_t ), null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_hil_state_t ), typeof( mavlink_hil_controls_t ), typeof( mavlink_hil_rc_inputs_raw_t ), null, null, null, null, null, null, null, typeof( mavlink_optical_flow_t ), typeof( mavlink_global_vision_position_estimate_t ), typeof( mavlink_vision_position_estimate_t ), typeof( mavlink_vision_speed_estimate_t ), typeof( mavlink_vicon_position_estimate_t ), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_sensor_offsets_t ), typeof( mavlink_set_mag_offsets_t ), typeof( mavlink_meminfo_t ), typeof( mavlink_ap_adc_t ), typeof( mavlink_digicam_configure_t ), typeof( mavlink_digicam_control_t ), typeof( mavlink_mount_configure_t ), typeof( mavlink_mount_control_t ), typeof( mavlink_mount_status_t ), null, typeof( mavlink_fence_point_t ), typeof( mavlink_fence_fetch_point_t ), typeof( mavlink_fence_status_t ), typeof( mavlink_ahrs_t ), typeof( mavlink_simstate_t ), typeof( mavlink_hwstatus_t ), typeof( mavlink_radio_t ), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_memory_vect_t ), typeof( mavlink_debug_vect_t ), typeof( mavlink_named_value_float_t ), typeof( mavlink_named_value_int_t ), typeof( mavlink_statustext_t ), typeof( mavlink_debug_t ), typeof( mavlink_extended_message_t )}; - - public const byte MAVLINK_VERSION = 3; - - - /** @brief Enumeration of possible mount operation modes */ - public enum MAV_MOUNT_MODE - { - /// Load and keep safe position (Roll,Pitch,Yaw) from EEPROM and stop stabilization | - RETRACT=0, - /// Load and keep neutral position (Roll,Pitch,Yaw) from EEPROM. | - NEUTRAL=1, - /// Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization | - MAVLINK_TARGETING=2, - /// Load neutral position and start RC Roll,Pitch,Yaw control with stabilization | - RC_TARGETING=3, - /// Load neutral position and start to point to Lat,Lon,Alt | - GPS_POINT=4, - /// | - ENUM_END=5, - - }; - - /** @brief */ - public enum MAV_CMD - { - /// Navigate to MISSION. |Hold time in decimal seconds. (ignored by fixed wing, time to stay at MISSION for rotary wing)| Acceptance radius in meters (if the sphere with this radius is hit, the MISSION counts as reached)| 0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.| Desired yaw angle at MISSION (rotary wing)| Latitude| Longitude| Altitude| - NAV_WAYPOINT=16, - /// Loiter around this MISSION an unlimited amount of time |Empty| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude| - NAV_LOITER_UNLIM=17, - /// Loiter around this MISSION for X turns |Turns| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude| - NAV_LOITER_TURNS=18, - /// Loiter around this MISSION for X seconds |Seconds (decimal)| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude| - NAV_LOITER_TIME=19, - /// Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty| - NAV_RETURN_TO_LAUNCH=20, - /// Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude| - NAV_LAND=21, - /// Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude| - NAV_TAKEOFF=22, - /// Sets the region of interest (ROI) for a sensor set or the vehicle itself. This can then be used by the vehicles control system to control the vehicle attitude and the attitude of various sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| MISSION index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z| - NAV_ROI=80, - /// Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal| - NAV_PATHPLANNING=81, - /// NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty| - NAV_LAST=95, - /// Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty| - CONDITION_DELAY=112, - /// Ascend/descend at rate. Delay mission state machine until desired altitude reached. |Descent / Ascend rate (m/s)| Empty| Empty| Empty| Empty| Empty| Finish Altitude| - CONDITION_CHANGE_ALT=113, - /// Delay mission state machine until within desired distance of next NAV point. |Distance (meters)| Empty| Empty| Empty| Empty| Empty| Empty| - CONDITION_DISTANCE=114, - /// Reach a certain target angle. |target angle: [0-360], 0 is north| speed during yaw change:[deg per second]| direction: negative: counter clockwise, positive: clockwise [-1,1]| relative offset or absolute angle: [ 1,0]| Empty| Empty| Empty| - CONDITION_YAW=115, - /// NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty| - CONDITION_LAST=159, - /// Set system mode. |Mode, as defined by ENUM MAV_MODE| Empty| Empty| Empty| Empty| Empty| Empty| - DO_SET_MODE=176, - /// Jump to the desired command in the mission list. Repeat this action only the specified number of times |Sequence number| Repeat count| Empty| Empty| Empty| Empty| Empty| - DO_JUMP=177, - /// Change speed and/or throttle set points. |Speed type (0=Airspeed, 1=Ground Speed)| Speed (m/s, -1 indicates no change)| Throttle ( Percent, -1 indicates no change)| Empty| Empty| Empty| Empty| - DO_CHANGE_SPEED=178, - /// Changes the home location either to the current location or a specified location. |Use current (1=use current location, 0=use specified location)| Empty| Empty| Empty| Latitude| Longitude| Altitude| - DO_SET_HOME=179, - /// Set a system parameter. Caution! Use of this command requires knowledge of the numeric enumeration value of the parameter. |Parameter number| Parameter value| Empty| Empty| Empty| Empty| Empty| - DO_SET_PARAMETER=180, - /// Set a relay to a condition. |Relay number| Setting (1=on, 0=off, others possible depending on system hardware)| Empty| Empty| Empty| Empty| Empty| - DO_SET_RELAY=181, - /// Cycle a relay on and off for a desired number of cyles with a desired period. |Relay number| Cycle count| Cycle time (seconds, decimal)| Empty| Empty| Empty| Empty| - DO_REPEAT_RELAY=182, - /// Set a servo to a desired PWM value. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Empty| Empty| Empty| Empty| Empty| - DO_SET_SERVO=183, - /// Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Cycle count| Cycle time (seconds)| Empty| Empty| Empty| - DO_REPEAT_SERVO=184, - /// Control onboard camera system. |Camera ID (-1 for all)| Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw| Transmission mode: 0: video stream, >0: single images every n seconds (decimal)| Recording: 0: disabled, 1: enabled compressed, 2: enabled raw| Empty| Empty| Empty| - DO_CONTROL_VIDEO=200, - /// Mission command to configure an on-board camera controller system. |Modes: P, TV, AV, M, Etc| Shutter speed: Divisor number for one second| Aperture: F stop number| ISO number e.g. 80, 100, 200, Etc| Exposure type enumerator| Command Identity| Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)| - DO_DIGICAM_CONFIGURE=202, - /// Mission command to control an on-board camera controller system. |Session control e.g. show/hide lens| Zoom's absolute position| Zooming step value to offset zoom from the current position| Focus Locking, Unlocking or Re-locking| Shooting Command| Command Identity| Empty| - DO_DIGICAM_CONTROL=203, - /// Mission command to configure a camera or antenna mount |Mount operation mode (see MAV_MOUNT_MODE enum)| stabilize roll? (1 = yes, 0 = no)| stabilize pitch? (1 = yes, 0 = no)| stabilize yaw? (1 = yes, 0 = no)| Empty| Empty| Empty| - DO_MOUNT_CONFIGURE=204, - /// Mission command to control a camera or antenna mount |pitch(deg*100) or lat, depending on mount mode.| roll(deg*100) or lon depending on mount mode| yaw(deg*100) or alt (in cm) depending on mount mode| Empty| Empty| Empty| Empty| - DO_MOUNT_CONTROL=205, - /// NOP - This command is only used to mark the upper limit of the DO commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty| - DO_LAST=240, - /// Trigger calibration. This command will be only accepted if in pre-flight mode. |Gyro calibration: 0: no, 1: yes| Magnetometer calibration: 0: no, 1: yes| Ground pressure: 0: no, 1: yes| Radio calibration: 0: no, 1: yes| Empty| Empty| Empty| - PREFLIGHT_CALIBRATION=241, - /// Set sensor offsets. This command will be only accepted if in pre-flight mode. |Sensor to adjust the offsets for: 0: gyros, 1: accelerometer, 2: magnetometer, 3: barometer, 4: optical flow| X axis offset (or generic dimension 1), in the sensor's raw units| Y axis offset (or generic dimension 2), in the sensor's raw units| Z axis offset (or generic dimension 3), in the sensor's raw units| Generic dimension 4, in the sensor's raw units| Generic dimension 5, in the sensor's raw units| Generic dimension 6, in the sensor's raw units| - PREFLIGHT_SET_SENSOR_OFFSETS=242, - /// Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode. |Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Reserved| Reserved| Empty| Empty| Empty| - PREFLIGHT_STORAGE=245, - /// Request the reboot or shutdown of system components. |0: Do nothing for autopilot, 1: Reboot autopilot, 2: Shutdown autopilot.| 0: Do nothing for onboard computer, 1: Reboot onboard computer, 2: Shutdown onboard computer.| Reserved| Reserved| Empty| Empty| Empty| - PREFLIGHT_REBOOT_SHUTDOWN=246, - /// Hold / continue the current action |MAV_GOTO_DO_HOLD: hold MAV_GOTO_DO_CONTINUE: continue with next item in mission plan| MAV_GOTO_HOLD_AT_CURRENT_POSITION: Hold at current position MAV_GOTO_HOLD_AT_SPECIFIED_POSITION: hold at specified position| MAV_FRAME coordinate frame of hold point| Desired yaw angle in degrees| Latitude / X position| Longitude / Y position| Altitude / Z position| - OVERRIDE_GOTO=252, - /// start running a mission |first_item: the first mission item to run| last_item: the last mission item to run (after this item is run, the mission ends)| - MISSION_START=300, - /// | - ENUM_END=301, - - }; - - /** @brief */ - public enum FENCE_ACTION - { - /// Disable fenced mode | - NONE=0, - /// Switched to guided mode to return point (fence point 0) | - GUIDED=1, - /// | - ENUM_END=2, - - }; - - /** @brief */ - public enum FENCE_BREACH - { - /// No last fence breach | - NONE=0, - /// Breached minimum altitude | - MINALT=1, - /// Breached minimum altitude | - MAXALT=2, - /// Breached fence boundary | - BOUNDARY=3, - /// | - ENUM_END=4, - - }; - - - - public const byte MAVLINK_MSG_ID_SENSOR_OFFSETS = 150; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=42)] - public struct mavlink_sensor_offsets_t - { - /// magnetic declination (radians) - public Single mag_declination; - /// raw pressure from barometer - public Int32 raw_press; - /// raw temperature from barometer - public Int32 raw_temp; - /// gyro X calibration - public Single gyro_cal_x; - /// gyro Y calibration - public Single gyro_cal_y; - /// gyro Z calibration - public Single gyro_cal_z; - /// accel X calibration - public Single accel_cal_x; - /// accel Y calibration - public Single accel_cal_y; - /// accel Z calibration - public Single accel_cal_z; - /// magnetometer X offset - public Int16 mag_ofs_x; - /// magnetometer Y offset - public Int16 mag_ofs_y; - /// magnetometer Z offset - public Int16 mag_ofs_z; - - }; - - - public const byte MAVLINK_MSG_ID_SET_MAG_OFFSETS = 151; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)] - public struct mavlink_set_mag_offsets_t - { - /// magnetometer X offset - public Int16 mag_ofs_x; - /// magnetometer Y offset - public Int16 mag_ofs_y; - /// magnetometer Z offset - public Int16 mag_ofs_z; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_MEMINFO = 152; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] - public struct mavlink_meminfo_t - { - /// heap top - public UInt16 brkval; - /// free memory - public UInt16 freemem; - - }; - - - public const byte MAVLINK_MSG_ID_AP_ADC = 153; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)] - public struct mavlink_ap_adc_t - { - /// ADC output 1 - public UInt16 adc1; - /// ADC output 2 - public UInt16 adc2; - /// ADC output 3 - public UInt16 adc3; - /// ADC output 4 - public UInt16 adc4; - /// ADC output 5 - public UInt16 adc5; - /// ADC output 6 - public UInt16 adc6; - - }; - - - public const byte MAVLINK_MSG_ID_DIGICAM_CONFIGURE = 154; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)] - public struct mavlink_digicam_configure_t - { - /// Correspondent value to given extra_param - public Single extra_value; - /// Divisor number //e.g. 1000 means 1/1000 (0 means ignore) - public UInt16 shutter_speed; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// Mode enumeration from 1 to N //P, TV, AV, M, Etc (0 means ignore) - public byte mode; - /// F stop number x 10 //e.g. 28 means 2.8 (0 means ignore) - public byte aperture; - /// ISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore) - public byte iso; - /// Exposure type enumeration from 1 to N (0 means ignore) - public byte exposure_type; - /// Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once - public byte command_id; - /// Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off) - public byte engine_cut_off; - /// Extra parameters enumeration (0 means ignore) - public byte extra_param; - - }; - - - public const byte MAVLINK_MSG_ID_DIGICAM_CONTROL = 155; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=13)] - public struct mavlink_digicam_control_t - { - /// Correspondent value to given extra_param - public Single extra_value; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// 0: stop, 1: start or keep it up //Session control e.g. show/hide lens - public byte session; - /// 1 to N //Zoom's absolute position (0 means ignore) - public byte zoom_pos; - /// -100 to 100 //Zooming step value to offset zoom from the current position - public byte zoom_step; - /// 0: unlock focus or keep unlocked, 1: lock focus or keep locked, 3: re-lock focus - public byte focus_lock; - /// 0: ignore, 1: shot or start filming - public byte shot; - /// Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once - public byte command_id; - /// Extra parameters enumeration (0 means ignore) - public byte extra_param; - - }; - - - public const byte MAVLINK_MSG_ID_MOUNT_CONFIGURE = 156; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] - public struct mavlink_mount_configure_t - { - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// mount operating mode (see MAV_MOUNT_MODE enum) - public byte mount_mode; - /// (1 = yes, 0 = no) - public byte stab_roll; - /// (1 = yes, 0 = no) - public byte stab_pitch; - /// (1 = yes, 0 = no) - public byte stab_yaw; - - }; - - - public const byte MAVLINK_MSG_ID_MOUNT_CONTROL = 157; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)] - public struct mavlink_mount_control_t - { - /// pitch(deg*100) or lat, depending on mount mode - public Int32 input_a; - /// roll(deg*100) or lon depending on mount mode - public Int32 input_b; - /// yaw(deg*100) or alt (in cm) depending on mount mode - public Int32 input_c; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// if "1" it will save current trimmed position on EEPROM (just valid for NEUTRAL and LANDING) - public byte save_position; - - }; - - - public const byte MAVLINK_MSG_ID_MOUNT_STATUS = 158; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)] - public struct mavlink_mount_status_t - { - /// pitch(deg*100) or lat, depending on mount mode - public Int32 pointing_a; - /// roll(deg*100) or lon depending on mount mode - public Int32 pointing_b; - /// yaw(deg*100) or alt (in cm) depending on mount mode - public Int32 pointing_c; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_FENCE_POINT = 160; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)] - public struct mavlink_fence_point_t - { - /// Latitude of point - public Single lat; - /// Longitude of point - public Single lng; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// point index (first point is 1, 0 is for return point) - public byte idx; - /// total number of points (for sanity checking) - public byte count; - - }; - - - public const byte MAVLINK_MSG_ID_FENCE_FETCH_POINT = 161; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] - public struct mavlink_fence_fetch_point_t - { - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// point index (first point is 1, 0 is for return point) - public byte idx; - - }; - - - public const byte MAVLINK_MSG_ID_FENCE_STATUS = 162; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)] - public struct mavlink_fence_status_t - { - /// time of last breach in milliseconds since boot - public UInt32 breach_time; - /// number of fence breaches - public UInt16 breach_count; - /// 0 if currently inside fence, 1 if outside - public byte breach_status; - /// last breach type (see FENCE_BREACH_* enum) - public byte breach_type; - - }; - - - public const byte MAVLINK_MSG_ID_AHRS = 163; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] - public struct mavlink_ahrs_t - { - /// X gyro drift estimate rad/s - public Single omegaIx; - /// Y gyro drift estimate rad/s - public Single omegaIy; - /// Z gyro drift estimate rad/s - public Single omegaIz; - /// average accel_weight - public Single accel_weight; - /// average renormalisation value - public Single renorm_val; - /// average error_roll_pitch value - public Single error_rp; - /// average error_yaw value - public Single error_yaw; - - }; - - - public const byte MAVLINK_MSG_ID_SIMSTATE = 164; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)] - public struct mavlink_simstate_t - { - /// Roll angle (rad) - public Single roll; - /// Pitch angle (rad) - public Single pitch; - /// Yaw angle (rad) - public Single yaw; - /// X acceleration m/s/s - public Single xacc; - /// Y acceleration m/s/s - public Single yacc; - /// Z acceleration m/s/s - public Single zacc; - /// Angular speed around X axis rad/s - public Single xgyro; - /// Angular speed around Y axis rad/s - public Single ygyro; - /// Angular speed around Z axis rad/s - public Single zgyro; - - }; - - - public const byte MAVLINK_MSG_ID_HWSTATUS = 165; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] - public struct mavlink_hwstatus_t - { - /// board voltage (mV) - public UInt16 Vcc; - /// I2C error count - public byte I2Cerr; - - }; - - - public const byte MAVLINK_MSG_ID_RADIO = 166; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)] - public struct mavlink_radio_t - { - /// receive errors - public UInt16 rxerrors; - /// serial errors - public UInt16 serrors; - /// count of error corrected packets - public UInt16 fixed; - /// local signal strength - public byte rssi; - /// remote signal strength - public byte remrssi; - /// how full the tx buffer is as a percentage - public byte txbuf; - - }; - - - public const byte MAVLINK_MSG_ID_HEARTBEAT = 0; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)] - public struct mavlink_heartbeat_t - { - /// Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific. - public UInt32 custom_mode; - /// Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM) - public byte type; - /// Autopilot type / class. defined in MAV_CLASS ENUM - public byte autopilot; - /// System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h - public byte base_mode; - /// System status flag, see MAV_STATUS ENUM - public byte system_status; - /// MAVLink version - public byte mavlink_version; - - }; - - - public const byte MAVLINK_MSG_ID_SYS_STATUS = 1; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=31)] - public struct mavlink_sys_status_t - { - /// Bitmask showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control - public UInt32 onboard_control_sensors_present; - /// Bitmask showing which onboard controllers and sensors are enabled: Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control - public UInt32 onboard_control_sensors_enabled; - /// Bitmask showing which onboard controllers and sensors are operational or have an error: Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control - public UInt32 onboard_control_sensors_health; - /// Maximum usage in percent of the mainloop time, (0%: 0, 100%: 1000) should be always below 1000 - public UInt16 load; - /// Battery voltage, in millivolts (1 = 1 millivolt) - public UInt16 voltage_battery; - /// Battery current, in 10*milliamperes (1 = 10 milliampere), -1: autopilot does not measure the current - public Int16 current_battery; - /// Communication drops in percent, (0%: 0, 100%: 10'000), (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV) - public UInt16 drop_rate_comm; - /// Communication errors (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV) - public UInt16 errors_comm; - /// Autopilot-specific errors - public UInt16 errors_count1; - /// Autopilot-specific errors - public UInt16 errors_count2; - /// Autopilot-specific errors - public UInt16 errors_count3; - /// Autopilot-specific errors - public UInt16 errors_count4; - /// Remaining battery energy: (0%: 0, 100%: 100), -1: autopilot estimate the remaining battery - public byte battery_remaining; - - }; - - - public const byte MAVLINK_MSG_ID_SYSTEM_TIME = 2; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)] - public struct mavlink_system_time_t - { - /// Timestamp of the master clock in microseconds since UNIX epoch. - public UInt64 time_unix_usec; - /// Timestamp of the component clock since boot time in milliseconds. - public UInt32 time_boot_ms; - - }; - - - public const byte MAVLINK_MSG_ID_PING = 4; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)] - public struct mavlink_ping_t - { - /// Unix timestamp in microseconds - public UInt64 time_usec; - /// PING sequence - public UInt32 seq; - /// 0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system - public byte target_system; - /// 0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL = 5; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] - public struct mavlink_change_operator_control_t - { - /// System the GCS requests control for - public byte target_system; - /// 0: request control of this MAV, 1: Release control of this MAV - public byte control_request; - /// 0: key as plaintext, 1-255: future, different hashing/encryption variants. The GCS should in general use the safest mode possible initially and then gradually move down the encryption level if it gets a NACK message indicating an encryption mismatch. - public byte version; - /// Password / Key, depending on version plaintext or encrypted. 25 or less characters, NULL terminated. The characters may involve A-Z, a-z, 0-9, and "!?,.-" - [MarshalAs(UnmanagedType.ByValArray,SizeConst=25)] - public string passkey; - - }; - - - public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK = 6; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] - public struct mavlink_change_operator_control_ack_t - { - /// ID of the GCS this message - public byte gcs_system_id; - /// 0: request control of this MAV, 1: Release control of this MAV - public byte control_request; - /// 0: ACK, 1: NACK: Wrong passkey, 2: NACK: Unsupported passkey encryption method, 3: NACK: Already under control - public byte ack; - - }; - - - public const byte MAVLINK_MSG_ID_AUTH_KEY = 7; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] - public struct mavlink_auth_key_t - { - /// key - [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] - public string key; - - }; - - - public const byte MAVLINK_MSG_ID_SET_MODE = 11; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] - public struct mavlink_set_mode_t - { - /// The new autopilot-specific mode. This field can be ignored by an autopilot. - public UInt32 custom_mode; - /// The system setting the mode - public byte target_system; - /// The new base mode - public byte base_mode; - - }; - - - public const byte MAVLINK_MSG_ID_PARAM_REQUEST_READ = 20; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] - public struct mavlink_param_request_read_t - { - /// Parameter index. Send -1 to use the param ID field as identifier - public Int16 param_index; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// Onboard parameter id - [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] - public string param_id; - - }; - - - public const byte MAVLINK_MSG_ID_PARAM_REQUEST_LIST = 21; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] - public struct mavlink_param_request_list_t - { - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_PARAM_VALUE = 22; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=25)] - public struct mavlink_param_value_t - { - /// Onboard parameter value - public Single param_value; - /// Total number of onboard parameters - public UInt16 param_count; - /// Index of this onboard parameter - public UInt16 param_index; - /// Onboard parameter id - [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] - public string param_id; - /// Onboard parameter type: see MAV_VAR enum - public byte param_type; - - }; - - - public const byte MAVLINK_MSG_ID_PARAM_SET = 23; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=23)] - public struct mavlink_param_set_t - { - /// Onboard parameter value - public Single param_value; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// Onboard parameter id - [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] - public string param_id; - /// Onboard parameter type: see MAV_VAR enum - public byte param_type; - - }; - - - public const byte MAVLINK_MSG_ID_GPS_RAW_INT = 24; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=30)] - public struct mavlink_gps_raw_int_t - { - /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) - public UInt64 time_usec; - /// Latitude in 1E7 degrees - public Int32 lat; - /// Longitude in 1E7 degrees - public Int32 lon; - /// Altitude in 1E3 meters (millimeters) above MSL - public Int32 alt; - /// GPS HDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535 - public UInt16 eph; - /// GPS VDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535 - public UInt16 epv; - /// GPS ground speed (m/s * 100). If unknown, set to: 65535 - public UInt16 vel; - /// Course over ground (NOT heading, but direction of movement) in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535 - public UInt16 cog; - /// 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. - public byte fix_type; - /// Number of satellites visible. If unknown, set to 255 - public byte satellites_visible; - - }; - - - public const byte MAVLINK_MSG_ID_GPS_STATUS = 25; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=101)] - public struct mavlink_gps_status_t - { - /// Number of satellites visible - public byte satellites_visible; - /// Global satellite ID - [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] - public byte[] satellite_prn; - /// 0: Satellite not used, 1: used for localization - [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] - public byte[] satellite_used; - /// Elevation (0: right on top of receiver, 90: on the horizon) of satellite - [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] - public byte[] satellite_elevation; - /// Direction of satellite, 0: 0 deg, 255: 360 deg. - [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] - public byte[] satellite_azimuth; - /// Signal to noise ratio of satellite - [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] - public byte[] satellite_snr; - - }; - - - public const byte MAVLINK_MSG_ID_SCALED_IMU = 26; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=22)] - public struct mavlink_scaled_imu_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// X acceleration (mg) - public Int16 xacc; - /// Y acceleration (mg) - public Int16 yacc; - /// Z acceleration (mg) - public Int16 zacc; - /// Angular speed around X axis (millirad /sec) - public Int16 xgyro; - /// Angular speed around Y axis (millirad /sec) - public Int16 ygyro; - /// Angular speed around Z axis (millirad /sec) - public Int16 zgyro; - /// X Magnetic field (milli tesla) - public Int16 xmag; - /// Y Magnetic field (milli tesla) - public Int16 ymag; - /// Z Magnetic field (milli tesla) - public Int16 zmag; - - }; - - - public const byte MAVLINK_MSG_ID_RAW_IMU = 27; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)] - public struct mavlink_raw_imu_t - { - /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) - public UInt64 time_usec; - /// X acceleration (raw) - public Int16 xacc; - /// Y acceleration (raw) - public Int16 yacc; - /// Z acceleration (raw) - public Int16 zacc; - /// Angular speed around X axis (raw) - public Int16 xgyro; - /// Angular speed around Y axis (raw) - public Int16 ygyro; - /// Angular speed around Z axis (raw) - public Int16 zgyro; - /// X Magnetic field (raw) - public Int16 xmag; - /// Y Magnetic field (raw) - public Int16 ymag; - /// Z Magnetic field (raw) - public Int16 zmag; - - }; - - - public const byte MAVLINK_MSG_ID_RAW_PRESSURE = 28; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=16)] - public struct mavlink_raw_pressure_t - { - /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) - public UInt64 time_usec; - /// Absolute pressure (raw) - public Int16 press_abs; - /// Differential pressure 1 (raw) - public Int16 press_diff1; - /// Differential pressure 2 (raw) - public Int16 press_diff2; - /// Raw Temperature measurement (raw) - public Int16 temperature; - - }; - - - public const byte MAVLINK_MSG_ID_SCALED_PRESSURE = 29; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)] - public struct mavlink_scaled_pressure_t - { - /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) - public UInt32 time_boot_ms; - /// Absolute pressure (hectopascal) - public Single press_abs; - /// Differential pressure 1 (hectopascal) - public Single press_diff; - /// Temperature measurement (0.01 degrees celsius) - public Int16 temperature; - - }; - - - public const byte MAVLINK_MSG_ID_ATTITUDE = 30; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] - public struct mavlink_attitude_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// Roll angle (rad) - public Single roll; - /// Pitch angle (rad) - public Single pitch; - /// Yaw angle (rad) - public Single yaw; - /// Roll angular speed (rad/s) - public Single rollspeed; - /// Pitch angular speed (rad/s) - public Single pitchspeed; - /// Yaw angular speed (rad/s) - public Single yawspeed; - - }; - - - public const byte MAVLINK_MSG_ID_ATTITUDE_QUATERNION = 31; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] - public struct mavlink_attitude_quaternion_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// Quaternion component 1 - public Single q1; - /// Quaternion component 2 - public Single q2; - /// Quaternion component 3 - public Single q3; - /// Quaternion component 4 - public Single q4; - /// Roll angular speed (rad/s) - public Single rollspeed; - /// Pitch angular speed (rad/s) - public Single pitchspeed; - /// Yaw angular speed (rad/s) - public Single yawspeed; - - }; - - - public const byte MAVLINK_MSG_ID_LOCAL_POSITION_NED = 32; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] - public struct mavlink_local_position_ned_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// X Position - public Single x; - /// Y Position - public Single y; - /// Z Position - public Single z; - /// X Speed - public Single vx; - /// Y Speed - public Single vy; - /// Z Speed - public Single vz; - - }; - - - public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_INT = 33; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] - public struct mavlink_global_position_int_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// Latitude, expressed as * 1E7 - public Int32 lat; - /// Longitude, expressed as * 1E7 - public Int32 lon; - /// Altitude in meters, expressed as * 1000 (millimeters), above MSL - public Int32 alt; - /// Altitude above ground in meters, expressed as * 1000 (millimeters) - public Int32 relative_alt; - /// Ground X Speed (Latitude), expressed as m/s * 100 - public Int16 vx; - /// Ground Y Speed (Longitude), expressed as m/s * 100 - public Int16 vy; - /// Ground Z Speed (Altitude), expressed as m/s * 100 - public Int16 vz; - /// Compass heading in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535 - public UInt16 hdg; - - }; - - - public const byte MAVLINK_MSG_ID_RC_CHANNELS_SCALED = 34; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=22)] - public struct mavlink_rc_channels_scaled_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 - public Int16 chan1_scaled; - /// RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 - public Int16 chan2_scaled; - /// RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 - public Int16 chan3_scaled; - /// RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 - public Int16 chan4_scaled; - /// RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 - public Int16 chan5_scaled; - /// RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 - public Int16 chan6_scaled; - /// RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 - public Int16 chan7_scaled; - /// RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 - public Int16 chan8_scaled; - /// Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos. - public byte port; - /// Receive signal strength indicator, 0: 0%, 255: 100% - public byte rssi; - - }; - - - public const byte MAVLINK_MSG_ID_RC_CHANNELS_RAW = 35; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=22)] - public struct mavlink_rc_channels_raw_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// RC channel 1 value, in microseconds - public UInt16 chan1_raw; - /// RC channel 2 value, in microseconds - public UInt16 chan2_raw; - /// RC channel 3 value, in microseconds - public UInt16 chan3_raw; - /// RC channel 4 value, in microseconds - public UInt16 chan4_raw; - /// RC channel 5 value, in microseconds - public UInt16 chan5_raw; - /// RC channel 6 value, in microseconds - public UInt16 chan6_raw; - /// RC channel 7 value, in microseconds - public UInt16 chan7_raw; - /// RC channel 8 value, in microseconds - public UInt16 chan8_raw; - /// Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos. - public byte port; - /// Receive signal strength indicator, 0: 0%, 255: 100% - public byte rssi; - - }; - - - public const byte MAVLINK_MSG_ID_SERVO_OUTPUT_RAW = 36; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=21)] - public struct mavlink_servo_output_raw_t - { - /// Timestamp (since UNIX epoch or microseconds since system boot) - public UInt32 time_usec; - /// Servo output 1 value, in microseconds - public UInt16 servo1_raw; - /// Servo output 2 value, in microseconds - public UInt16 servo2_raw; - /// Servo output 3 value, in microseconds - public UInt16 servo3_raw; - /// Servo output 4 value, in microseconds - public UInt16 servo4_raw; - /// Servo output 5 value, in microseconds - public UInt16 servo5_raw; - /// Servo output 6 value, in microseconds - public UInt16 servo6_raw; - /// Servo output 7 value, in microseconds - public UInt16 servo7_raw; - /// Servo output 8 value, in microseconds - public UInt16 servo8_raw; - /// Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos. - public byte port; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST = 37; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] - public struct mavlink_mission_request_partial_list_t - { - /// Start index, 0 by default - public Int16 start_index; - /// End index, -1 by default (-1: send list to end). Else a valid index of the list - public Int16 end_index; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST = 38; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] - public struct mavlink_mission_write_partial_list_t - { - /// Start index, 0 by default and smaller / equal to the largest index of the current onboard list. - public Int16 start_index; - /// End index, equal or greater than start index. - public Int16 end_index; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_ITEM = 39; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=37)] - public struct mavlink_mission_item_t - { - /// PARAM1 / For NAV command MISSIONs: Radius in which the MISSION is accepted as reached, in meters - public Single param1; - /// PARAM2 / For NAV command MISSIONs: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds - public Single param2; - /// PARAM3 / For LOITER command MISSIONs: Orbit to circle around the MISSION, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise. - public Single param3; - /// PARAM4 / For NAV and LOITER command MISSIONs: Yaw orientation in degrees, [0..360] 0 = NORTH - public Single param4; - /// PARAM5 / local: x position, global: latitude - public Single x; - /// PARAM6 / y position: global: longitude - public Single y; - /// PARAM7 / z position: global: altitude - public Single z; - /// Sequence - public UInt16 seq; - /// The scheduled action for the MISSION. see MAV_CMD in common.xml MAVLink specs - public UInt16 command; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// The coordinate system of the MISSION. see MAV_FRAME in mavlink_types.h - public byte frame; - /// false:0, true:1 - public byte current; - /// autocontinue to next wp - public byte autocontinue; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_REQUEST = 40; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] - public struct mavlink_mission_request_t - { - /// Sequence - public UInt16 seq; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_SET_CURRENT = 41; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] - public struct mavlink_mission_set_current_t - { - /// Sequence - public UInt16 seq; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_CURRENT = 42; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] - public struct mavlink_mission_current_t - { - /// Sequence - public UInt16 seq; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_REQUEST_LIST = 43; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] - public struct mavlink_mission_request_list_t - { - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_COUNT = 44; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] - public struct mavlink_mission_count_t - { - /// Number of mission items in the sequence - public UInt16 count; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_CLEAR_ALL = 45; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] - public struct mavlink_mission_clear_all_t - { - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_ITEM_REACHED = 46; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] - public struct mavlink_mission_item_reached_t - { - /// Sequence - public UInt16 seq; - - }; - - - public const byte MAVLINK_MSG_ID_MISSION_ACK = 47; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] - public struct mavlink_mission_ack_t - { - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// See MAV_MISSION_RESULT enum - public byte type; - - }; - - - public const byte MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN = 48; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=13)] - public struct mavlink_set_gps_global_origin_t - { - /// global position * 1E7 - public Int32 latitude; - /// global position * 1E7 - public Int32 longitude; - /// global position * 1000 - public Int32 altitude; - /// System ID - public byte target_system; - - }; - - - public const byte MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN = 49; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)] - public struct mavlink_gps_global_origin_t - { - /// Latitude (WGS84), expressed as * 1E7 - public Int32 latitude; - /// Longitude (WGS84), expressed as * 1E7 - public Int32 longitude; - /// Altitude(WGS84), expressed as * 1000 - public Int32 altitude; - - }; - - - public const byte MAVLINK_MSG_ID_SET_LOCAL_POSITION_SETPOINT = 50; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=19)] - public struct mavlink_set_local_position_setpoint_t - { - /// x position - public Single x; - /// y position - public Single y; - /// z position - public Single z; - /// Desired yaw angle - public Single yaw; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU - public byte coordinate_frame; - - }; - - - public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT = 51; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=17)] - public struct mavlink_local_position_setpoint_t - { - /// x position - public Single x; - /// y position - public Single y; - /// z position - public Single z; - /// Desired yaw angle - public Single yaw; - /// Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU - public byte coordinate_frame; - - }; - - - public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_SETPOINT_INT = 52; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)] - public struct mavlink_global_position_setpoint_int_t - { - /// WGS84 Latitude position in degrees * 1E7 - public Int32 latitude; - /// WGS84 Longitude position in degrees * 1E7 - public Int32 longitude; - /// WGS84 Altitude in meters * 1000 (positive for up) - public Int32 altitude; - /// Desired yaw angle in degrees * 100 - public Int16 yaw; - /// Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT - public byte coordinate_frame; - - }; - - - public const byte MAVLINK_MSG_ID_SET_GLOBAL_POSITION_SETPOINT_INT = 53; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)] - public struct mavlink_set_global_position_setpoint_int_t - { - /// WGS84 Latitude position in degrees * 1E7 - public Int32 latitude; - /// WGS84 Longitude position in degrees * 1E7 - public Int32 longitude; - /// WGS84 Altitude in meters * 1000 (positive for up) - public Int32 altitude; - /// Desired yaw angle in degrees * 100 - public Int16 yaw; - /// Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT - public byte coordinate_frame; - - }; - - - public const byte MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA = 54; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=27)] - public struct mavlink_safety_set_allowed_area_t - { - /// x position 1 / Latitude 1 - public Single p1x; - /// y position 1 / Longitude 1 - public Single p1y; - /// z position 1 / Altitude 1 - public Single p1z; - /// x position 2 / Latitude 2 - public Single p2x; - /// y position 2 / Longitude 2 - public Single p2y; - /// z position 2 / Altitude 2 - public Single p2z; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - /// Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. - public byte frame; - - }; - - - public const byte MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA = 55; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=25)] - public struct mavlink_safety_allowed_area_t - { - /// x position 1 / Latitude 1 - public Single p1x; - /// y position 1 / Longitude 1 - public Single p1y; - /// z position 1 / Altitude 1 - public Single p1z; - /// x position 2 / Latitude 2 - public Single p2x; - /// y position 2 / Longitude 2 - public Single p2y; - /// z position 2 / Altitude 2 - public Single p2z; - /// Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. - public byte frame; - - }; - - - public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST = 56; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] - public struct mavlink_set_roll_pitch_yaw_thrust_t - { - /// Desired roll angle in radians - public Single roll; - /// Desired pitch angle in radians - public Single pitch; - /// Desired yaw angle in radians - public Single yaw; - /// Collective thrust, normalized to 0 .. 1 - public Single thrust; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST = 57; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] - public struct mavlink_set_roll_pitch_yaw_speed_thrust_t - { - /// Desired roll angular speed in rad/s - public Single roll_speed; - /// Desired pitch angular speed in rad/s - public Single pitch_speed; - /// Desired yaw angular speed in rad/s - public Single yaw_speed; - /// Collective thrust, normalized to 0 .. 1 - public Single thrust; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT = 58; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] - public struct mavlink_roll_pitch_yaw_thrust_setpoint_t - { - /// Timestamp in milliseconds since system boot - public UInt32 time_boot_ms; - /// Desired roll angle in radians - public Single roll; - /// Desired pitch angle in radians - public Single pitch; - /// Desired yaw angle in radians - public Single yaw; - /// Collective thrust, normalized to 0 .. 1 - public Single thrust; - - }; - - - public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT = 59; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] - public struct mavlink_roll_pitch_yaw_speed_thrust_setpoint_t - { - /// Timestamp in milliseconds since system boot - public UInt32 time_boot_ms; - /// Desired roll angular speed in rad/s - public Single roll_speed; - /// Desired pitch angular speed in rad/s - public Single pitch_speed; - /// Desired yaw angular speed in rad/s - public Single yaw_speed; - /// Collective thrust, normalized to 0 .. 1 - public Single thrust; - - }; - - - public const byte MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT = 62; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)] - public struct mavlink_nav_controller_output_t - { - /// Current desired roll in degrees - public Single nav_roll; - /// Current desired pitch in degrees - public Single nav_pitch; - /// Current altitude error in meters - public Single alt_error; - /// Current airspeed error in meters/second - public Single aspd_error; - /// Current crosstrack error on x-y plane in meters - public Single xtrack_error; - /// Current desired heading in degrees - public Int16 nav_bearing; - /// Bearing to current MISSION/target in degrees - public Int16 target_bearing; - /// Distance to active MISSION in meters - public UInt16 wp_dist; - - }; - - - public const byte MAVLINK_MSG_ID_STATE_CORRECTION = 64; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)] - public struct mavlink_state_correction_t - { - /// x position error - public Single xErr; - /// y position error - public Single yErr; - /// z position error - public Single zErr; - /// roll error (radians) - public Single rollErr; - /// pitch error (radians) - public Single pitchErr; - /// yaw error (radians) - public Single yawErr; - /// x velocity - public Single vxErr; - /// y velocity - public Single vyErr; - /// z velocity - public Single vzErr; - - }; - - - public const byte MAVLINK_MSG_ID_REQUEST_DATA_STREAM = 66; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] - public struct mavlink_request_data_stream_t - { - /// The requested interval between two messages of this type - public UInt16 req_message_rate; - /// The target requested to send the message stream. - public byte target_system; - /// The target requested to send the message stream. - public byte target_component; - /// The ID of the requested data stream - public byte req_stream_id; - /// 1 to start sending, 0 to stop sending. - public byte start_stop; - - }; - - - public const byte MAVLINK_MSG_ID_DATA_STREAM = 67; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] - public struct mavlink_data_stream_t - { - /// The requested interval between two messages of this type - public UInt16 message_rate; - /// The ID of the requested data stream - public byte stream_id; - /// 1 stream is enabled, 0 stream is stopped. - public byte on_off; - - }; - - - public const byte MAVLINK_MSG_ID_MANUAL_CONTROL = 69; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=21)] - public struct mavlink_manual_control_t - { - /// roll - public Single roll; - /// pitch - public Single pitch; - /// yaw - public Single yaw; - /// thrust - public Single thrust; - /// The system to be controlled - public byte target; - /// roll control enabled auto:0, manual:1 - public byte roll_manual; - /// pitch auto:0, manual:1 - public byte pitch_manual; - /// yaw auto:0, manual:1 - public byte yaw_manual; - /// thrust auto:0, manual:1 - public byte thrust_manual; - - }; - - - public const byte MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE = 70; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] - public struct mavlink_rc_channels_override_t - { - /// RC channel 1 value, in microseconds - public UInt16 chan1_raw; - /// RC channel 2 value, in microseconds - public UInt16 chan2_raw; - /// RC channel 3 value, in microseconds - public UInt16 chan3_raw; - /// RC channel 4 value, in microseconds - public UInt16 chan4_raw; - /// RC channel 5 value, in microseconds - public UInt16 chan5_raw; - /// RC channel 6 value, in microseconds - public UInt16 chan6_raw; - /// RC channel 7 value, in microseconds - public UInt16 chan7_raw; - /// RC channel 8 value, in microseconds - public UInt16 chan8_raw; - /// System ID - public byte target_system; - /// Component ID - public byte target_component; - - }; - - - public const byte MAVLINK_MSG_ID_VFR_HUD = 74; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] - public struct mavlink_vfr_hud_t - { - /// Current airspeed in m/s - public Single airspeed; - /// Current ground speed in m/s - public Single groundspeed; - /// Current altitude (MSL), in meters - public Single alt; - /// Current climb rate in meters/second - public Single climb; - /// Current heading in degrees, in compass units (0..360, 0=north) - public Int16 heading; - /// Current throttle setting in integer percent, 0 to 100 - public UInt16 throttle; - - }; - - - public const byte MAVLINK_MSG_ID_COMMAND_LONG = 76; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=33)] - public struct mavlink_command_long_t - { - /// Parameter 1, as defined by MAV_CMD enum. - public Single param1; - /// Parameter 2, as defined by MAV_CMD enum. - public Single param2; - /// Parameter 3, as defined by MAV_CMD enum. - public Single param3; - /// Parameter 4, as defined by MAV_CMD enum. - public Single param4; - /// Parameter 5, as defined by MAV_CMD enum. - public Single param5; - /// Parameter 6, as defined by MAV_CMD enum. - public Single param6; - /// Parameter 7, as defined by MAV_CMD enum. - public Single param7; - /// Command ID, as defined by MAV_CMD enum. - public UInt16 command; - /// System which should execute the command - public byte target_system; - /// Component which should execute the command, 0 for all components - public byte target_component; - /// 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command) - public byte confirmation; - - }; - - - public const byte MAVLINK_MSG_ID_COMMAND_ACK = 77; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] - public struct mavlink_command_ack_t - { - /// Command ID, as defined by MAV_CMD enum. - public UInt16 command; - /// See MAV_RESULT enum - public byte result; - - }; - - - public const byte MAVLINK_MSG_ID_HIL_STATE = 90; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=56)] - public struct mavlink_hil_state_t - { - /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) - public UInt64 time_usec; - /// Roll angle (rad) - public Single roll; - /// Pitch angle (rad) - public Single pitch; - /// Yaw angle (rad) - public Single yaw; - /// Roll angular speed (rad/s) - public Single rollspeed; - /// Pitch angular speed (rad/s) - public Single pitchspeed; - /// Yaw angular speed (rad/s) - public Single yawspeed; - /// Latitude, expressed as * 1E7 - public Int32 lat; - /// Longitude, expressed as * 1E7 - public Int32 lon; - /// Altitude in meters, expressed as * 1000 (millimeters) - public Int32 alt; - /// Ground X Speed (Latitude), expressed as m/s * 100 - public Int16 vx; - /// Ground Y Speed (Longitude), expressed as m/s * 100 - public Int16 vy; - /// Ground Z Speed (Altitude), expressed as m/s * 100 - public Int16 vz; - /// X acceleration (mg) - public Int16 xacc; - /// Y acceleration (mg) - public Int16 yacc; - /// Z acceleration (mg) - public Int16 zacc; - - }; - - - public const byte MAVLINK_MSG_ID_HIL_CONTROLS = 91; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=42)] - public struct mavlink_hil_controls_t - { - /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) - public UInt64 time_usec; - /// Control output -1 .. 1 - public Single roll_ailerons; - /// Control output -1 .. 1 - public Single pitch_elevator; - /// Control output -1 .. 1 - public Single yaw_rudder; - /// Throttle 0 .. 1 - public Single throttle; - /// Aux 1, -1 .. 1 - public Single aux1; - /// Aux 2, -1 .. 1 - public Single aux2; - /// Aux 3, -1 .. 1 - public Single aux3; - /// Aux 4, -1 .. 1 - public Single aux4; - /// System mode (MAV_MODE) - public byte mode; - /// Navigation mode (MAV_NAV_MODE) - public byte nav_mode; - - }; - - - public const byte MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW = 92; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=33)] - public struct mavlink_hil_rc_inputs_raw_t - { - /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) - public UInt64 time_usec; - /// RC channel 1 value, in microseconds - public UInt16 chan1_raw; - /// RC channel 2 value, in microseconds - public UInt16 chan2_raw; - /// RC channel 3 value, in microseconds - public UInt16 chan3_raw; - /// RC channel 4 value, in microseconds - public UInt16 chan4_raw; - /// RC channel 5 value, in microseconds - public UInt16 chan5_raw; - /// RC channel 6 value, in microseconds - public UInt16 chan6_raw; - /// RC channel 7 value, in microseconds - public UInt16 chan7_raw; - /// RC channel 8 value, in microseconds - public UInt16 chan8_raw; - /// RC channel 9 value, in microseconds - public UInt16 chan9_raw; - /// RC channel 10 value, in microseconds - public UInt16 chan10_raw; - /// RC channel 11 value, in microseconds - public UInt16 chan11_raw; - /// RC channel 12 value, in microseconds - public UInt16 chan12_raw; - /// Receive signal strength indicator, 0: 0%, 255: 100% - public byte rssi; - - }; - - - public const byte MAVLINK_MSG_ID_OPTICAL_FLOW = 100; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] - public struct mavlink_optical_flow_t - { - /// Timestamp (UNIX) - public UInt64 time_usec; - /// Ground distance in meters - public Single ground_distance; - /// Flow in pixels in x-sensor direction - public Int16 flow_x; - /// Flow in pixels in y-sensor direction - public Int16 flow_y; - /// Sensor ID - public byte sensor_id; - /// Optical flow quality / confidence. 0: bad, 255: maximum quality - public byte quality; - - }; - - - public const byte MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE = 101; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] - public struct mavlink_global_vision_position_estimate_t - { - /// Timestamp (milliseconds) - public UInt64 usec; - /// Global X position - public Single x; - /// Global Y position - public Single y; - /// Global Z position - public Single z; - /// Roll angle in rad - public Single roll; - /// Pitch angle in rad - public Single pitch; - /// Yaw angle in rad - public Single yaw; - - }; - - - public const byte MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE = 102; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] - public struct mavlink_vision_position_estimate_t - { - /// Timestamp (milliseconds) - public UInt64 usec; - /// Global X position - public Single x; - /// Global Y position - public Single y; - /// Global Z position - public Single z; - /// Roll angle in rad - public Single roll; - /// Pitch angle in rad - public Single pitch; - /// Yaw angle in rad - public Single yaw; - - }; - - - public const byte MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE = 103; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] - public struct mavlink_vision_speed_estimate_t - { - /// Timestamp (milliseconds) - public UInt64 usec; - /// Global X speed - public Single x; - /// Global Y speed - public Single y; - /// Global Z speed - public Single z; - - }; - - - public const byte MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE = 104; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] - public struct mavlink_vicon_position_estimate_t - { - /// Timestamp (milliseconds) - public UInt64 usec; - /// Global X position - public Single x; - /// Global Y position - public Single y; - /// Global Z position - public Single z; - /// Roll angle in rad - public Single roll; - /// Pitch angle in rad - public Single pitch; - /// Yaw angle in rad - public Single yaw; - - }; - - - public const byte MAVLINK_MSG_ID_MEMORY_VECT = 249; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)] - public struct mavlink_memory_vect_t - { - /// Starting address of the debug variables - public UInt16 address; - /// Version code of the type variable. 0=unknown, type ignored and assumed int16_t. 1=as below - public byte ver; - /// Type code of the memory variables. for ver = 1: 0=16 x int16_t, 1=16 x uint16_t, 2=16 x Q15, 3=16 x 1Q14 - public byte type; - /// Memory contents at specified address - [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] - public byte[] value; - - }; - - - public const byte MAVLINK_MSG_ID_DEBUG_VECT = 250; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=30)] - public struct mavlink_debug_vect_t - { - /// Timestamp - public UInt64 time_usec; - /// x - public Single x; - /// y - public Single y; - /// z - public Single z; - /// Name - [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] - public string name; - - }; - - - public const byte MAVLINK_MSG_ID_NAMED_VALUE_FLOAT = 251; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] - public struct mavlink_named_value_float_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// Floating point value - public Single value; - /// Name of the debug variable - [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] - public string name; - - }; - - - public const byte MAVLINK_MSG_ID_NAMED_VALUE_INT = 252; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] - public struct mavlink_named_value_int_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// Signed integer value - public Int32 value; - /// Name of the debug variable - [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] - public string name; - - }; - - - public const byte MAVLINK_MSG_ID_STATUSTEXT = 253; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=51)] - public struct mavlink_statustext_t - { - /// Severity of status, 0 = info message, 255 = critical fault - public byte severity; - /// Status text message, without null termination character - [MarshalAs(UnmanagedType.ByValArray,SizeConst=50)] - public string text; - - }; - - - public const byte MAVLINK_MSG_ID_DEBUG = 254; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)] - public struct mavlink_debug_t - { - /// Timestamp (milliseconds since system boot) - public UInt32 time_boot_ms; - /// DEBUG value - public Single value; - /// index of debug variable - public byte ind; - - }; - - - public const byte MAVLINK_MSG_ID_EXTENDED_MESSAGE = 255; - [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] - public struct mavlink_extended_message_t - { - /// System which should execute the command - public byte target_system; - /// Component which should execute the command, 0 for all components - public byte target_component; - /// Retransmission / ACK flags - public byte protocol_flags; - - }; - - } -#endif -} +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; + +namespace ArdupilotMega +{ + #if MAVLINK10 + partial class MAVLink + { + public const string MAVLINK_BUILD_DATE = "Fri Apr 6 21:11:00 2012"; + public const string MAVLINK_WIRE_PROTOCOL_VERSION = "1.0"; + public const int MAVLINK_MAX_DIALECT_PAYLOAD_SIZE = 42; + + public const int MAVLINK_LITTLE_ENDIAN = 1; + public const int MAVLINK_BIG_ENDIAN = 0; + + public const byte MAVLINK_STX = 254; + + public const byte MAVLINK_ENDIAN = MAVLINK_LITTLE_ENDIAN; + + public const bool MAVLINK_ALIGNED_FIELDS = (1 == 1); + + public const byte MAVLINK_CRC_EXTRA = 1; + + public const bool MAVLINK_NEED_BYTE_SWAP = (MAVLINK_ENDIAN == MAVLINK_LITTLE_ENDIAN); + + public byte[] MAVLINK_MESSAGE_LENGTHS = new byte[] {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 0, 0, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 18, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 8, 4, 12, 15, 13, 6, 15, 14, 0, 12, 3, 8, 28, 36, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 3}; + + public byte[] MAVLINK_MESSAGE_CRCS = new byte[] {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 0, 0, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 19, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 219, 208, 188, 84, 22, 19, 21, 134, 0, 78, 68, 189, 127, 42, 21, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 247}; + + public Type[] MAVLINK_MESSAGE_INFO = new Type[] {typeof( mavlink_heartbeat_t ), typeof( mavlink_sys_status_t ), typeof( mavlink_system_time_t ), null, typeof( mavlink_ping_t ), typeof( mavlink_change_operator_control_t ), typeof( mavlink_change_operator_control_ack_t ), typeof( mavlink_auth_key_t ), null, null, null, typeof( mavlink_set_mode_t ), null, null, null, null, null, null, null, null, typeof( mavlink_param_request_read_t ), typeof( mavlink_param_request_list_t ), typeof( mavlink_param_value_t ), typeof( mavlink_param_set_t ), typeof( mavlink_gps_raw_int_t ), typeof( mavlink_gps_status_t ), typeof( mavlink_scaled_imu_t ), typeof( mavlink_raw_imu_t ), typeof( mavlink_raw_pressure_t ), typeof( mavlink_scaled_pressure_t ), typeof( mavlink_attitude_t ), typeof( mavlink_attitude_quaternion_t ), typeof( mavlink_local_position_ned_t ), typeof( mavlink_global_position_int_t ), typeof( mavlink_rc_channels_scaled_t ), typeof( mavlink_rc_channels_raw_t ), typeof( mavlink_servo_output_raw_t ), typeof( mavlink_mission_request_partial_list_t ), typeof( mavlink_mission_write_partial_list_t ), typeof( mavlink_mission_item_t ), typeof( mavlink_mission_request_t ), typeof( mavlink_mission_set_current_t ), typeof( mavlink_mission_current_t ), typeof( mavlink_mission_request_list_t ), typeof( mavlink_mission_count_t ), typeof( mavlink_mission_clear_all_t ), typeof( mavlink_mission_item_reached_t ), typeof( mavlink_mission_ack_t ), typeof( mavlink_set_gps_global_origin_t ), typeof( mavlink_gps_global_origin_t ), typeof( mavlink_set_local_position_setpoint_t ), typeof( mavlink_local_position_setpoint_t ), typeof( mavlink_global_position_setpoint_int_t ), typeof( mavlink_set_global_position_setpoint_int_t ), typeof( mavlink_safety_set_allowed_area_t ), typeof( mavlink_safety_allowed_area_t ), typeof( mavlink_set_roll_pitch_yaw_thrust_t ), typeof( mavlink_set_roll_pitch_yaw_speed_thrust_t ), typeof( mavlink_roll_pitch_yaw_thrust_setpoint_t ), typeof( mavlink_roll_pitch_yaw_speed_thrust_setpoint_t ), null, null, typeof( mavlink_nav_controller_output_t ), null, typeof( mavlink_state_correction_t ), null, typeof( mavlink_request_data_stream_t ), typeof( mavlink_data_stream_t ), null, typeof( mavlink_manual_control_t ), typeof( mavlink_rc_channels_override_t ), null, null, null, typeof( mavlink_vfr_hud_t ), null, typeof( mavlink_command_long_t ), typeof( mavlink_command_ack_t ), null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_hil_state_t ), typeof( mavlink_hil_controls_t ), typeof( mavlink_hil_rc_inputs_raw_t ), null, null, null, null, null, null, null, typeof( mavlink_optical_flow_t ), typeof( mavlink_global_vision_position_estimate_t ), typeof( mavlink_vision_position_estimate_t ), typeof( mavlink_vision_speed_estimate_t ), typeof( mavlink_vicon_position_estimate_t ), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_sensor_offsets_t ), typeof( mavlink_set_mag_offsets_t ), typeof( mavlink_meminfo_t ), typeof( mavlink_ap_adc_t ), typeof( mavlink_digicam_configure_t ), typeof( mavlink_digicam_control_t ), typeof( mavlink_mount_configure_t ), typeof( mavlink_mount_control_t ), typeof( mavlink_mount_status_t ), null, typeof( mavlink_fence_point_t ), typeof( mavlink_fence_fetch_point_t ), typeof( mavlink_fence_status_t ), typeof( mavlink_ahrs_t ), typeof( mavlink_simstate_t ), typeof( mavlink_hwstatus_t ), typeof( mavlink_radio_t ), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_memory_vect_t ), typeof( mavlink_debug_vect_t ), typeof( mavlink_named_value_float_t ), typeof( mavlink_named_value_int_t ), typeof( mavlink_statustext_t ), typeof( mavlink_debug_t ), typeof( mavlink_extended_message_t )}; + + public const byte MAVLINK_VERSION = 2; + + + /** @brief Enumeration of possible mount operation modes */ + public enum MAV_MOUNT_MODE + { + /// Load and keep safe position (Roll,Pitch,Yaw) from EEPROM and stop stabilization | + RETRACT=0, + /// Load and keep neutral position (Roll,Pitch,Yaw) from EEPROM. | + NEUTRAL=1, + /// Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization | + MAVLINK_TARGETING=2, + /// Load neutral position and start RC Roll,Pitch,Yaw control with stabilization | + RC_TARGETING=3, + /// Load neutral position and start to point to Lat,Lon,Alt | + GPS_POINT=4, + /// | + ENUM_END=5, + + }; + + /** @brief */ + public enum MAV_CMD + { + /// Navigate to MISSION. |Hold time in decimal seconds. (ignored by fixed wing, time to stay at MISSION for rotary wing)| Acceptance radius in meters (if the sphere with this radius is hit, the MISSION counts as reached)| 0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.| Desired yaw angle at MISSION (rotary wing)| Latitude| Longitude| Altitude| + WAYPOINT=16, + /// Loiter around this MISSION an unlimited amount of time |Empty| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude| + LOITER_UNLIM=17, + /// Loiter around this MISSION for X turns |Turns| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude| + LOITER_TURNS=18, + /// Loiter around this MISSION for X seconds |Seconds (decimal)| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude| + LOITER_TIME=19, + /// Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty| + RETURN_TO_LAUNCH=20, + /// Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude| + LAND=21, + /// Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude| + TAKEOFF=22, + /// Sets the region of interest (ROI) for a sensor set or the vehicle itself. This can then be used by the vehicles control system to control the vehicle attitude and the attitude of various sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| MISSION index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z| + ROI=80, + /// Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal| + PATHPLANNING=81, + /// NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty| + LAST=95, + /// Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty| + CONDITION_DELAY=112, + /// Ascend/descend at rate. Delay mission state machine until desired altitude reached. |Descent / Ascend rate (m/s)| Empty| Empty| Empty| Empty| Empty| Finish Altitude| + CONDITION_CHANGE_ALT=113, + /// Delay mission state machine until within desired distance of next NAV point. |Distance (meters)| Empty| Empty| Empty| Empty| Empty| Empty| + CONDITION_DISTANCE=114, + /// Reach a certain target angle. |target angle: [0-360], 0 is north| speed during yaw change:[deg per second]| direction: negative: counter clockwise, positive: clockwise [-1,1]| relative offset or absolute angle: [ 1,0]| Empty| Empty| Empty| + CONDITION_YAW=115, + /// NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty| + CONDITION_LAST=159, + /// Set system mode. |Mode, as defined by ENUM MAV_MODE| Empty| Empty| Empty| Empty| Empty| Empty| + DO_SET_MODE=176, + /// Jump to the desired command in the mission list. Repeat this action only the specified number of times |Sequence number| Repeat count| Empty| Empty| Empty| Empty| Empty| + DO_JUMP=177, + /// Change speed and/or throttle set points. |Speed type (0=Airspeed, 1=Ground Speed)| Speed (m/s, -1 indicates no change)| Throttle ( Percent, -1 indicates no change)| Empty| Empty| Empty| Empty| + DO_CHANGE_SPEED=178, + /// Changes the home location either to the current location or a specified location. |Use current (1=use current location, 0=use specified location)| Empty| Empty| Empty| Latitude| Longitude| Altitude| + DO_SET_HOME=179, + /// Set a system parameter. Caution! Use of this command requires knowledge of the numeric enumeration value of the parameter. |Parameter number| Parameter value| Empty| Empty| Empty| Empty| Empty| + DO_SET_PARAMETER=180, + /// Set a relay to a condition. |Relay number| Setting (1=on, 0=off, others possible depending on system hardware)| Empty| Empty| Empty| Empty| Empty| + DO_SET_RELAY=181, + /// Cycle a relay on and off for a desired number of cyles with a desired period. |Relay number| Cycle count| Cycle time (seconds, decimal)| Empty| Empty| Empty| Empty| + DO_REPEAT_RELAY=182, + /// Set a servo to a desired PWM value. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Empty| Empty| Empty| Empty| Empty| + DO_SET_SERVO=183, + /// Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Cycle count| Cycle time (seconds)| Empty| Empty| Empty| + DO_REPEAT_SERVO=184, + /// Control onboard camera system. |Camera ID (-1 for all)| Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw| Transmission mode: 0: video stream, >0: single images every n seconds (decimal)| Recording: 0: disabled, 1: enabled compressed, 2: enabled raw| Empty| Empty| Empty| + DO_CONTROL_VIDEO=200, + /// Mission command to configure an on-board camera controller system. |Modes: P, TV, AV, M, Etc| Shutter speed: Divisor number for one second| Aperture: F stop number| ISO number e.g. 80, 100, 200, Etc| Exposure type enumerator| Command Identity| Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)| + DO_DIGICAM_CONFIGURE=202, + /// Mission command to control an on-board camera controller system. |Session control e.g. show/hide lens| Zoom's absolute position| Zooming step value to offset zoom from the current position| Focus Locking, Unlocking or Re-locking| Shooting Command| Command Identity| Empty| + DO_DIGICAM_CONTROL=203, + /// Mission command to configure a camera or antenna mount |Mount operation mode (see MAV_MOUNT_MODE enum)| stabilize roll? (1 = yes, 0 = no)| stabilize pitch? (1 = yes, 0 = no)| stabilize yaw? (1 = yes, 0 = no)| Empty| Empty| Empty| + DO_MOUNT_CONFIGURE=204, + /// Mission command to control a camera or antenna mount |pitch(deg*100) or lat, depending on mount mode.| roll(deg*100) or lon depending on mount mode| yaw(deg*100) or alt (in cm) depending on mount mode| Empty| Empty| Empty| Empty| + DO_MOUNT_CONTROL=205, + /// NOP - This command is only used to mark the upper limit of the DO commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty| + DO_LAST=240, + /// Trigger calibration. This command will be only accepted if in pre-flight mode. |Gyro calibration: 0: no, 1: yes| Magnetometer calibration: 0: no, 1: yes| Ground pressure: 0: no, 1: yes| Radio calibration: 0: no, 1: yes| Empty| Empty| Empty| + PREFLIGHT_CALIBRATION=241, + /// Set sensor offsets. This command will be only accepted if in pre-flight mode. |Sensor to adjust the offsets for: 0: gyros, 1: accelerometer, 2: magnetometer, 3: barometer, 4: optical flow| X axis offset (or generic dimension 1), in the sensor's raw units| Y axis offset (or generic dimension 2), in the sensor's raw units| Z axis offset (or generic dimension 3), in the sensor's raw units| Generic dimension 4, in the sensor's raw units| Generic dimension 5, in the sensor's raw units| Generic dimension 6, in the sensor's raw units| + PREFLIGHT_SET_SENSOR_OFFSETS=242, + /// Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode. |Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Reserved| Reserved| Empty| Empty| Empty| + PREFLIGHT_STORAGE=245, + /// Request the reboot or shutdown of system components. |0: Do nothing for autopilot, 1: Reboot autopilot, 2: Shutdown autopilot.| 0: Do nothing for onboard computer, 1: Reboot onboard computer, 2: Shutdown onboard computer.| Reserved| Reserved| Empty| Empty| Empty| + PREFLIGHT_REBOOT_SHUTDOWN=246, + /// Hold / continue the current action |MAV_GOTO_DO_HOLD: hold MAV_GOTO_DO_CONTINUE: continue with next item in mission plan| MAV_GOTO_HOLD_AT_CURRENT_POSITION: Hold at current position MAV_GOTO_HOLD_AT_SPECIFIED_POSITION: hold at specified position| MAV_FRAME coordinate frame of hold point| Desired yaw angle in degrees| Latitude / X position| Longitude / Y position| Altitude / Z position| + OVERRIDE_GOTO=252, + /// start running a mission |first_item: the first mission item to run| last_item: the last mission item to run (after this item is run, the mission ends)| + MISSION_START=300, + /// | + ENUM_END=301, + + }; + + /** @brief */ + public enum FENCE_ACTION + { + /// Disable fenced mode | + NONE=0, + /// Switched to guided mode to return point (fence point 0) | + GUIDED=1, + /// | + ENUM_END=2, + + }; + + /** @brief */ + public enum FENCE_BREACH + { + /// No last fence breach | + NONE=0, + /// Breached minimum altitude | + MINALT=1, + /// Breached minimum altitude | + MAXALT=2, + /// Breached fence boundary | + BOUNDARY=3, + /// | + ENUM_END=4, + + }; + + + + /** @brief Micro air vehicle / autopilot classes. This identifies the individual model. */ + public enum MAV_AUTOPILOT + { + /// Generic autopilot, full support for everything | + GENERIC=0, + /// PIXHAWK autopilot, http://pixhawk.ethz.ch | + PIXHAWK=1, + /// SLUGS autopilot, http://slugsuav.soe.ucsc.edu | + SLUGS=2, + /// ArduPilotMega / ArduCopter, http://diydrones.com | + ARDUPILOTMEGA=3, + /// OpenPilot, http://openpilot.org | + OPENPILOT=4, + /// Generic autopilot only supporting simple waypoints | + GENERIC_WAYPOINTS_ONLY=5, + /// Generic autopilot supporting waypoints and other simple navigation commands | + GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY=6, + /// Generic autopilot supporting the full mission command set | + GENERIC_MISSION_FULL=7, + /// No valid autopilot, e.g. a GCS or other MAVLink component | + INVALID=8, + /// PPZ UAV - http://nongnu.org/paparazzi | + PPZ=9, + /// UAV Dev Board | + UDB=10, + /// FlexiPilot | + FP=11, + /// | + ENUM_END=12, + + }; + + /** @brief These flags encode the MAV mode. */ + public enum MAV_MODE_FLAG + { + /// 0b00000001 Reserved for future use. | + CUSTOM_MODE_ENABLED=1, + /// 0b00000010 system has a test mode enabled. This flag is intended for temporary system tests and should not be used for stable implementations. | + TEST_ENABLED=2, + /// 0b00000100 autonomous mode enabled, system finds its own goal positions. Guided flag can be set or not, depends on the actual implementation. | + AUTO_ENABLED=4, + /// 0b00001000 guided mode enabled, system flies MISSIONs / mission items. | + GUIDED_ENABLED=8, + /// 0b00010000 system stabilizes electronically its attitude (and optionally position). It needs however further control inputs to move around. | + STABILIZE_ENABLED=16, + /// 0b00100000 hardware in the loop simulation. All motors / actuators are blocked, but internal software is full operational. | + HIL_ENABLED=32, + /// 0b01000000 remote control input is enabled. | + MANUAL_INPUT_ENABLED=64, + /// 0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. | + SAFETY_ARMED=128, + /// | + ENUM_END=129, + + }; + + /** @brief These values encode the bit positions of the decode position. These values can be used to read the value of a flag bit by combining the base_mode variable with AND with the flag position value. The result will be either 0 or 1, depending on if the flag is set or not. */ + public enum MAV_MODE_FLAG_DECODE_POSITION + { + /// Eighth bit: 00000001 | + CUSTOM_MODE=1, + /// Seventh bit: 00000010 | + TEST=2, + /// Sixt bit: 00000100 | + AUTO=4, + /// Fifth bit: 00001000 | + GUIDED=8, + /// Fourth bit: 00010000 | + STABILIZE=16, + /// Third bit: 00100000 | + HIL=32, + /// Second bit: 01000000 | + MANUAL=64, + /// First bit: 10000000 | + SAFETY=128, + /// | + ENUM_END=129, + + }; + + /** @brief Override command, pauses current mission execution and moves immediately to a position */ + public enum MAV_GOTO + { + /// Hold at the current position. | + DO_HOLD=0, + /// Continue with the next item in mission execution. | + DO_CONTINUE=1, + /// Hold at the current position of the system | + HOLD_AT_CURRENT_POSITION=2, + /// Hold at the position specified in the parameters of the DO_HOLD action | + HOLD_AT_SPECIFIED_POSITION=3, + /// | + ENUM_END=4, + + }; + + /** @brief These defines are predefined OR-combined mode flags. There is no need to use values from this enum, but it simplifies the use of the mode flags. Note that manual input is enabled in all modes as a safety override. */ + public enum MAV_MODE + { + /// System is not ready to fly, booting, calibrating, etc. No flag is set. | + PREFLIGHT=0, + /// System is allowed to be active, under manual (RC) control, no stabilization | + MANUAL_DISARMED=64, + /// UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only. | + TEST_DISARMED=66, + /// System is allowed to be active, under assisted RC control. | + STABILIZE_DISARMED=80, + /// System is allowed to be active, under autonomous control, manual setpoint | + GUIDED_DISARMED=88, + /// System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs) | + AUTO_DISARMED=92, + /// System is allowed to be active, under manual (RC) control, no stabilization | + MANUAL_ARMED=192, + /// UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only. | + TEST_ARMED=194, + /// System is allowed to be active, under assisted RC control. | + STABILIZE_ARMED=208, + /// System is allowed to be active, under autonomous control, manual setpoint | + GUIDED_ARMED=216, + /// System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs) | + AUTO_ARMED=220, + /// | + ENUM_END=221, + + }; + + /** @brief */ + public enum MAV_STATE + { + /// Uninitialized system, state is unknown. | + UNINIT=0, + /// System is booting up. | + BOOT=1, + /// System is calibrating and not flight-ready. | + CALIBRATING=2, + /// System is grounded and on standby. It can be launched any time. | + STANDBY=3, + /// System is active and might be already airborne. Motors are engaged. | + ACTIVE=4, + /// System is in a non-normal flight mode. It can however still navigate. | + CRITICAL=5, + /// System is in a non-normal flight mode. It lost control over parts or over the whole airframe. It is in mayday and going down. | + EMERGENCY=6, + /// System just initialized its power-down sequence, will shut down now. | + POWEROFF=7, + /// | + ENUM_END=8, + + }; + + /** @brief */ + public enum MAV_TYPE + { + /// Generic micro air vehicle. | + GENERIC=0, + /// Fixed wing aircraft. | + FIXED_WING=1, + /// Quadrotor | + QUADROTOR=2, + /// Coaxial helicopter | + COAXIAL=3, + /// Normal helicopter with tail rotor. | + HELICOPTER=4, + /// Ground installation | + ANTENNA_TRACKER=5, + /// Operator control unit / ground control station | + GCS=6, + /// Airship, controlled | + AIRSHIP=7, + /// Free balloon, uncontrolled | + FREE_BALLOON=8, + /// Rocket | + ROCKET=9, + /// Ground rover | + GROUND_ROVER=10, + /// Surface vessel, boat, ship | + SURFACE_BOAT=11, + /// Submarine | + SUBMARINE=12, + /// Hexarotor | + HEXAROTOR=13, + /// Octorotor | + OCTOROTOR=14, + /// Octorotor | + TRICOPTER=15, + /// Flapping wing | + FLAPPING_WING=16, + /// | + ENUM_END=17, + + }; + + /** @brief */ + public enum MAV_COMPONENT + { + /// | + MAV_COMP_ID_ALL=0, + /// | + MAV_COMP_ID_CAMERA=100, + /// | + MAV_COMP_ID_SERVO1=140, + /// | + MAV_COMP_ID_SERVO2=141, + /// | + MAV_COMP_ID_SERVO3=142, + /// | + MAV_COMP_ID_SERVO4=143, + /// | + MAV_COMP_ID_SERVO5=144, + /// | + MAV_COMP_ID_SERVO6=145, + /// | + MAV_COMP_ID_SERVO7=146, + /// | + MAV_COMP_ID_SERVO8=147, + /// | + MAV_COMP_ID_SERVO9=148, + /// | + MAV_COMP_ID_SERVO10=149, + /// | + MAV_COMP_ID_SERVO11=150, + /// | + MAV_COMP_ID_SERVO12=151, + /// | + MAV_COMP_ID_SERVO13=152, + /// | + MAV_COMP_ID_SERVO14=153, + /// | + MAV_COMP_ID_MAPPER=180, + /// | + MAV_COMP_ID_MISSIONPLANNER=190, + /// | + MAV_COMP_ID_PATHPLANNER=195, + /// | + MAV_COMP_ID_IMU=200, + /// | + MAV_COMP_ID_IMU_2=201, + /// | + MAV_COMP_ID_IMU_3=202, + /// | + MAV_COMP_ID_GPS=220, + /// | + MAV_COMP_ID_UDP_BRIDGE=240, + /// | + MAV_COMP_ID_UART_BRIDGE=241, + /// | + MAV_COMP_ID_SYSTEM_CONTROL=250, + /// | + ENUM_END=251, + + }; + + /** @brief */ + public enum MAV_FRAME + { + /// Global coordinate frame, WGS84 coordinate system. First value / x: latitude, second value / y: longitude, third value / z: positive altitude over mean sea level (MSL) | + GLOBAL=0, + /// Local coordinate frame, Z-up (x: north, y: east, z: down). | + LOCAL_NED=1, + /// NOT a coordinate frame, indicates a mission command. | + MISSION=2, + /// Global coordinate frame, WGS84 coordinate system, relative altitude over ground with respect to the home position. First value / x: latitude, second value / y: longitude, third value / z: positive altitude with 0 being at the altitude of the home location. | + GLOBAL_RELATIVE_ALT=3, + /// Local coordinate frame, Z-down (x: east, y: north, z: up) | + LOCAL_ENU=4, + /// | + ENUM_END=5, + + }; + + /** @brief */ + public enum MAVLINK_DATA_STREAM_TYPE + { + /// | + MAVLINK_DATA_STREAM_IMG_JPEG=1, + /// | + MAVLINK_DATA_STREAM_IMG_BMP=2, + /// | + MAVLINK_DATA_STREAM_IMG_RAW8U=3, + /// | + MAVLINK_DATA_STREAM_IMG_RAW32U=4, + /// | + MAVLINK_DATA_STREAM_IMG_PGM=5, + /// | + MAVLINK_DATA_STREAM_IMG_PNG=6, + /// | + ENUM_END=7, + + }; + + /** @brief Data stream IDs. A data stream is not a fixed set of messages, but rather a recommendation to the autopilot software. Individual autopilots may or may not obey the recommended messages. */ + public enum MAV_DATA_STREAM + { + /// Enable all data streams | + ALL=0, + /// Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | + RAW_SENSORS=1, + /// Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | + EXTENDED_STATUS=2, + /// Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | + RC_CHANNELS=3, + /// Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | + RAW_CONTROLLER=4, + /// Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | + POSITION=6, + /// Dependent on the autopilot | + EXTRA1=10, + /// Dependent on the autopilot | + EXTRA2=11, + /// Dependent on the autopilot | + EXTRA3=12, + /// | + ENUM_END=13, + + }; + + /** @brief The ROI (region of interest) for the vehicle. This can be be used by the vehicle for camera/vehicle attitude alignment (see MAV_CMD_NAV_ROI). */ + public enum MAV_ROI + { + /// No region of interest. | + NONE=0, + /// Point toward next MISSION. | + WPNEXT=1, + /// Point toward given MISSION. | + WPINDEX=2, + /// Point toward fixed location. | + LOCATION=3, + /// Point toward of given id. | + TARGET=4, + /// | + ENUM_END=5, + + }; + + /** @brief ACK / NACK / ERROR values as a result of MAV_CMDs and for mission item transmission. */ + public enum MAV_CMD_ACK + { + /// Command / mission item is ok. | + OK=1, + /// Generic error message if none of the other reasons fails or if no detailed error reporting is implemented. | + ERR_FAIL=2, + /// The system is refusing to accept this command from this source / communication partner. | + ERR_ACCESS_DENIED=3, + /// Command or mission item is not supported, other commands would be accepted. | + ERR_NOT_SUPPORTED=4, + /// The coordinate frame of this command / mission item is not supported. | + ERR_COORDINATE_FRAME_NOT_SUPPORTED=5, + /// The coordinate frame of this command is ok, but he coordinate values exceed the safety limits of this system. This is a generic error, please use the more specific error messages below if possible. | + ERR_COORDINATES_OUT_OF_RANGE=6, + /// The X or latitude value is out of range. | + ERR_X_LAT_OUT_OF_RANGE=7, + /// The Y or longitude value is out of range. | + ERR_Y_LON_OUT_OF_RANGE=8, + /// The Z or altitude value is out of range. | + ERR_Z_ALT_OUT_OF_RANGE=9, + /// | + ENUM_END=10, + + }; + + /** @brief type of a mavlink parameter */ + public enum MAV_VAR + { + /// 32 bit float | + FLOAT=0, + /// 8 bit unsigned integer | + UINT8=1, + /// 8 bit signed integer | + INT8=2, + /// 16 bit unsigned integer | + UINT16=3, + /// 16 bit signed integer | + INT16=4, + /// 32 bit unsigned integer | + UINT32=5, + /// 32 bit signed integer | + INT32=6, + /// | + ENUM_END=7, + + }; + + /** @brief result from a mavlink command */ + public enum MAV_RESULT + { + /// Command ACCEPTED and EXECUTED | + ACCEPTED=0, + /// Command TEMPORARY REJECTED/DENIED | + TEMPORARILY_REJECTED=1, + /// Command PERMANENTLY DENIED | + DENIED=2, + /// Command UNKNOWN/UNSUPPORTED | + UNSUPPORTED=3, + /// Command executed, but failed | + FAILED=4, + /// | + ENUM_END=5, + + }; + + /** @brief result in a mavlink mission ack */ + public enum MAV_MISSION_RESULT + { + /// mission accepted OK | + MAV_MISSION_ACCEPTED=0, + /// generic error / not accepting mission commands at all right now | + MAV_MISSION_ERROR=1, + /// coordinate frame is not supported | + MAV_MISSION_UNSUPPORTED_FRAME=2, + /// command is not supported | + MAV_MISSION_UNSUPPORTED=3, + /// mission item exceeds storage space | + MAV_MISSION_NO_SPACE=4, + /// one of the parameters has an invalid value | + MAV_MISSION_INVALID=5, + /// param1 has an invalid value | + MAV_MISSION_INVALID_PARAM1=6, + /// param2 has an invalid value | + MAV_MISSION_INVALID_PARAM2=7, + /// param3 has an invalid value | + MAV_MISSION_INVALID_PARAM3=8, + /// param4 has an invalid value | + MAV_MISSION_INVALID_PARAM4=9, + /// x/param5 has an invalid value | + MAV_MISSION_INVALID_PARAM5_X=10, + /// y/param6 has an invalid value | + MAV_MISSION_INVALID_PARAM6_Y=11, + /// param7 has an invalid value | + MAV_MISSION_INVALID_PARAM7=12, + /// received waypoint out of sequence | + MAV_MISSION_INVALID_SEQUENCE=13, + /// not accepting any mission commands from this communication partner | + MAV_MISSION_DENIED=14, + /// | + ENUM_END=15, + + }; + + + public const byte MAVLINK_MSG_ID_SENSOR_OFFSETS = 150; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=42)] + public struct mavlink_sensor_offsets_t + { + /// magnetic declination (radians) + public Single mag_declination; + /// raw pressure from barometer + public Int32 raw_press; + /// raw temperature from barometer + public Int32 raw_temp; + /// gyro X calibration + public Single gyro_cal_x; + /// gyro Y calibration + public Single gyro_cal_y; + /// gyro Z calibration + public Single gyro_cal_z; + /// accel X calibration + public Single accel_cal_x; + /// accel Y calibration + public Single accel_cal_y; + /// accel Z calibration + public Single accel_cal_z; + /// magnetometer X offset + public Int16 mag_ofs_x; + /// magnetometer Y offset + public Int16 mag_ofs_y; + /// magnetometer Z offset + public Int16 mag_ofs_z; + + }; + + + public const byte MAVLINK_MSG_ID_SET_MAG_OFFSETS = 151; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)] + public struct mavlink_set_mag_offsets_t + { + /// magnetometer X offset + public Int16 mag_ofs_x; + /// magnetometer Y offset + public Int16 mag_ofs_y; + /// magnetometer Z offset + public Int16 mag_ofs_z; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_MEMINFO = 152; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] + public struct mavlink_meminfo_t + { + /// heap top + public UInt16 brkval; + /// free memory + public UInt16 freemem; + + }; + + + public const byte MAVLINK_MSG_ID_AP_ADC = 153; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)] + public struct mavlink_ap_adc_t + { + /// ADC output 1 + public UInt16 adc1; + /// ADC output 2 + public UInt16 adc2; + /// ADC output 3 + public UInt16 adc3; + /// ADC output 4 + public UInt16 adc4; + /// ADC output 5 + public UInt16 adc5; + /// ADC output 6 + public UInt16 adc6; + + }; + + + public const byte MAVLINK_MSG_ID_DIGICAM_CONFIGURE = 154; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)] + public struct mavlink_digicam_configure_t + { + /// Correspondent value to given extra_param + public Single extra_value; + /// Divisor number //e.g. 1000 means 1/1000 (0 means ignore) + public UInt16 shutter_speed; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// Mode enumeration from 1 to N //P, TV, AV, M, Etc (0 means ignore) + public byte mode; + /// F stop number x 10 //e.g. 28 means 2.8 (0 means ignore) + public byte aperture; + /// ISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore) + public byte iso; + /// Exposure type enumeration from 1 to N (0 means ignore) + public byte exposure_type; + /// Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once + public byte command_id; + /// Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off) + public byte engine_cut_off; + /// Extra parameters enumeration (0 means ignore) + public byte extra_param; + + }; + + + public const byte MAVLINK_MSG_ID_DIGICAM_CONTROL = 155; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=13)] + public struct mavlink_digicam_control_t + { + /// Correspondent value to given extra_param + public Single extra_value; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// 0: stop, 1: start or keep it up //Session control e.g. show/hide lens + public byte session; + /// 1 to N //Zoom's absolute position (0 means ignore) + public byte zoom_pos; + /// -100 to 100 //Zooming step value to offset zoom from the current position + public byte zoom_step; + /// 0: unlock focus or keep unlocked, 1: lock focus or keep locked, 3: re-lock focus + public byte focus_lock; + /// 0: ignore, 1: shot or start filming + public byte shot; + /// Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once + public byte command_id; + /// Extra parameters enumeration (0 means ignore) + public byte extra_param; + + }; + + + public const byte MAVLINK_MSG_ID_MOUNT_CONFIGURE = 156; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] + public struct mavlink_mount_configure_t + { + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// mount operating mode (see MAV_MOUNT_MODE enum) + public byte mount_mode; + /// (1 = yes, 0 = no) + public byte stab_roll; + /// (1 = yes, 0 = no) + public byte stab_pitch; + /// (1 = yes, 0 = no) + public byte stab_yaw; + + }; + + + public const byte MAVLINK_MSG_ID_MOUNT_CONTROL = 157; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)] + public struct mavlink_mount_control_t + { + /// pitch(deg*100) or lat, depending on mount mode + public Int32 input_a; + /// roll(deg*100) or lon depending on mount mode + public Int32 input_b; + /// yaw(deg*100) or alt (in cm) depending on mount mode + public Int32 input_c; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// if "1" it will save current trimmed position on EEPROM (just valid for NEUTRAL and LANDING) + public byte save_position; + + }; + + + public const byte MAVLINK_MSG_ID_MOUNT_STATUS = 158; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)] + public struct mavlink_mount_status_t + { + /// pitch(deg*100) or lat, depending on mount mode + public Int32 pointing_a; + /// roll(deg*100) or lon depending on mount mode + public Int32 pointing_b; + /// yaw(deg*100) or alt (in cm) depending on mount mode + public Int32 pointing_c; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_FENCE_POINT = 160; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)] + public struct mavlink_fence_point_t + { + /// Latitude of point + public Single lat; + /// Longitude of point + public Single lng; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// point index (first point is 1, 0 is for return point) + public byte idx; + /// total number of points (for sanity checking) + public byte count; + + }; + + + public const byte MAVLINK_MSG_ID_FENCE_FETCH_POINT = 161; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] + public struct mavlink_fence_fetch_point_t + { + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// point index (first point is 1, 0 is for return point) + public byte idx; + + }; + + + public const byte MAVLINK_MSG_ID_FENCE_STATUS = 162; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)] + public struct mavlink_fence_status_t + { + /// time of last breach in milliseconds since boot + public UInt32 breach_time; + /// number of fence breaches + public UInt16 breach_count; + /// 0 if currently inside fence, 1 if outside + public byte breach_status; + /// last breach type (see FENCE_BREACH_* enum) + public byte breach_type; + + }; + + + public const byte MAVLINK_MSG_ID_AHRS = 163; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] + public struct mavlink_ahrs_t + { + /// X gyro drift estimate rad/s + public Single omegaIx; + /// Y gyro drift estimate rad/s + public Single omegaIy; + /// Z gyro drift estimate rad/s + public Single omegaIz; + /// average accel_weight + public Single accel_weight; + /// average renormalisation value + public Single renorm_val; + /// average error_roll_pitch value + public Single error_rp; + /// average error_yaw value + public Single error_yaw; + + }; + + + public const byte MAVLINK_MSG_ID_SIMSTATE = 164; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)] + public struct mavlink_simstate_t + { + /// Roll angle (rad) + public Single roll; + /// Pitch angle (rad) + public Single pitch; + /// Yaw angle (rad) + public Single yaw; + /// X acceleration m/s/s + public Single xacc; + /// Y acceleration m/s/s + public Single yacc; + /// Z acceleration m/s/s + public Single zacc; + /// Angular speed around X axis rad/s + public Single xgyro; + /// Angular speed around Y axis rad/s + public Single ygyro; + /// Angular speed around Z axis rad/s + public Single zgyro; + + }; + + + public const byte MAVLINK_MSG_ID_HWSTATUS = 165; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] + public struct mavlink_hwstatus_t + { + /// board voltage (mV) + public UInt16 Vcc; + /// I2C error count + public byte I2Cerr; + + }; + + + public const byte MAVLINK_MSG_ID_RADIO = 166; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)] + public struct mavlink_radio_t + { + /// receive errors + public UInt16 rxerrors; + /// serial errors + public UInt16 serrors; + /// count of error corrected packets + public UInt16 fixedp; + /// local signal strength + public byte rssi; + /// remote signal strength + public byte remrssi; + /// how full the tx buffer is as a percentage + public byte txbuf; + + }; + + + public const byte MAVLINK_MSG_ID_HEARTBEAT = 0; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)] + public struct mavlink_heartbeat_t + { + /// Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific. + public UInt32 custom_mode; + /// Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM) + public byte type; + /// Autopilot type / class. defined in MAV_CLASS ENUM + public byte autopilot; + /// System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h + public byte base_mode; + /// System status flag, see MAV_STATUS ENUM + public byte system_status; + /// MAVLink version + public byte mavlink_version; + + }; + + + public const byte MAVLINK_MSG_ID_SYS_STATUS = 1; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=31)] + public struct mavlink_sys_status_t + { + /// Bitmask showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control + public UInt32 onboard_control_sensors_present; + /// Bitmask showing which onboard controllers and sensors are enabled: Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control + public UInt32 onboard_control_sensors_enabled; + /// Bitmask showing which onboard controllers and sensors are operational or have an error: Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control + public UInt32 onboard_control_sensors_health; + /// Maximum usage in percent of the mainloop time, (0%: 0, 100%: 1000) should be always below 1000 + public UInt16 load; + /// Battery voltage, in millivolts (1 = 1 millivolt) + public UInt16 voltage_battery; + /// Battery current, in 10*milliamperes (1 = 10 milliampere), -1: autopilot does not measure the current + public Int16 current_battery; + /// Communication drops in percent, (0%: 0, 100%: 10'000), (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV) + public UInt16 drop_rate_comm; + /// Communication errors (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV) + public UInt16 errors_comm; + /// Autopilot-specific errors + public UInt16 errors_count1; + /// Autopilot-specific errors + public UInt16 errors_count2; + /// Autopilot-specific errors + public UInt16 errors_count3; + /// Autopilot-specific errors + public UInt16 errors_count4; + /// Remaining battery energy: (0%: 0, 100%: 100), -1: autopilot estimate the remaining battery + public byte battery_remaining; + + }; + + + public const byte MAVLINK_MSG_ID_SYSTEM_TIME = 2; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)] + public struct mavlink_system_time_t + { + /// Timestamp of the master clock in microseconds since UNIX epoch. + public UInt64 time_unix_usec; + /// Timestamp of the component clock since boot time in milliseconds. + public UInt32 time_boot_ms; + + }; + + + public const byte MAVLINK_MSG_ID_PING = 4; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)] + public struct mavlink_ping_t + { + /// Unix timestamp in microseconds + public UInt64 time_usec; + /// PING sequence + public UInt32 seq; + /// 0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system + public byte target_system; + /// 0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL = 5; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] + public struct mavlink_change_operator_control_t + { + /// System the GCS requests control for + public byte target_system; + /// 0: request control of this MAV, 1: Release control of this MAV + public byte control_request; + /// 0: key as plaintext, 1-255: future, different hashing/encryption variants. The GCS should in general use the safest mode possible initially and then gradually move down the encryption level if it gets a NACK message indicating an encryption mismatch. + public byte version; + /// Password / Key, depending on version plaintext or encrypted. 25 or less characters, NULL terminated. The characters may involve A-Z, a-z, 0-9, and "!?,.-" + [MarshalAs(UnmanagedType.ByValArray,SizeConst=25)] + public string passkey; + + }; + + + public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK = 6; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] + public struct mavlink_change_operator_control_ack_t + { + /// ID of the GCS this message + public byte gcs_system_id; + /// 0: request control of this MAV, 1: Release control of this MAV + public byte control_request; + /// 0: ACK, 1: NACK: Wrong passkey, 2: NACK: Unsupported passkey encryption method, 3: NACK: Already under control + public byte ack; + + }; + + + public const byte MAVLINK_MSG_ID_AUTH_KEY = 7; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] + public struct mavlink_auth_key_t + { + /// key + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public string key; + + }; + + + public const byte MAVLINK_MSG_ID_SET_MODE = 11; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] + public struct mavlink_set_mode_t + { + /// The new autopilot-specific mode. This field can be ignored by an autopilot. + public UInt32 custom_mode; + /// The system setting the mode + public byte target_system; + /// The new base mode + public byte base_mode; + + }; + + + public const byte MAVLINK_MSG_ID_PARAM_REQUEST_READ = 20; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] + public struct mavlink_param_request_read_t + { + /// Parameter index. Send -1 to use the param ID field as identifier + public Int16 param_index; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// Onboard parameter id + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public string param_id; + + }; + + + public const byte MAVLINK_MSG_ID_PARAM_REQUEST_LIST = 21; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] + public struct mavlink_param_request_list_t + { + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_PARAM_VALUE = 22; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=25)] + public struct mavlink_param_value_t + { + /// Onboard parameter value + public Single param_value; + /// Total number of onboard parameters + public UInt16 param_count; + /// Index of this onboard parameter + public UInt16 param_index; + /// Onboard parameter id + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] param_id; + /// Onboard parameter type: see MAV_VAR enum + public byte param_type; + + }; + + + public const byte MAVLINK_MSG_ID_PARAM_SET = 23; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=23)] + public struct mavlink_param_set_t + { + /// Onboard parameter value + public Single param_value; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// Onboard parameter id + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] param_id; + /// Onboard parameter type: see MAV_VAR enum + public byte param_type; + + }; + + + public const byte MAVLINK_MSG_ID_GPS_RAW_INT = 24; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=30)] + public struct mavlink_gps_raw_int_t + { + /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) + public UInt64 time_usec; + /// Latitude in 1E7 degrees + public Int32 lat; + /// Longitude in 1E7 degrees + public Int32 lon; + /// Altitude in 1E3 meters (millimeters) above MSL + public Int32 alt; + /// GPS HDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535 + public UInt16 eph; + /// GPS VDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535 + public UInt16 epv; + /// GPS ground speed (m/s * 100). If unknown, set to: 65535 + public UInt16 vel; + /// Course over ground (NOT heading, but direction of movement) in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535 + public UInt16 cog; + /// 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. + public byte fix_type; + /// Number of satellites visible. If unknown, set to 255 + public byte satellites_visible; + + }; + + + public const byte MAVLINK_MSG_ID_GPS_STATUS = 25; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=101)] + public struct mavlink_gps_status_t + { + /// Number of satellites visible + public byte satellites_visible; + /// Global satellite ID + [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] + public byte[] satellite_prn; + /// 0: Satellite not used, 1: used for localization + [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] + public byte[] satellite_used; + /// Elevation (0: right on top of receiver, 90: on the horizon) of satellite + [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] + public byte[] satellite_elevation; + /// Direction of satellite, 0: 0 deg, 255: 360 deg. + [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] + public byte[] satellite_azimuth; + /// Signal to noise ratio of satellite + [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)] + public byte[] satellite_snr; + + }; + + + public const byte MAVLINK_MSG_ID_SCALED_IMU = 26; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=22)] + public struct mavlink_scaled_imu_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// X acceleration (mg) + public Int16 xacc; + /// Y acceleration (mg) + public Int16 yacc; + /// Z acceleration (mg) + public Int16 zacc; + /// Angular speed around X axis (millirad /sec) + public Int16 xgyro; + /// Angular speed around Y axis (millirad /sec) + public Int16 ygyro; + /// Angular speed around Z axis (millirad /sec) + public Int16 zgyro; + /// X Magnetic field (milli tesla) + public Int16 xmag; + /// Y Magnetic field (milli tesla) + public Int16 ymag; + /// Z Magnetic field (milli tesla) + public Int16 zmag; + + }; + + + public const byte MAVLINK_MSG_ID_RAW_IMU = 27; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)] + public struct mavlink_raw_imu_t + { + /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) + public UInt64 time_usec; + /// X acceleration (raw) + public Int16 xacc; + /// Y acceleration (raw) + public Int16 yacc; + /// Z acceleration (raw) + public Int16 zacc; + /// Angular speed around X axis (raw) + public Int16 xgyro; + /// Angular speed around Y axis (raw) + public Int16 ygyro; + /// Angular speed around Z axis (raw) + public Int16 zgyro; + /// X Magnetic field (raw) + public Int16 xmag; + /// Y Magnetic field (raw) + public Int16 ymag; + /// Z Magnetic field (raw) + public Int16 zmag; + + }; + + + public const byte MAVLINK_MSG_ID_RAW_PRESSURE = 28; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=16)] + public struct mavlink_raw_pressure_t + { + /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) + public UInt64 time_usec; + /// Absolute pressure (raw) + public Int16 press_abs; + /// Differential pressure 1 (raw) + public Int16 press_diff1; + /// Differential pressure 2 (raw) + public Int16 press_diff2; + /// Raw Temperature measurement (raw) + public Int16 temperature; + + }; + + + public const byte MAVLINK_MSG_ID_SCALED_PRESSURE = 29; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)] + public struct mavlink_scaled_pressure_t + { + /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) + public UInt32 time_boot_ms; + /// Absolute pressure (hectopascal) + public Single press_abs; + /// Differential pressure 1 (hectopascal) + public Single press_diff; + /// Temperature measurement (0.01 degrees celsius) + public Int16 temperature; + + }; + + + public const byte MAVLINK_MSG_ID_ATTITUDE = 30; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] + public struct mavlink_attitude_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// Roll angle (rad) + public Single roll; + /// Pitch angle (rad) + public Single pitch; + /// Yaw angle (rad) + public Single yaw; + /// Roll angular speed (rad/s) + public Single rollspeed; + /// Pitch angular speed (rad/s) + public Single pitchspeed; + /// Yaw angular speed (rad/s) + public Single yawspeed; + + }; + + + public const byte MAVLINK_MSG_ID_ATTITUDE_QUATERNION = 31; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] + public struct mavlink_attitude_quaternion_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// Quaternion component 1 + public Single q1; + /// Quaternion component 2 + public Single q2; + /// Quaternion component 3 + public Single q3; + /// Quaternion component 4 + public Single q4; + /// Roll angular speed (rad/s) + public Single rollspeed; + /// Pitch angular speed (rad/s) + public Single pitchspeed; + /// Yaw angular speed (rad/s) + public Single yawspeed; + + }; + + + public const byte MAVLINK_MSG_ID_LOCAL_POSITION_NED = 32; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] + public struct mavlink_local_position_ned_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// X Position + public Single x; + /// Y Position + public Single y; + /// Z Position + public Single z; + /// X Speed + public Single vx; + /// Y Speed + public Single vy; + /// Z Speed + public Single vz; + + }; + + + public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_INT = 33; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)] + public struct mavlink_global_position_int_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// Latitude, expressed as * 1E7 + public Int32 lat; + /// Longitude, expressed as * 1E7 + public Int32 lon; + /// Altitude in meters, expressed as * 1000 (millimeters), above MSL + public Int32 alt; + /// Altitude above ground in meters, expressed as * 1000 (millimeters) + public Int32 relative_alt; + /// Ground X Speed (Latitude), expressed as m/s * 100 + public Int16 vx; + /// Ground Y Speed (Longitude), expressed as m/s * 100 + public Int16 vy; + /// Ground Z Speed (Altitude), expressed as m/s * 100 + public Int16 vz; + /// Compass heading in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535 + public UInt16 hdg; + + }; + + + public const byte MAVLINK_MSG_ID_RC_CHANNELS_SCALED = 34; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=22)] + public struct mavlink_rc_channels_scaled_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 + public Int16 chan1_scaled; + /// RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 + public Int16 chan2_scaled; + /// RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 + public Int16 chan3_scaled; + /// RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 + public Int16 chan4_scaled; + /// RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 + public Int16 chan5_scaled; + /// RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 + public Int16 chan6_scaled; + /// RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 + public Int16 chan7_scaled; + /// RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 + public Int16 chan8_scaled; + /// Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos. + public byte port; + /// Receive signal strength indicator, 0: 0%, 255: 100% + public byte rssi; + + }; + + + public const byte MAVLINK_MSG_ID_RC_CHANNELS_RAW = 35; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=22)] + public struct mavlink_rc_channels_raw_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// RC channel 1 value, in microseconds + public UInt16 chan1_raw; + /// RC channel 2 value, in microseconds + public UInt16 chan2_raw; + /// RC channel 3 value, in microseconds + public UInt16 chan3_raw; + /// RC channel 4 value, in microseconds + public UInt16 chan4_raw; + /// RC channel 5 value, in microseconds + public UInt16 chan5_raw; + /// RC channel 6 value, in microseconds + public UInt16 chan6_raw; + /// RC channel 7 value, in microseconds + public UInt16 chan7_raw; + /// RC channel 8 value, in microseconds + public UInt16 chan8_raw; + /// Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos. + public byte port; + /// Receive signal strength indicator, 0: 0%, 255: 100% + public byte rssi; + + }; + + + public const byte MAVLINK_MSG_ID_SERVO_OUTPUT_RAW = 36; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=21)] + public struct mavlink_servo_output_raw_t + { + /// Timestamp (since UNIX epoch or microseconds since system boot) + public UInt32 time_usec; + /// Servo output 1 value, in microseconds + public UInt16 servo1_raw; + /// Servo output 2 value, in microseconds + public UInt16 servo2_raw; + /// Servo output 3 value, in microseconds + public UInt16 servo3_raw; + /// Servo output 4 value, in microseconds + public UInt16 servo4_raw; + /// Servo output 5 value, in microseconds + public UInt16 servo5_raw; + /// Servo output 6 value, in microseconds + public UInt16 servo6_raw; + /// Servo output 7 value, in microseconds + public UInt16 servo7_raw; + /// Servo output 8 value, in microseconds + public UInt16 servo8_raw; + /// Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos. + public byte port; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST = 37; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] + public struct mavlink_mission_request_partial_list_t + { + /// Start index, 0 by default + public Int16 start_index; + /// End index, -1 by default (-1: send list to end). Else a valid index of the list + public Int16 end_index; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST = 38; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] + public struct mavlink_mission_write_partial_list_t + { + /// Start index, 0 by default and smaller / equal to the largest index of the current onboard list. + public Int16 start_index; + /// End index, equal or greater than start index. + public Int16 end_index; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_ITEM = 39; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=37)] + public struct mavlink_mission_item_t + { + /// PARAM1 / For NAV command MISSIONs: Radius in which the MISSION is accepted as reached, in meters + public Single param1; + /// PARAM2 / For NAV command MISSIONs: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds + public Single param2; + /// PARAM3 / For LOITER command MISSIONs: Orbit to circle around the MISSION, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise. + public Single param3; + /// PARAM4 / For NAV and LOITER command MISSIONs: Yaw orientation in degrees, [0..360] 0 = NORTH + public Single param4; + /// PARAM5 / local: x position, global: latitude + public Single x; + /// PARAM6 / y position: global: longitude + public Single y; + /// PARAM7 / z position: global: altitude + public Single z; + /// Sequence + public UInt16 seq; + /// The scheduled action for the MISSION. see MAV_CMD in common.xml MAVLink specs + public UInt16 command; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// The coordinate system of the MISSION. see MAV_FRAME in mavlink_types.h + public byte frame; + /// false:0, true:1 + public byte current; + /// autocontinue to next wp + public byte autocontinue; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_REQUEST = 40; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] + public struct mavlink_mission_request_t + { + /// Sequence + public UInt16 seq; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_SET_CURRENT = 41; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] + public struct mavlink_mission_set_current_t + { + /// Sequence + public UInt16 seq; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_CURRENT = 42; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] + public struct mavlink_mission_current_t + { + /// Sequence + public UInt16 seq; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_REQUEST_LIST = 43; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] + public struct mavlink_mission_request_list_t + { + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_COUNT = 44; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] + public struct mavlink_mission_count_t + { + /// Number of mission items in the sequence + public UInt16 count; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_CLEAR_ALL = 45; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] + public struct mavlink_mission_clear_all_t + { + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_ITEM_REACHED = 46; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)] + public struct mavlink_mission_item_reached_t + { + /// Sequence + public UInt16 seq; + + }; + + + public const byte MAVLINK_MSG_ID_MISSION_ACK = 47; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] + public struct mavlink_mission_ack_t + { + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// See MAV_MISSION_RESULT enum + public byte type; + + }; + + + public const byte MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN = 48; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=13)] + public struct mavlink_set_gps_global_origin_t + { + /// global position * 1E7 + public Int32 latitude; + /// global position * 1E7 + public Int32 longitude; + /// global position * 1000 + public Int32 altitude; + /// System ID + public byte target_system; + + }; + + + public const byte MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN = 49; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)] + public struct mavlink_gps_global_origin_t + { + /// Latitude (WGS84), expressed as * 1E7 + public Int32 latitude; + /// Longitude (WGS84), expressed as * 1E7 + public Int32 longitude; + /// Altitude(WGS84), expressed as * 1000 + public Int32 altitude; + + }; + + + public const byte MAVLINK_MSG_ID_SET_LOCAL_POSITION_SETPOINT = 50; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=19)] + public struct mavlink_set_local_position_setpoint_t + { + /// x position + public Single x; + /// y position + public Single y; + /// z position + public Single z; + /// Desired yaw angle + public Single yaw; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU + public byte coordinate_frame; + + }; + + + public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT = 51; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=17)] + public struct mavlink_local_position_setpoint_t + { + /// x position + public Single x; + /// y position + public Single y; + /// z position + public Single z; + /// Desired yaw angle + public Single yaw; + /// Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU + public byte coordinate_frame; + + }; + + + public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_SETPOINT_INT = 52; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)] + public struct mavlink_global_position_setpoint_int_t + { + /// WGS84 Latitude position in degrees * 1E7 + public Int32 latitude; + /// WGS84 Longitude position in degrees * 1E7 + public Int32 longitude; + /// WGS84 Altitude in meters * 1000 (positive for up) + public Int32 altitude; + /// Desired yaw angle in degrees * 100 + public Int16 yaw; + /// Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT + public byte coordinate_frame; + + }; + + + public const byte MAVLINK_MSG_ID_SET_GLOBAL_POSITION_SETPOINT_INT = 53; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)] + public struct mavlink_set_global_position_setpoint_int_t + { + /// WGS84 Latitude position in degrees * 1E7 + public Int32 latitude; + /// WGS84 Longitude position in degrees * 1E7 + public Int32 longitude; + /// WGS84 Altitude in meters * 1000 (positive for up) + public Int32 altitude; + /// Desired yaw angle in degrees * 100 + public Int16 yaw; + /// Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT + public byte coordinate_frame; + + }; + + + public const byte MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA = 54; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=27)] + public struct mavlink_safety_set_allowed_area_t + { + /// x position 1 / Latitude 1 + public Single p1x; + /// y position 1 / Longitude 1 + public Single p1y; + /// z position 1 / Altitude 1 + public Single p1z; + /// x position 2 / Latitude 2 + public Single p2x; + /// y position 2 / Longitude 2 + public Single p2y; + /// z position 2 / Altitude 2 + public Single p2z; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + /// Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. + public byte frame; + + }; + + + public const byte MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA = 55; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=25)] + public struct mavlink_safety_allowed_area_t + { + /// x position 1 / Latitude 1 + public Single p1x; + /// y position 1 / Longitude 1 + public Single p1y; + /// z position 1 / Altitude 1 + public Single p1z; + /// x position 2 / Latitude 2 + public Single p2x; + /// y position 2 / Longitude 2 + public Single p2y; + /// z position 2 / Altitude 2 + public Single p2z; + /// Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. + public byte frame; + + }; + + + public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST = 56; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] + public struct mavlink_set_roll_pitch_yaw_thrust_t + { + /// Desired roll angle in radians + public Single roll; + /// Desired pitch angle in radians + public Single pitch; + /// Desired yaw angle in radians + public Single yaw; + /// Collective thrust, normalized to 0 .. 1 + public Single thrust; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST = 57; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] + public struct mavlink_set_roll_pitch_yaw_speed_thrust_t + { + /// Desired roll angular speed in rad/s + public Single roll_speed; + /// Desired pitch angular speed in rad/s + public Single pitch_speed; + /// Desired yaw angular speed in rad/s + public Single yaw_speed; + /// Collective thrust, normalized to 0 .. 1 + public Single thrust; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT = 58; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] + public struct mavlink_roll_pitch_yaw_thrust_setpoint_t + { + /// Timestamp in milliseconds since system boot + public UInt32 time_boot_ms; + /// Desired roll angle in radians + public Single roll; + /// Desired pitch angle in radians + public Single pitch; + /// Desired yaw angle in radians + public Single yaw; + /// Collective thrust, normalized to 0 .. 1 + public Single thrust; + + }; + + + public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT = 59; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] + public struct mavlink_roll_pitch_yaw_speed_thrust_setpoint_t + { + /// Timestamp in milliseconds since system boot + public UInt32 time_boot_ms; + /// Desired roll angular speed in rad/s + public Single roll_speed; + /// Desired pitch angular speed in rad/s + public Single pitch_speed; + /// Desired yaw angular speed in rad/s + public Single yaw_speed; + /// Collective thrust, normalized to 0 .. 1 + public Single thrust; + + }; + + + public const byte MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT = 62; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)] + public struct mavlink_nav_controller_output_t + { + /// Current desired roll in degrees + public Single nav_roll; + /// Current desired pitch in degrees + public Single nav_pitch; + /// Current altitude error in meters + public Single alt_error; + /// Current airspeed error in meters/second + public Single aspd_error; + /// Current crosstrack error on x-y plane in meters + public Single xtrack_error; + /// Current desired heading in degrees + public Int16 nav_bearing; + /// Bearing to current MISSION/target in degrees + public Int16 target_bearing; + /// Distance to active MISSION in meters + public UInt16 wp_dist; + + }; + + + public const byte MAVLINK_MSG_ID_STATE_CORRECTION = 64; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)] + public struct mavlink_state_correction_t + { + /// x position error + public Single xErr; + /// y position error + public Single yErr; + /// z position error + public Single zErr; + /// roll error (radians) + public Single rollErr; + /// pitch error (radians) + public Single pitchErr; + /// yaw error (radians) + public Single yawErr; + /// x velocity + public Single vxErr; + /// y velocity + public Single vyErr; + /// z velocity + public Single vzErr; + + }; + + + public const byte MAVLINK_MSG_ID_REQUEST_DATA_STREAM = 66; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)] + public struct mavlink_request_data_stream_t + { + /// The requested interval between two messages of this type + public UInt16 req_message_rate; + /// The target requested to send the message stream. + public byte target_system; + /// The target requested to send the message stream. + public byte target_component; + /// The ID of the requested data stream + public byte req_stream_id; + /// 1 to start sending, 0 to stop sending. + public byte start_stop; + + }; + + + public const byte MAVLINK_MSG_ID_DATA_STREAM = 67; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)] + public struct mavlink_data_stream_t + { + /// The requested interval between two messages of this type + public UInt16 message_rate; + /// The ID of the requested data stream + public byte stream_id; + /// 1 stream is enabled, 0 stream is stopped. + public byte on_off; + + }; + + + public const byte MAVLINK_MSG_ID_MANUAL_CONTROL = 69; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=21)] + public struct mavlink_manual_control_t + { + /// roll + public Single roll; + /// pitch + public Single pitch; + /// yaw + public Single yaw; + /// thrust + public Single thrust; + /// The system to be controlled + public byte target; + /// roll control enabled auto:0, manual:1 + public byte roll_manual; + /// pitch auto:0, manual:1 + public byte pitch_manual; + /// yaw auto:0, manual:1 + public byte yaw_manual; + /// thrust auto:0, manual:1 + public byte thrust_manual; + + }; + + + public const byte MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE = 70; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] + public struct mavlink_rc_channels_override_t + { + /// RC channel 1 value, in microseconds + public UInt16 chan1_raw; + /// RC channel 2 value, in microseconds + public UInt16 chan2_raw; + /// RC channel 3 value, in microseconds + public UInt16 chan3_raw; + /// RC channel 4 value, in microseconds + public UInt16 chan4_raw; + /// RC channel 5 value, in microseconds + public UInt16 chan5_raw; + /// RC channel 6 value, in microseconds + public UInt16 chan6_raw; + /// RC channel 7 value, in microseconds + public UInt16 chan7_raw; + /// RC channel 8 value, in microseconds + public UInt16 chan8_raw; + /// System ID + public byte target_system; + /// Component ID + public byte target_component; + + }; + + + public const byte MAVLINK_MSG_ID_VFR_HUD = 74; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] + public struct mavlink_vfr_hud_t + { + /// Current airspeed in m/s + public Single airspeed; + /// Current ground speed in m/s + public Single groundspeed; + /// Current altitude (MSL), in meters + public Single alt; + /// Current climb rate in meters/second + public Single climb; + /// Current heading in degrees, in compass units (0..360, 0=north) + public Int16 heading; + /// Current throttle setting in integer percent, 0 to 100 + public UInt16 throttle; + + }; + + + public const byte MAVLINK_MSG_ID_COMMAND_LONG = 76; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=33)] + public struct mavlink_command_long_t + { + /// Parameter 1, as defined by MAV_CMD enum. + public Single param1; + /// Parameter 2, as defined by MAV_CMD enum. + public Single param2; + /// Parameter 3, as defined by MAV_CMD enum. + public Single param3; + /// Parameter 4, as defined by MAV_CMD enum. + public Single param4; + /// Parameter 5, as defined by MAV_CMD enum. + public Single param5; + /// Parameter 6, as defined by MAV_CMD enum. + public Single param6; + /// Parameter 7, as defined by MAV_CMD enum. + public Single param7; + /// Command ID, as defined by MAV_CMD enum. + public UInt16 command; + /// System which should execute the command + public byte target_system; + /// Component which should execute the command, 0 for all components + public byte target_component; + /// 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command) + public byte confirmation; + + }; + + + public const byte MAVLINK_MSG_ID_COMMAND_ACK = 77; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] + public struct mavlink_command_ack_t + { + /// Command ID, as defined by MAV_CMD enum. + public UInt16 command; + /// See MAV_RESULT enum + public byte result; + + }; + + + public const byte MAVLINK_MSG_ID_HIL_STATE = 90; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=56)] + public struct mavlink_hil_state_t + { + /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) + public UInt64 time_usec; + /// Roll angle (rad) + public Single roll; + /// Pitch angle (rad) + public Single pitch; + /// Yaw angle (rad) + public Single yaw; + /// Roll angular speed (rad/s) + public Single rollspeed; + /// Pitch angular speed (rad/s) + public Single pitchspeed; + /// Yaw angular speed (rad/s) + public Single yawspeed; + /// Latitude, expressed as * 1E7 + public Int32 lat; + /// Longitude, expressed as * 1E7 + public Int32 lon; + /// Altitude in meters, expressed as * 1000 (millimeters) + public Int32 alt; + /// Ground X Speed (Latitude), expressed as m/s * 100 + public Int16 vx; + /// Ground Y Speed (Longitude), expressed as m/s * 100 + public Int16 vy; + /// Ground Z Speed (Altitude), expressed as m/s * 100 + public Int16 vz; + /// X acceleration (mg) + public Int16 xacc; + /// Y acceleration (mg) + public Int16 yacc; + /// Z acceleration (mg) + public Int16 zacc; + + }; + + + public const byte MAVLINK_MSG_ID_HIL_CONTROLS = 91; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=42)] + public struct mavlink_hil_controls_t + { + /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) + public UInt64 time_usec; + /// Control output -1 .. 1 + public Single roll_ailerons; + /// Control output -1 .. 1 + public Single pitch_elevator; + /// Control output -1 .. 1 + public Single yaw_rudder; + /// Throttle 0 .. 1 + public Single throttle; + /// Aux 1, -1 .. 1 + public Single aux1; + /// Aux 2, -1 .. 1 + public Single aux2; + /// Aux 3, -1 .. 1 + public Single aux3; + /// Aux 4, -1 .. 1 + public Single aux4; + /// System mode (MAV_MODE) + public byte mode; + /// Navigation mode (MAV_NAV_MODE) + public byte nav_mode; + + }; + + + public const byte MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW = 92; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=33)] + public struct mavlink_hil_rc_inputs_raw_t + { + /// Timestamp (microseconds since UNIX epoch or microseconds since system boot) + public UInt64 time_usec; + /// RC channel 1 value, in microseconds + public UInt16 chan1_raw; + /// RC channel 2 value, in microseconds + public UInt16 chan2_raw; + /// RC channel 3 value, in microseconds + public UInt16 chan3_raw; + /// RC channel 4 value, in microseconds + public UInt16 chan4_raw; + /// RC channel 5 value, in microseconds + public UInt16 chan5_raw; + /// RC channel 6 value, in microseconds + public UInt16 chan6_raw; + /// RC channel 7 value, in microseconds + public UInt16 chan7_raw; + /// RC channel 8 value, in microseconds + public UInt16 chan8_raw; + /// RC channel 9 value, in microseconds + public UInt16 chan9_raw; + /// RC channel 10 value, in microseconds + public UInt16 chan10_raw; + /// RC channel 11 value, in microseconds + public UInt16 chan11_raw; + /// RC channel 12 value, in microseconds + public UInt16 chan12_raw; + /// Receive signal strength indicator, 0: 0%, 255: 100% + public byte rssi; + + }; + + + public const byte MAVLINK_MSG_ID_OPTICAL_FLOW = 100; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] + public struct mavlink_optical_flow_t + { + /// Timestamp (UNIX) + public UInt64 time_usec; + /// Ground distance in meters + public Single ground_distance; + /// Flow in pixels in x-sensor direction + public Int16 flow_x; + /// Flow in pixels in y-sensor direction + public Int16 flow_y; + /// Sensor ID + public byte sensor_id; + /// Optical flow quality / confidence. 0: bad, 255: maximum quality + public byte quality; + + }; + + + public const byte MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE = 101; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] + public struct mavlink_global_vision_position_estimate_t + { + /// Timestamp (milliseconds) + public UInt64 usec; + /// Global X position + public Single x; + /// Global Y position + public Single y; + /// Global Z position + public Single z; + /// Roll angle in rad + public Single roll; + /// Pitch angle in rad + public Single pitch; + /// Yaw angle in rad + public Single yaw; + + }; + + + public const byte MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE = 102; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] + public struct mavlink_vision_position_estimate_t + { + /// Timestamp (milliseconds) + public UInt64 usec; + /// Global X position + public Single x; + /// Global Y position + public Single y; + /// Global Z position + public Single z; + /// Roll angle in rad + public Single roll; + /// Pitch angle in rad + public Single pitch; + /// Yaw angle in rad + public Single yaw; + + }; + + + public const byte MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE = 103; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)] + public struct mavlink_vision_speed_estimate_t + { + /// Timestamp (milliseconds) + public UInt64 usec; + /// Global X speed + public Single x; + /// Global Y speed + public Single y; + /// Global Z speed + public Single z; + + }; + + + public const byte MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE = 104; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)] + public struct mavlink_vicon_position_estimate_t + { + /// Timestamp (milliseconds) + public UInt64 usec; + /// Global X position + public Single x; + /// Global Y position + public Single y; + /// Global Z position + public Single z; + /// Roll angle in rad + public Single roll; + /// Pitch angle in rad + public Single pitch; + /// Yaw angle in rad + public Single yaw; + + }; + + + public const byte MAVLINK_MSG_ID_MEMORY_VECT = 249; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)] + public struct mavlink_memory_vect_t + { + /// Starting address of the debug variables + public UInt16 address; + /// Version code of the type variable. 0=unknown, type ignored and assumed int16_t. 1=as below + public byte ver; + /// Type code of the memory variables. for ver = 1: 0=16 x int16_t, 1=16 x uint16_t, 2=16 x Q15, 3=16 x 1Q14 + public byte type; + /// Memory contents at specified address + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public byte[] value; + + }; + + + public const byte MAVLINK_MSG_ID_DEBUG_VECT = 250; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=30)] + public struct mavlink_debug_vect_t + { + /// Timestamp + public UInt64 time_usec; + /// x + public Single x; + /// y + public Single y; + /// z + public Single z; + /// Name + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public string name; + + }; + + + public const byte MAVLINK_MSG_ID_NAMED_VALUE_FLOAT = 251; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] + public struct mavlink_named_value_float_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// Floating point value + public Single value; + /// Name of the debug variable + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public string name; + + }; + + + public const byte MAVLINK_MSG_ID_NAMED_VALUE_INT = 252; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)] + public struct mavlink_named_value_int_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// Signed integer value + public Int32 value; + /// Name of the debug variable + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public string name; + + }; + + + public const byte MAVLINK_MSG_ID_STATUSTEXT = 253; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=51)] + public struct mavlink_statustext_t + { + /// Severity of status, 0 = info message, 255 = critical fault + public byte severity; + /// Status text message, without null termination character + [MarshalAs(UnmanagedType.ByValArray,SizeConst=50)] + public string text; + + }; + + + public const byte MAVLINK_MSG_ID_DEBUG = 254; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)] + public struct mavlink_debug_t + { + /// Timestamp (milliseconds since system boot) + public UInt32 time_boot_ms; + /// DEBUG value + public Single value; + /// index of debug variable + public byte ind; + + }; + + + public const byte MAVLINK_MSG_ID_EXTENDED_MESSAGE = 255; + [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)] + public struct mavlink_extended_message_t + { + /// System which should execute the command + public byte target_system; + /// Component which should execute the command, 0 for all components + public byte target_component; + /// Retransmission / ACK flags + public byte protocol_flags; + + }; + + } + #endif +} diff --git a/Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs b/Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs index c869616dcf..597333e768 100644 --- a/Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs +++ b/Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs @@ -5,10 +5,10 @@ using System.Runtime.InteropServices; namespace ArdupilotMega { -#if !MAVLINK10 + #if !MAVLINK10 partial class MAVLink { - public const string MAVLINK_BUILD_DATE = "Wed Apr 4 18:13:05 2012"; + public const string MAVLINK_BUILD_DATE = "Fri Apr 6 21:10:55 2012"; public const string MAVLINK_WIRE_PROTOCOL_VERSION = "0.9"; public const int MAVLINK_MAX_DIALECT_PAYLOAD_SIZE = 42; @@ -155,6 +155,51 @@ namespace ArdupilotMega }; + + /** @brief Data stream IDs. A data stream is not a fixed set of messages, but rather a recommendation to the autopilot software. Individual autopilots may or may not obey the recommended messages. */ + public enum MAV_DATA_STREAM + { + /// Enable all data streams | + ALL=0, + /// Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | + RAW_SENSORS=1, + /// Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | + EXTENDED_STATUS=2, + /// Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | + RC_CHANNELS=3, + /// Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | + RAW_CONTROLLER=4, + /// Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | + POSITION=6, + /// Dependent on the autopilot | + EXTRA1=10, + /// Dependent on the autopilot | + EXTRA2=11, + /// Dependent on the autopilot | + EXTRA3=12, + /// | + ENUM_END=13, + + }; + + /** @brief The ROI (region of interest) for the vehicle. This can be be used by the vehicle for camera/vehicle attitude alignment (see MAV_CMD_NAV_ROI). */ + public enum MAV_ROI + { + /// No region of interest. | + NONE=0, + /// Point toward next waypoint. | + WPNEXT=1, + /// Point toward given waypoint. | + WPINDEX=2, + /// Point toward fixed location. | + LOCATION=3, + /// Point toward of given id. | + TARGET=4, + /// | + ENUM_END=5, + + }; + public const byte MAVLINK_MSG_ID_SENSOR_OFFSETS = 150; [StructLayout(LayoutKind.Sequential,Pack=1,Size=42)] @@ -1780,175 +1825,10 @@ namespace ArdupilotMega /// index of debug variable public byte ind; /// DEBUG value - public Single value; }; -public enum MAV_CLASS - { - MAV_CLASS_GENERIC = 0, /// Generic autopilot, full support for everything - MAV_CLASS_PIXHAWK = 1, /// PIXHAWK autopilot, http://pixhawk.ethz.ch - MAV_CLASS_SLUGS = 2, /// SLUGS autopilot, http://slugsuav.soe.ucsc.edu - MAV_CLASS_ARDUPILOTMEGA = 3, /// ArduPilotMega / ArduCopter, http://diydrones.com - MAV_CLASS_OPENPILOT = 4, /// OpenPilot, http://openpilot.org - MAV_CLASS_GENERIC_MISSION_WAYPOINTS_ONLY = 5, /// Generic autopilot only supporting simple waypoints - MAV_CLASS_GENERIC_MISSION_NAVIGATION_ONLY = 6, /// Generic autopilot supporting waypoints and other simple navigation commands - MAV_CLASS_GENERIC_MISSION_FULL = 7, /// Generic autopilot supporting the full mission command set - MAV_CLASS_NONE = 8, /// No valid autopilot - MAV_CLASS_NB /// Number of autopilot classes - }; - - public enum MAV_ACTION - { - MAV_ACTION_HOLD = 0, - MAV_ACTION_MOTORS_START = 1, - MAV_ACTION_LAUNCH = 2, - MAV_ACTION_RETURN = 3, - MAV_ACTION_EMCY_LAND = 4, - MAV_ACTION_EMCY_KILL = 5, - MAV_ACTION_CONFIRM_KILL = 6, - MAV_ACTION_CONTINUE = 7, - MAV_ACTION_MOTORS_STOP = 8, - MAV_ACTION_HALT = 9, - MAV_ACTION_SHUTDOWN = 10, - MAV_ACTION_REBOOT = 11, - MAV_ACTION_SET_MANUAL = 12, - MAV_ACTION_SET_AUTO = 13, - MAV_ACTION_STORAGE_READ = 14, - MAV_ACTION_STORAGE_WRITE = 15, - MAV_ACTION_CALIBRATE_RC = 16, - MAV_ACTION_CALIBRATE_GYRO = 17, - MAV_ACTION_CALIBRATE_MAG = 18, - MAV_ACTION_CALIBRATE_ACC = 19, - MAV_ACTION_CALIBRATE_PRESSURE = 20, - MAV_ACTION_REC_START = 21, - MAV_ACTION_REC_PAUSE = 22, - MAV_ACTION_REC_STOP = 23, - MAV_ACTION_TAKEOFF = 24, - MAV_ACTION_NAVIGATE = 25, - MAV_ACTION_LAND = 26, - MAV_ACTION_LOITER = 27, - MAV_ACTION_SET_ORIGIN = 28, - MAV_ACTION_RELAY_ON = 29, - MAV_ACTION_RELAY_OFF = 30, - MAV_ACTION_GET_IMAGE = 31, - MAV_ACTION_VIDEO_START = 32, - MAV_ACTION_VIDEO_STOP = 33, - MAV_ACTION_RESET_MAP = 34, - MAV_ACTION_RESET_PLAN = 35, - MAV_ACTION_DELAY_BEFORE_COMMAND = 36, - MAV_ACTION_ASCEND_AT_RATE = 37, - MAV_ACTION_CHANGE_MODE = 38, - MAV_ACTION_LOITER_MAX_TURNS = 39, - MAV_ACTION_LOITER_MAX_TIME = 40, - MAV_ACTION_START_HILSIM = 41, - MAV_ACTION_STOP_HILSIM = 42, - MAV_ACTION_NB /// Number of MAV actions - }; - - public enum MAV_MODE - { - MAV_MODE_UNINIT = 0, /// System is in undefined state - MAV_MODE_LOCKED = 1, /// Motors are blocked, system is safe - MAV_MODE_MANUAL = 2, /// System is allowed to be active, under manual (RC) control - MAV_MODE_GUIDED = 3, /// System is allowed to be active, under autonomous control, manual setpoint - MAV_MODE_AUTO = 4, /// System is allowed to be active, under autonomous control and navigation - MAV_MODE_TEST1 = 5, /// Generic test mode, for custom use - MAV_MODE_TEST2 = 6, /// Generic test mode, for custom use - MAV_MODE_TEST3 = 7, /// Generic test mode, for custom use - MAV_MODE_READY = 8, /// System is ready, motors are unblocked, but controllers are inactive - MAV_MODE_RC_TRAINING = 9 /// System is blocked, only RC valued are read and reported back - }; - - public enum MAV_STATE - { - MAV_STATE_UNINIT = 0, - MAV_STATE_BOOT, - MAV_STATE_CALIBRATING, - MAV_STATE_STANDBY, - MAV_STATE_ACTIVE, - MAV_STATE_CRITICAL, - MAV_STATE_EMERGENCY, - MAV_STATE_HILSIM, - MAV_STATE_POWEROFF - }; - - public enum MAV_NAV - { - MAV_NAV_GROUNDED = 0, - MAV_NAV_LIFTOFF, - MAV_NAV_HOLD, - MAV_NAV_WAYPOINT, - MAV_NAV_VECTOR, - MAV_NAV_RETURNING, - MAV_NAV_LANDING, - MAV_NAV_LOST, - MAV_NAV_LOITER, - MAV_NAV_FREE_DRIFT - }; - - public enum MAV_TYPE - { - MAV_GENERIC = 0, - MAV_FIXED_WING = 1, - MAV_QUADROTOR = 2, - MAV_COAXIAL = 3, - MAV_HELICOPTER = 4, - MAV_GROUND = 5, - OCU = 6, - MAV_AIRSHIP = 7, - MAV_FREE_BALLOON = 8, - MAV_ROCKET = 9, - UGV_GROUND_ROVER = 10, - UGV_SURFACE_SHIP = 11 - }; - - public enum MAV_AUTOPILOT_TYPE - { - MAV_AUTOPILOT_GENERIC = 0, - MAV_AUTOPILOT_PIXHAWK = 1, - MAV_AUTOPILOT_SLUGS = 2, - MAV_AUTOPILOT_ARDUPILOTMEGA = 3, - MAV_AUTOPILOT_NONE = 4 - }; - - public enum MAV_COMPONENT - { - MAV_COMP_ID_GPS, - MAV_COMP_ID_WAYPOINTPLANNER, - MAV_COMP_ID_BLOBTRACKER, - MAV_COMP_ID_PATHPLANNER, - MAV_COMP_ID_AIRSLAM, - MAV_COMP_ID_MAPPER, - MAV_COMP_ID_CAMERA, - MAV_COMP_ID_IMU = 200, - MAV_COMP_ID_IMU_2 = 201, - MAV_COMP_ID_IMU_3 = 202, - MAV_COMP_ID_UDP_BRIDGE = 240, - MAV_COMP_ID_UART_BRIDGE = 241, - MAV_COMP_ID_SYSTEM_CONTROL = 250 - }; - - public enum MAV_FRAME - { - MAV_FRAME_GLOBAL = 0, - MAV_FRAME_LOCAL = 1, - MAV_FRAME_MISSION = 2, - MAV_FRAME_GLOBAL_RELATIVE_ALT = 3, - MAV_FRAME_LOCAL_ENU = 4 - }; - - public enum MAV_DATA_STREAM - { - MAV_DATA_STREAM_ALL=0, /* Enable all data streams | */ - MAV_DATA_STREAM_RAW_SENSORS=1, /* Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | */ - MAV_DATA_STREAM_EXTENDED_STATUS=2, /* Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | */ - MAV_DATA_STREAM_RC_CHANNELS=3, /* Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | */ - MAV_DATA_STREAM_RAW_CONTROLLER=4, /* Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | */ - MAV_DATA_STREAM_POSITION=6, /* Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | */ - MAV_DATA_STREAM_EXTRA1=10, /* Dependent on the autopilot | */ - MAV_DATA_STREAM_EXTRA2=11, /* Dependent on the autopilot | */ - MAV_DATA_STREAM_EXTRA3=12, /* Dependent on the autopilot | */ - MAV_DATA_STREAM_ENUM_END=13, /* | */ - }; + public Single value; + + }; } -#endif + #endif } diff --git a/Tools/ArdupilotMegaPlanner/MainV2.cs b/Tools/ArdupilotMegaPlanner/MainV2.cs index ab59bc95f3..62a16e89d4 100644 --- a/Tools/ArdupilotMegaPlanner/MainV2.cs +++ b/Tools/ArdupilotMegaPlanner/MainV2.cs @@ -993,8 +993,8 @@ namespace ArdupilotMega MAVLink.mavlink_heartbeat_t htb = new MAVLink.mavlink_heartbeat_t(); #if MAVLINK10 - htb.type = (byte)MAVLink.MAV_TYPE.MAV_TYPE_GCS; - htb.autopilot = (byte)MAVLink.MAV_AUTOPILOT.MAV_AUTOPILOT_ARDUPILOTMEGA; + htb.type = (byte)MAVLink.MAV_TYPE.GCS; + htb.autopilot = (byte)MAVLink.MAV_AUTOPILOT.ARDUPILOTMEGA; htb.mavlink_version = 3; #else htb.type = (byte)MAVLink.MAV_TYPE.MAV_GENERIC; @@ -1896,7 +1896,7 @@ namespace ArdupilotMega } if (keyData == (Keys.Control | Keys.W)) // test { - Form frm = new GCSViews.ConfigurationView.Setup(); + Form frm = new GCSViews.ConfigurationView.Configuration(); ThemeManager.ApplyThemeTo(frm); frm.Show(); return true; diff --git a/Tools/ArdupilotMegaPlanner/Msi/wix.pdb b/Tools/ArdupilotMegaPlanner/Msi/wix.pdb index f59c64535f3ced7d0ab770ba42bb6f2564d7dca8..69650bdca38f786356ab17d4e7a359ac63458031 100644 GIT binary patch delta 511 zcmZpe!`Lu~aRUpNL|;R_KO+MJ!+xE}S5K4;T{#y04W&&s#+{6#kN z$+R#r8cd!ncbu_xa zVr-lIS}PqSr=1K`xLtd%5OcuUIg`un5}6%<^liIDmWt2ZjFTPg)!4Z~4q;%M=qNn- zfH4az8;~Ok<5AOI_aFu`mkAln#;4`qVoLV+BRK_GyxFB&L@%giL8oEk_I z5HK+?)I(T65@bjR5cfhwfRbDzXREDqMJ@{=9x)#@|zfDU0`0})_Q zTm)k=GNcxR#6@8O3@NEFCL=?BvNVvx4i#Wzu!=#*rKBnWImU3gVkEi5l2D*H%s$3? z28%?5#{8maAO~TnUNS;XuRICJQG*IFF(eis@{kNI%I^Zo XfkFoafDSF$e8Rzo8BeUcJmCZYUJ+mh diff --git a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs index d2c9210b85..3e05d4d380 100644 --- a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs +++ b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs @@ -34,5 +34,5 @@ using System.Resources; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.1.61")] +[assembly: AssemblyFileVersion("1.1.62")] [assembly: NeutralResourcesLanguageAttribute("")] diff --git a/Tools/ArdupilotMegaPlanner/RAW_Sensor.cs b/Tools/ArdupilotMegaPlanner/RAW_Sensor.cs index 04c2427d1b..33db53e8f2 100644 --- a/Tools/ArdupilotMegaPlanner/RAW_Sensor.cs +++ b/Tools/ArdupilotMegaPlanner/RAW_Sensor.cs @@ -217,7 +217,7 @@ namespace ArdupilotMega MainV2.cs.ratesensors = 3; // hardcode 3 hz - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_SENSORS, MainV2.cs.ratesensors); // request raw sensor + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RAW_SENSORS, MainV2.cs.ratesensors); // request raw sensor } catch { } } @@ -242,12 +242,12 @@ namespace ArdupilotMega //comPort.stopall(true); // ensure off Console.WriteLine("Req streams {0} {1}", comPort.bps, DateTime.Now); - //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTENDED_STATUS, 0); // mode gps raw - //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_POSITION, 3); // request location - //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA1, 3); // request attitude - //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA2, 3); // request vfr - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_SENSORS, MainV2.cs.ratesensors); // request raw sensor - //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RC_CHANNELS, 3); // request rc info + //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.EXTENDED_STATUS, 0); // mode gps raw + //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.POSITION, 3); // request location + //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.EXTRA1, 3); // request attitude + //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.EXTRA2, 3); // request vfr + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RAW_SENSORS, MainV2.cs.ratesensors); // request raw sensor + //comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RC_CHANNELS, 3); // request rc info } catch { @@ -260,7 +260,7 @@ namespace ArdupilotMega private void CMB_rawupdaterate_SelectedIndexChanged(object sender, EventArgs e) { MainV2.cs.ratesensors = (byte)int.Parse(CMB_rawupdaterate.Text); - comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RAW_SENSORS, (byte)int.Parse(CMB_rawupdaterate.Text)); // request raw sensor + comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.RAW_SENSORS, (byte)int.Parse(CMB_rawupdaterate.Text)); // request raw sensor } System.IO.StreamWriter sw = null; diff --git a/Tools/ArdupilotMegaPlanner/SerialInput.cs b/Tools/ArdupilotMegaPlanner/SerialInput.cs index 5a1d5542e3..948257f7c1 100644 --- a/Tools/ArdupilotMegaPlanner/SerialInput.cs +++ b/Tools/ArdupilotMegaPlanner/SerialInput.cs @@ -159,7 +159,7 @@ namespace ArdupilotMega { MainV2.giveComport = true; - MainV2.comPort.setWP(gotohere, 0, MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL_RELATIVE_ALT, (byte)2); + MainV2.comPort.setWP(gotohere, 0, MAVLink.MAV_FRAME.GLOBAL_RELATIVE_ALT, (byte)2); GCSViews.FlightData.GuidedModeWP = new PointLatLngAlt(gotohere); diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb index 11248adcb80cb55ccae9eff1ab698a7a1c19f950..3f6081a93f2ba8c777b3139118dd039ac6597ab2 100644 GIT binary patch delta 363860 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

%x{Wg&RVH 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≶5cv^I15|=?f{9?Fauy6 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