Mission Planner 1.2

Enable Mount config screen
Add Quick View (double click to change)
fix mono updater issue
RFD900 transmit values Mod
new mavlink controls (wip)
This commit is contained in:
Michael Oborne 2012-07-25 21:44:24 +08:00
parent 5318da9e0e
commit 11a56c4df1
38 changed files with 3504 additions and 165 deletions

View File

@ -251,6 +251,21 @@
<Compile Include="Controls\MainSwitcher.Designer.cs">
<DependentUpon>MainSwitcher.cs</DependentUpon>
</Compile>
<Compile Include="Controls\MavlinkCheckBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\MavlinkComboBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\MavlinkNumericUpDown.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\QuickView.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\QuickView.Designer.cs">
<DependentUpon>QuickView.cs</DependentUpon>
</Compile>
<Compile Include="Delta.cs" />
<Compile Include="GCSViews\ConfigurationView\ConfigAP_Limits.cs">
<SubType>UserControl</SubType>
@ -258,6 +273,12 @@
<Compile Include="GCSViews\ConfigurationView\ConfigAP_Limits.Designer.cs">
<DependentUpon>ConfigAP_Limits.cs</DependentUpon>
</Compile>
<Compile Include="GCSViews\ConfigurationView\ConfigMount.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="GCSViews\ConfigurationView\ConfigMount.designer.cs">
<DependentUpon>ConfigMount.cs</DependentUpon>
</Compile>
<Compile Include="Presenter\ConfigCameraStabPresenter.cs" />
<Compile Include="Controls\HSI.cs">
<SubType>UserControl</SubType>
@ -462,11 +483,11 @@
<Compile Include="Radio\IHex.cs" />
<Compile Include="Mavlink\MavlinkCRC.cs" />
<Compile Include="Mavlink\MavlinkUtil.cs" />
<Compile Include="SerialInput.cs">
<Compile Include="FollowMe.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SerialInput.Designer.cs">
<DependentUpon>SerialInput.cs</DependentUpon>
<Compile Include="FollowMe.Designer.cs">
<DependentUpon>FollowMe.cs</DependentUpon>
</Compile>
<Compile Include="GCSViews\Firmware.Designer.cs">
<DependentUpon>Firmware.cs</DependentUpon>
@ -661,6 +682,9 @@
<EmbeddedResource Include="Controls\OpenGLtest.resx">
<DependentUpon>OpenGLtest.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\QuickView.resx">
<DependentUpon>QuickView.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.es-ES.resx">
<DependentUpon>ConfigAccelerometerCalibrationQuad.cs</DependentUpon>
</EmbeddedResource>
@ -841,6 +865,9 @@
<EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAP_Limits.resx">
<DependentUpon>ConfigAP_Limits.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GCSViews\ConfigurationView\ConfigMount.resx">
<DependentUpon>ConfigMount.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GCSViews\ConfigurationView\Setup.resx">
<DependentUpon>Setup.cs</DependentUpon>
</EmbeddedResource>
@ -893,14 +920,14 @@
<EmbeddedResource Include="RAW_Sensor.es-ES.resx">
<DependentUpon>RAW_Sensor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SerialInput.es-ES.resx">
<DependentUpon>SerialInput.cs</DependentUpon>
<EmbeddedResource Include="FollowMe.es-ES.resx">
<DependentUpon>FollowMe.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SerialInput.pl.resx">
<DependentUpon>SerialInput.cs</DependentUpon>
<EmbeddedResource Include="FollowMe.pl.resx">
<DependentUpon>FollowMe.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SerialInput.resx">
<DependentUpon>SerialInput.cs</DependentUpon>
<EmbeddedResource Include="FollowMe.resx">
<DependentUpon>FollowMe.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GCSViews\Firmware.fr.resx">
<DependentUpon>Firmware.cs</DependentUpon>
@ -1209,6 +1236,7 @@
<None Include="Resources\cameraGimalRoll1.png" />
<None Include="Resources\frames_plus.png" />
<None Include="Resources\frames_x.png" />
<None Include="Resources\cameraGimalYaw.png" />
<Content Include="Resources\MAVCmd.zh-Hans.txt" />
<None Include="Resources\MAVParam.txt" />
<Content Include="Resources\MAVParam.zh-Hans.txt" />
@ -1285,7 +1313,6 @@
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>"$(TargetDir)version.exe" "$(TargetPath)" &gt; "$(TargetDir)version.txt"</PostBuildEvent>

View File

@ -60,7 +60,6 @@ namespace System.Windows.Forms
Width = textSize.Width + 50,
Height = textSize.Height + 100,
TopMost = true,
TopLevel = true
};
Rectangle screenRectangle = msgBoxFrm.RectangleToScreen(msgBoxFrm.ClientRectangle);

View File

@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
namespace ArdupilotMega.Controls
{
public class MavlinkCheckBox : CheckBox
{
[System.ComponentModel.Browsable(true)]
public float OnValue { get; set; }
[System.ComponentModel.Browsable(true)]
public float OffValue { get; set; }
[System.ComponentModel.Browsable(true)]
public string ParamName { get; set; }
[System.ComponentModel.Browsable(true)]
public Hashtable param { get; set; }
public MavlinkCheckBox()
{
OnValue = 1;
OffValue = 0;
this.Enabled = false;
}
public void setup(float OnValue, float OffValue, string paramname, Hashtable paramlist)
{
base.CheckedChanged -= MavlinkCheckBox_CheckedChanged;
this.OnValue = OnValue;
this.OffValue = OffValue;
this.ParamName = paramname;
this.param = paramlist;
if (paramlist.ContainsKey(paramname))
{
this.Enabled = true;
if ((float)paramlist[paramname] == OnValue)
{
this.Checked = true;
}
else if ((float)paramlist[paramname] == OffValue)
{
this.Checked = false;
}
else
{
this.CheckState = System.Windows.Forms.CheckState.Indeterminate;
}
}
base.CheckedChanged += new EventHandler(MavlinkCheckBox_CheckedChanged);
}
void MavlinkCheckBox_CheckedChanged(object sender, EventArgs e)
{
if (this.Checked)
{
if (!MainV2.comPort.setParam(ParamName, OnValue))
{
CustomMessageBox.Show("Set "+ParamName + " Failed!");
}
}
else
{
if (!MainV2.comPort.setParam(ParamName, OffValue))
{
CustomMessageBox.Show("Set " + ParamName + " Failed!");
}
}
}
}
}

View File

@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
namespace ArdupilotMega.Controls
{
public class MavlinkComboBox : ComboBox
{
public new event EventHandler SelectedIndexChanged;
[System.ComponentModel.Browsable(true)]
public string ParamName { get; set; }
[System.ComponentModel.Browsable(true)]
public Hashtable param { get; set; }
Type _source;
string paramname2 = "";
public MavlinkComboBox()
{
this.Enabled = false;
this.DropDownStyle = ComboBoxStyle.DropDownList;
}
public void setup(Type source, string paramname, Hashtable paramlist, string paramname2 = "")
{
base.SelectedIndexChanged -= MavlinkComboBox_SelectedIndexChanged;
_source = source;
this.DataSource = Enum.GetNames(source);
this.ParamName = paramname;
this.param = paramlist;
this.paramname2 = paramname2;
if (paramlist.ContainsKey(paramname))
{
this.Enabled = true;
this.Text = Enum.GetName(source, (Int32)(float)paramlist[paramname]);
}
base.SelectedIndexChanged += new EventHandler(MavlinkComboBox_SelectedIndexChanged);
}
void MavlinkComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.SelectedIndexChanged != null)
this.SelectedIndexChanged(sender,e);
if (!MainV2.comPort.setParam(ParamName, (float)(Int32)Enum.Parse(_source, this.Text)))
{
CustomMessageBox.Show("Set " + ParamName + " Failed!");
}
if (paramname2 != "")
{
if (!MainV2.comPort.setParam(paramname2, (float)(Int32)Enum.Parse(_source, this.Text) > 0 ? 1: 0))
{
CustomMessageBox.Show("Set " + paramname2 + " Failed!");
}
}
}
}
}

View File

@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
namespace ArdupilotMega.Controls
{
public class MavlinkNumericUpDown : NumericUpDown
{
[System.ComponentModel.Browsable(true)]
public float Min { get; set; }
[System.ComponentModel.Browsable(true)]
public float Max { get; set; }
[System.ComponentModel.Browsable(true)]
public string ParamName { get; set; }
[System.ComponentModel.Browsable(true)]
public Hashtable param { get; set; }
float _scale = 1;
public MavlinkNumericUpDown()
{
Min = 0;
Max = 1;
this.Enabled = false;
}
public void setup(float Min, float Max, float Scale, float Increment, string paramname, Hashtable paramlist)
{
this.ValueChanged -= MavlinkNumericUpDown_ValueChanged;
_scale = Scale;
this.Minimum = (decimal)(Min);
this.Maximum = (decimal)(Max);
this.Increment = (decimal)(Increment);
this.ParamName = paramname;
this.param = paramlist;
if (paramlist.ContainsKey(paramname))
{
this.Enabled = true;
decimal value = (decimal)((float)paramlist[paramname] / _scale);
if (value < this.Minimum)
this.Minimum = value;
if (value > this.Maximum)
this.Maximum = value;
this.Value = value;
}
else
{
this.Enabled = false;
}
this.ValueChanged += new EventHandler(MavlinkNumericUpDown_ValueChanged);
}
void MavlinkNumericUpDown_ValueChanged(object sender, EventArgs e)
{
if (!MainV2.comPort.setParam(ParamName, (float)this.Value * _scale))
{
CustomMessageBox.Show("Set " + ParamName + " Failed!");
}
}
}
}

View File

@ -0,0 +1,92 @@
namespace ArdupilotMega.Controls
{
partial class QuickView
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.labelWithPseudoOpacity1 = new ArdupilotMega.Controls.LabelWithPseudoOpacity();
this.labelWithPseudoOpacity2 = new ArdupilotMega.Controls.LabelWithPseudoOpacity();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// labelWithPseudoOpacity1
//
this.labelWithPseudoOpacity1.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelWithPseudoOpacity1.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelWithPseudoOpacity1.Location = new System.Drawing.Point(3, 0);
this.labelWithPseudoOpacity1.Name = "labelWithPseudoOpacity1";
this.labelWithPseudoOpacity1.Size = new System.Drawing.Size(161, 55);
this.labelWithPseudoOpacity1.TabIndex = 0;
this.labelWithPseudoOpacity1.Text = "Altitude:";
this.labelWithPseudoOpacity1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// labelWithPseudoOpacity2
//
this.labelWithPseudoOpacity2.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelWithPseudoOpacity2.Font = new System.Drawing.Font("Microsoft Sans Serif", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelWithPseudoOpacity2.Location = new System.Drawing.Point(170, 0);
this.labelWithPseudoOpacity2.Name = "labelWithPseudoOpacity2";
this.labelWithPseudoOpacity2.Size = new System.Drawing.Size(162, 55);
this.labelWithPseudoOpacity2.TabIndex = 1;
this.labelWithPseudoOpacity2.Text = "0.0";
this.labelWithPseudoOpacity2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 2;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.Controls.Add(this.labelWithPseudoOpacity2, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.labelWithPseudoOpacity1, 0, 0);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 1;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(335, 55);
this.tableLayoutPanel1.TabIndex = 2;
//
// QuickView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.tableLayoutPanel1);
this.Name = "QuickView";
this.Size = new System.Drawing.Size(335, 55);
this.tableLayoutPanel1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private LabelWithPseudoOpacity labelWithPseudoOpacity1;
private LabelWithPseudoOpacity labelWithPseudoOpacity2;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
}
}

View File

@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ArdupilotMega.Controls
{
public partial class QuickView : UserControl
{
[System.ComponentModel.Browsable(true)]
public string desc { get { return labelWithPseudoOpacity1.Text; } set { labelWithPseudoOpacity1.Text = value; } }
[System.ComponentModel.Browsable(true)]
public string number { get { return labelWithPseudoOpacity2.Text; } set { labelWithPseudoOpacity2.Text = value; } }
[System.ComponentModel.Browsable(true)]
public Color numberColor { get { return labelWithPseudoOpacity2.ForeColor; } set { labelWithPseudoOpacity2.ForeColor = value; } }
public QuickView()
{
InitializeComponent();
labelWithPseudoOpacity1.DoubleClick += new EventHandler(labelWithPseudoOpacity1_DoubleClick);
labelWithPseudoOpacity2.DoubleClick += new EventHandler(labelWithPseudoOpacity2_DoubleClick);
}
void labelWithPseudoOpacity2_DoubleClick(object sender, EventArgs e)
{
this.OnDoubleClick(e);
}
void labelWithPseudoOpacity1_DoubleClick(object sender, EventArgs e)
{
this.OnDoubleClick(e);
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -132,7 +132,7 @@ namespace ArdupilotMega
public float nav_bearing { get; set; }
public float target_bearing { get; set; }
public float wp_dist { get { return (_wpdist * multiplierdist); } set { _wpdist = value; } }
public float alt_error { get { return _alt_error * multiplierdist; } set { if (_alt_error == value) return; _alt_error = value; _targetalt = _targetalt * 0.5f + (float)Math.Round(alt + alt_error, 0) * 0.5f; Console.WriteLine(_targetalt); } }
public float alt_error { get { return _alt_error * multiplierdist; } set { if (_alt_error == value) return; _alt_error = value; _targetalt = _targetalt * 0.5f + (float)Math.Round(alt + alt_error, 0) * 0.5f; } }
public float ber_error { get { return (target_bearing - yaw); } set { } }
public float aspd_error { get { return _aspd_error * multiplierspeed; } set { if (_aspd_error == value) return; _aspd_error = value; _targetairspeed = _targetairspeed * 0.5f + (float)Math.Round(airspeed + aspd_error / 100, 0) * 0.5f; } }
public float xtrack_error { get; set; }
@ -594,9 +594,6 @@ namespace ArdupilotMega
case (byte)(100 + Common.ac2modes.LAND):
mode = EnumTranslator.GetDisplayText(Common.ac2modes.LAND);
break;
case (byte)(100 + Common.ac2modes.APPROACH):
mode = EnumTranslator.GetDisplayText(Common.ac2modes.APPROACH);
break;
case (byte)(100 + Common.ac2modes.POSITION):
mode = EnumTranslator.GetDisplayText(Common.ac2modes.POSITION);
break;

View File

@ -0,0 +1,134 @@
namespace ArdupilotMega
{
partial class FollowMe
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FollowMe));
this.CMB_serialport = new System.Windows.Forms.ComboBox();
this.BUT_connect = new ArdupilotMega.Controls.MyButton();
this.CMB_baudrate = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.LBL_location = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// CMB_serialport
//
this.CMB_serialport.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_serialport.FormattingEnabled = true;
this.CMB_serialport.Location = new System.Drawing.Point(13, 13);
this.CMB_serialport.Name = "CMB_serialport";
this.CMB_serialport.Size = new System.Drawing.Size(121, 21);
this.CMB_serialport.TabIndex = 0;
//
// BUT_connect
//
this.BUT_connect.Location = new System.Drawing.Point(279, 12);
this.BUT_connect.Name = "BUT_connect";
this.BUT_connect.Size = new System.Drawing.Size(75, 23);
this.BUT_connect.TabIndex = 1;
this.BUT_connect.Text = "Connect";
this.BUT_connect.UseVisualStyleBackColor = true;
this.BUT_connect.Click += new System.EventHandler(this.BUT_connect_Click);
//
// CMB_baudrate
//
this.CMB_baudrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_baudrate.FormattingEnabled = true;
this.CMB_baudrate.Items.AddRange(new object[] {
"4800",
"9600",
"14400",
"19200",
"28800",
"38400",
"57600",
"115200"});
this.CMB_baudrate.Location = new System.Drawing.Point(140, 12);
this.CMB_baudrate.Name = "CMB_baudrate";
this.CMB_baudrate.Size = new System.Drawing.Size(121, 21);
this.CMB_baudrate.TabIndex = 2;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(90, 47);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(187, 13);
this.label1.TabIndex = 3;
this.label1.Text = "Pick the Nmea gps port and baud rate\r\n";
//
// LBL_location
//
this.LBL_location.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBL_location.Location = new System.Drawing.Point(3, 64);
this.LBL_location.Name = "LBL_location";
this.LBL_location.Size = new System.Drawing.Size(365, 59);
this.LBL_location.TabIndex = 4;
this.LBL_location.Text = "0,0,0";
//
// textBox1
//
this.textBox1.Enabled = false;
this.textBox1.Location = new System.Drawing.Point(19, 126);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(335, 133);
this.textBox1.TabIndex = 5;
this.textBox1.Text = resources.GetString("textBox1.Text");
//
// SerialInput
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(369, 300);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.LBL_location);
this.Controls.Add(this.label1);
this.Controls.Add(this.CMB_baudrate);
this.Controls.Add(this.BUT_connect);
this.Controls.Add(this.CMB_serialport);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "SerialInput";
this.Text = "Follow Me";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SerialOutput_FormClosing);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ComboBox CMB_serialport;
private ArdupilotMega.Controls.MyButton BUT_connect;
private System.Windows.Forms.ComboBox CMB_baudrate;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label LBL_location;
private System.Windows.Forms.TextBox textBox1;
}
}

View File

@ -0,0 +1,225 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace ArdupilotMega
{
public partial class FollowMe : Form
{
System.Threading.Thread t12;
static bool threadrun = false;
static internal SerialPort comPort = new SerialPort();
static internal PointLatLngAlt lastgotolocation = new PointLatLngAlt(0, 0, 0, "Goto last");
static internal PointLatLngAlt gotolocation = new PointLatLngAlt(0, 0, 0, "Goto");
static internal int intalt = 100;
public FollowMe()
{
InitializeComponent();
CMB_serialport.DataSource = SerialPort.GetPortNames();
if (threadrun)
{
BUT_connect.Text = "Stop";
}
}
private void BUT_connect_Click(object sender, EventArgs e)
{
if (comPort.IsOpen)
{
threadrun = false;
comPort.Close();
BUT_connect.Text = "Connect";
}
else
{
try
{
comPort.PortName = CMB_serialport.Text;
}
catch { CustomMessageBox.Show("Invalid PortName"); return; }
try {
comPort.BaudRate = int.Parse(CMB_baudrate.Text);
} catch {CustomMessageBox.Show("Invalid BaudRate"); return;}
try {
comPort.Open();
} catch {CustomMessageBox.Show("Error Connecting\nif using com0com please rename the ports to COM??"); return;}
string alt = "100";
if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2)
{
alt = (10 * MainV2.cs.multiplierdist).ToString("0");
}
else
{
alt = (100 * MainV2.cs.multiplierdist).ToString("0");
}
if (DialogResult.Cancel == Common.InputBox("Enter Alt", "Enter Alt (relative to home alt)", ref alt))
return;
intalt = (int)(100 * MainV2.cs.multiplierdist);
if (!int.TryParse(alt, out intalt))
{
CustomMessageBox.Show("Bad Alt");
return;
}
t12 = new System.Threading.Thread(new System.Threading.ThreadStart(mainloop))
{
IsBackground = true,
Name = "Nmea Input"
};
t12.Start();
BUT_connect.Text = "Stop";
}
}
void mainloop()
{
DateTime nextsend = DateTime.Now;
threadrun = true;
while (threadrun)
{
try
{
string line = comPort.ReadLine();
//string line = string.Format("$GP{0},{1:HHmmss},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},", "GGA", DateTime.Now.ToUniversalTime(), Math.Abs(lat * 100), MainV2.cs.lat < 0 ? "S" : "N", Math.Abs(lng * 100), MainV2.cs.lng < 0 ? "W" : "E", MainV2.cs.gpsstatus, MainV2.cs.satcount, MainV2.cs.gpshdop, MainV2.cs.alt, "M", 0, "M", "");
if (line.StartsWith("$GPGGA")) //
{
string[] items = line.Trim().Split(',','*');
if (items[15] != GetChecksum(line.Trim()))
{
Console.WriteLine("Bad Nmea line " + items[15] + " vs " + GetChecksum(line.Trim()));
continue;
}
if (items[6] == "0")
{
Console.WriteLine("No Fix");
continue;
}
gotolocation.Lat = double.Parse(items[2]) / 100.0;
gotolocation.Lat = (int)gotolocation.Lat + ((gotolocation.Lat - (int)gotolocation.Lat) / 0.60);
if (items[3] == "S")
gotolocation.Lat *= -1;
gotolocation.Lng = double.Parse(items[4]) / 100.0;
gotolocation.Lng = (int)gotolocation.Lng + ((gotolocation.Lng - (int)gotolocation.Lng) / 0.60);
if (items[5] == "W")
gotolocation.Lng *= -1;
gotolocation.Alt = intalt; // double.Parse(line.Substring(c9, c10 - c9 - 1)) +
gotolocation.Tag = "Sats "+ items[7] + " hdop " + items[8] ;
}
if (DateTime.Now > nextsend && gotolocation.Lat != 0 && gotolocation.Lng != 0 && gotolocation.Alt != 0) // 200 * 10 = 2 sec /// lastgotolocation != gotolocation &&
{
nextsend = DateTime.Now.AddSeconds(2);
Console.WriteLine("Sending follow wp " +DateTime.Now.ToString("h:MM:ss")+" "+ gotolocation.Lat + " " + gotolocation.Lng + " " +gotolocation.Alt);
lastgotolocation = new PointLatLngAlt(gotolocation);
Locationwp gotohere = new Locationwp();
gotohere.id = (byte)MAVLink.MAV_CMD.WAYPOINT;
gotohere.alt = (float)(gotolocation.Alt);
gotohere.lat = (float)(gotolocation.Lat);
gotohere.lng = (float)(gotolocation.Lng);
try
{
updateLocationLabel(gotohere);
}
catch { }
if (MainV2.comPort.BaseStream.IsOpen && MainV2.giveComport == false)
{
try
{
MainV2.giveComport = true;
MainV2.comPort.setWP(gotohere, 0, MAVLink.MAV_FRAME.GLOBAL_RELATIVE_ALT, (byte)2);
GCSViews.FlightData.GuidedModeWP = new PointLatLngAlt(gotohere);
MainV2.giveComport = false;
}
catch { MainV2.giveComport = false; }
}
}
}
catch { System.Threading.Thread.Sleep(2000); }
}
}
private void updateLocationLabel(Locationwp plla)
{
this.BeginInvoke((MethodInvoker)delegate
{
LBL_location.Text = gotolocation.Lat + " " + gotolocation.Lng + " " + gotolocation.Alt +" "+ gotolocation.Tag;
}
);
}
private void SerialOutput_FormClosing(object sender, FormClosingEventArgs e)
{
}
// Calculates the checksum for a sentence
string GetChecksum(string sentence)
{
// Loop through all chars to get a checksum
int Checksum = 0;
foreach (char Character in sentence.ToCharArray())
{
switch (Character)
{
case '$':
// Ignore the dollar sign
break;
case '*':
// Stop processing before the asterisk
return Checksum.ToString("X2");
default:
// Is this the first value for the checksum?
if (Checksum == 0)
{
// Yes. Set the checksum to the value
Checksum = Convert.ToByte(Character);
}
else
{
// No. XOR the checksum with this character's value
Checksum = Checksum ^ Convert.ToByte(Character);
}
break;
}
}
// Return the checksum formatted as a two-character hexadecimal
return Checksum.ToString("X2");
}
}
}

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="textBox1.Text" xml:space="preserve">
<value>Lo que esto hace. 1. se las actuales coordenadas GPS de un GPS NMEA. 2. envía un WP modo guiado a la AP cada 2 segundos. Como Usar 1. conectar con la AP. 2. el despegue, el modo de prueba guiada está trabajando. 3. abrir este y escoja su puerto com, y la velocidad de su NMEA GPS. 4. ahora debe estar siguiéndote.</value>
</data>
</root>

View File

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="textBox1.Text" xml:space="preserve">
<value>What this does.
1. gets the current gps coords from a nmea gps.
2. sends a guided mode WP to the AP every 2 seconds.
How to use it
1. connect to ap.
2. take off, test guided mode is working.
3. open this and pick your comport, and baud rate for your nmea gps.
4. it should now be following you.</value>
</data>
</root>

View File

@ -0,0 +1,208 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="textBox1.Text" xml:space="preserve">
<value>What this does.
1. gets the current gps coords from a nmea gps.
2. sends a guided mode WP to the AP every 2 seconds.
How to use it
1. connect to ap.
2. take off, test guided mode is working.
3. open this and pick your comport, and baud rate for your nmea gps.
4. it should now be following you.</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOxkjAtnoOAKpJ4vyiK
c+8nh3D/J4Zv/yeHcP8oi3PvKpJ4vy6fg4AzsZIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjGo2AyspPfLZ+D/yiQ
d/8hlXj/G6F9/xeqg/8XqYL/GKqD/xuhfv8ilnn/KZB3/y2fhP8yspPfN8ajYAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvRrDA1vpzfL6uN/yel
hP8XvJD/DMyY/wfQl/8FzJP/A8qS/wPJkf8EypL/BsyU/wnRmP8PzZn/Gb2R/yemhP8tqoz/Mb2a3zbQ
qkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAA4y6ZgMbWV/yin
iP8WwZP/Btqf/wDPlf8AyI7/A8aP/yfNnv9T2LP/UNax/03XsP8506b/G8ya/wHKkf8F0Zf/CNuf/xLB
kv8fpYT/J7KQ/y7IomAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAANcajny+w
kf8hqoj/CNSd/wDRlf8Axor/Hcyd/3Lhwf+p7Nj/o+vV/57m0/+X5dD/k+TN/4/jzf+K5Mz/fuHH/0PW
rf8HzJT/ANCT/wDRlv8OpX//HayI/yrFn58AAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAADDC
nmAtro7/H62J/wPWmv8Ay47/AMaO/3XhxP+e6tT/mObP/5Pjy/+Q4sr/jODJ/4ffx/+C3MT/f9vC/3nb
wf9y2r7/adq7/2DauP8ZzZv/Fdae/8T/9/9WxKj/HKuI/y7IomAAAAAAAAAAAAAAAAD///8AAAAAAAAA
AAAiuZMwKKyM/x6ohf8C1Zr/AMmL/wHGjv+49OL///////////9+3ML/f9zD/4Dcwv9+28L/e9rA/3bZ
vv9w1rr/Z9S4/17Rs/9Qz63/Qcyn/3LewP////////////n///8MpH7/JbKP/zXQqUAAAAAAAAAAAP//
/wAAAAAAAAAAABymhN8dnn//BNGa/wDKjP8AxY3/sfHf/////////////////2nXt/9w1rv/c9e8/3TX
vP9x17z/a9W5/2TTtf9Y0K//SMyp/zXFoP9i07X/////////////////f/LR/wDQlf8epYT/Mb2a3wAA
AAAAAAAA////AAAAAAADlnJgFZR1/wq4iv8AzpH/AMCD/4rmzf//////////////////////WdGv/2PU
tf9p1rf/atS4/2nUtv9i0rT/Vc+u/0fKpv8zxZz/Ws+w//////////////////////8GyJL/ANCS/xLB
kv8tq4z/OMajYAAAAAD///8AAAAAAACHZt8NkW//ANKV/wDChP9i27r//////////////////////9Dx
6P9MzKn/Vc+v/17Rsv9g0rP/XNCx/1XNrv9Fyaf/McSd/1fPr///////////////////////QM2m/ynK
oP8JzJX/C9yh/ymmhf80spPfAAAAAP///wAAcUwwAHtc/wCrfP8AyIv/AMKK////////////////////
/////////////5Dgyv9Gyqb/TMyq/07Nq/9MzKn/Qcmj/y/Fnf9Wzq3//////////////////////57k
0v8av5T/Lceg/yzOo/8M05v/Hr6T/zCghf80spIw////AABoRYAAclT/AL2H/wDBhf9R1rL/////////
////////4vfw//////////////////H8+P9KzKn/Ocah/zTFnv8qwpj/Us2t////////////////////
////////DLqM/yDBlv8wxp//OM6m/xPPm/8Xz53/LZF5/y+fg4////8AAGNAvwB7Wf8Aw4j/ALyC/4bj
yP+g5tL/g93E/2HSsv9Pzqz/Us6s//////////////////////9Yzq//Gr2S/0jLp///////////////
/////////////yrDm/8SvI//JMGY/zDHn/81zKT/Is2e/xTUnf8nl3v/LJJ5v////wAAXz3vAIlg/wDA
hf8AuoD/quzZ/5Hjyv9628D/ada2/1jRsP9Jy6f/a9a4//////////////////////+Y4s7/////////
//////////////////+c4tD/AbaH/xW8kf8jwZj/LcWd/y/Jn/8kzJ3/E9Ca/yGjgf8ri3Tv////AABd
PP8Ak2b/AL6D/w/Ekv+m6tf/j+HJ/3vawP9p1rf/W9Gx/0rNqf85yJ//Nsaf////////////////////
/////////////////////////////wCwe/8AtoT/ELqP/xu+k/8jwZj/KMeb/yHKm/8QzZf/HqyG/ymI
cf////8AAF07/wCSZP8AvYL/GMWU/6Dn1P+K38f/ddi+/27Wuf+E3MX/leHN/6fm1f+l5tX/neLQ////
////////////////////////////////////////j9/J/27Vuv9Tzq7/JsKY/xa/kv8aw5T/FcaW/wvL
lf8aqoT/J4dw/////wAAXTv/AJFk/wC9gP8GwY3/mObQ/5rkz/+26dv/y/Hl/8Dt3/+06tz/pebV/5bg
zP+g5NL//////////////v///f7+//7+/v//////7fn2////////////tOnb/6Ll0v+v6Nj/jeDI/zXK
o/8IxJD/BMqS/xaqgv8lh2//////AABeO+8AgVf/AL1//wDBif/R9uv/1PPq/8Tv5P+36t3/rujY/6Lk
0v+U4cv/jt7J//j8+///////+/38//f8+//2+/r/+Pz7//3+/v/m9/P/9Pv6//D6+P9/28L/jd7J/5jj
z/+h5dL/qOvX/4Hmyf8f1J//E596/yOJcO////8AAGA8vwB3U/8p06P/hufM/8Ty5f/D7+T/s+vb/6bm
1P+c4c//j9/K/4vcyP/t+fb///7///j8/P/0+/r/8vr5//P7+f/1+/r/+/39///////i9fL/ZNO1/3HW
vP992sH/htzG/4vhyv+S5dD/mO7W/6X74v80noT/Io90v////wAAZkCAAHla/33ny/945cb/nunV/7Xr
3v+l5tT/luDN/4ndxv992cL/1vLq//v9/P/1+/n/8vv4//L69//z+/j/9Pv5/7Xo2//x+vn/////////
//+y59n/aNS3/3LWvP932r//fNzD/4Ljyf+J7ND/l/bd/yORdf8knH6A////AABuRzAAdlT/Xc6x/23o
xv9s4MH/qurZ/5jiz/+I3cb/edjA/8ju5f/3/Pv/8vv4//H6+P/y+/j/6/f0/7np3v/7/fz//v7+/6fk
1f+56tz///////////9h0bT/aNW4/23Wu/9v3L//dOLG/37w0f9m1rn/Hpt8/ymujTD///8AAAAAAACD
X98po4X/Z+7K/1vgvP+A4sf/jOHK/3rZwv+r59f/9Pv6/+/69//v+vf/8vr4/9fy6/9n0rf/VM6t/6Di
0v/N7+f/adO4/1PMrf9t1Lr/i9zI/1/Rs/9h0rX/ZNe4/2bbvf9s5sb/ePfV/z2ylf8lrozfAAAAAP//
/wAAAAAAAJNsYAWQbf9U1rP/Vee//0rYsf993sb/pebV//P7+v/s+Pb/6/f1/+749v+s5tj/Vc2u/1jP
r/9ZzrD/btW5/1bOr/9Wza//Vs6v/1fOr/9Z0LD/WdCy/1vTtP9d1rX/Xt+8/2btyP9k4L//IaaF/y7D
nmAAAAAA////AAAAAAAAAAAAD6J9zyCjgv9S68L/P9+0/2Pevv/5////7/v6/+v59//j9/L/gtvF/1PN
r/9Wz7D/Wc+x/1nQsf9Zz7H/WM6w/1fPsP9UzrD/VM+w/1TPrv9U0a//U9Oy/1Tatv9Z5sD/Y/LL/zSx
lP8qupbPAAAAAAAAAAD///8AAAAAAAAAAAAYto4wGaeE/y23lP8+5rn/6/////j////w//3/ve/i/2bV
uP9Tzq7/Vc+v/1jPsP9Z0LL/WM+w/1fOsf9Wz7D/Us2w/1HOrf9Qzq3/T9Cu/0zSr/9M2LP/TeC5/1bt
xP9HxaX/KLKQ/zTPqDAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAkvpdgG6iF/y++m//e/////P///3rl
yf9G0K3/VdKy/1bPsf9Wz7H/Vs6w/1bPsP9Sza//Ucyu/0/Nrf9NzKz/S82s/0fOrP9G0a7/QdWv/0Le
tP9I6L7/Q8Ok/yitjP8yyKJgAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAmwJlgG6iF/yK3
kP8k3q7/H9el/x7Pn/8tzKT/Q9Cs/1HQsP9Q0K7/TM6u/0nMrf9Hzaz/RMyp/0LNqf8+zqn/ONGo/zTV
qf833rD/O+S4/zvCof8orIv/MMSfYAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAkvpdgG6iE/xukgv8gy53/HNql/xzRn/8czJz/HcmZ/yXJnP8qyp7/Lcqg/yzLn/8nypz/JMqc/yTO
n/8l1KT/KN2r/y3Tpv8nq4n/JaqJ/yzAm2AAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAato8wFKN/zxCScv8RnHn/DbqM/wjIlP8GyZT/BsaS/wbFkf8GxZH/B8WR/wfH
k/8IypX/DMmV/xG3jP8WoX3/Fph2/xqkgs8ft5EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVvYACGZM8Aelr/AHlZ/wCFX/8AiWL/AJlr/wCb
bP8AlGf/AI5k/wB/W/8AeFj/AHtb/wCHZd8ClXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwSzAAaESAAGI/vwBf
Pd8AXTz/AF08/wBdPP8AXz3fAGJAvwBoRIAAcUswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A/+AD//+AAP/+AAA//AAAH/gAAA/wAAAH4AAAA+AAAAPAAAABwAAAAYAA
AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAwAAAAcAAAAHgAAAD4AAAA/AA
AAf4AAAP/AAAH/4AAD//gAD//+AD//////8=
</value>
</data>
</root>

View File

@ -28,7 +28,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
int fixme; // needs to be accel only
MainV2.comPort.doCommand(MAVLink.MAV_CMD.PREFLIGHT_CALIBRATION,1,1,1,1,1,1,1);
#else
log.Info("Sending level command (mavlink 0.9)");
Log.Info("Sending level command (mavlink 0.9)");
MainV2.comPort.doAction(MAVLink.MAV_ACTION.MAV_ACTION_CALIBRATE_ACC);
#endif

View File

@ -45,6 +45,14 @@
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.BUT_MagCalibrationLog = new ArdupilotMega.Controls.MyButton();
this.CHK_autodec = new System.Windows.Forms.CheckBox();
this.label5 = new System.Windows.Forms.Label();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label1 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label2 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.label3 = new System.Windows.Forms.Label();
this.groupBox4 = new System.Windows.Forms.GroupBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
@ -170,23 +178,79 @@
this.CHK_autodec.UseVisualStyleBackColor = true;
this.CHK_autodec.CheckedChanged += new System.EventHandler(this.CHK_autodec_CheckedChanged);
//
// label5
//
resources.ApplyResources(this.label5, "label5");
this.label5.ForeColor = System.Drawing.SystemColors.ControlText;
this.label5.Name = "label5";
//
// groupBox2
//
resources.ApplyResources(this.groupBox2, "groupBox2");
this.groupBox2.Name = "groupBox2";
this.groupBox2.TabStop = false;
//
// label1
//
resources.ApplyResources(this.label1, "label1");
this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
this.label1.Name = "label1";
//
// groupBox1
//
resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false;
//
// label2
//
resources.ApplyResources(this.label2, "label2");
this.label2.ForeColor = System.Drawing.SystemColors.ControlText;
this.label2.Name = "label2";
//
// groupBox3
//
resources.ApplyResources(this.groupBox3, "groupBox3");
this.groupBox3.Name = "groupBox3";
this.groupBox3.TabStop = false;
//
// label3
//
resources.ApplyResources(this.label3, "label3");
this.label3.ForeColor = System.Drawing.SystemColors.ControlText;
this.label3.Name = "label3";
//
// groupBox4
//
resources.ApplyResources(this.groupBox4, "groupBox4");
this.groupBox4.Name = "groupBox4";
this.groupBox4.TabStop = false;
//
// ConfigHardwareOptions
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.CHK_enableoptflow);
this.Controls.Add(this.label3);
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.CHK_enableairspeed);
this.Controls.Add(this.label2);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.CHK_enablesonar);
this.Controls.Add(this.label1);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.CHK_enablecompass);
this.Controls.Add(this.label5);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.CHK_autodec);
this.Controls.Add(this.BUT_MagCalibrationLog);
this.Controls.Add(this.BUT_MagCalibrationLive);
this.Controls.Add(this.label27);
this.Controls.Add(this.CMB_sonartype);
this.Controls.Add(this.CHK_enableoptflow);
this.Controls.Add(this.pictureBox2);
this.Controls.Add(this.linkLabelmagdec);
this.Controls.Add(this.label100);
this.Controls.Add(this.TXT_declination);
this.Controls.Add(this.CHK_enableairspeed);
this.Controls.Add(this.CHK_enablesonar);
this.Controls.Add(this.CHK_enablecompass);
this.Controls.Add(this.pictureBox4);
this.Controls.Add(this.pictureBox3);
this.Controls.Add(this.pictureBox1);
@ -218,5 +282,13 @@
private System.Windows.Forms.PictureBox pictureBox1;
private ArdupilotMega.Controls.MyButton BUT_MagCalibrationLog;
private System.Windows.Forms.CheckBox CHK_autodec;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.GroupBox groupBox4;
}
}

View File

@ -123,7 +123,7 @@
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BUT_MagCalibrationLive.Location" type="System.Drawing.Point, System.Drawing">
<value>331, 13</value>
<value>180, 38</value>
</data>
<data name="BUT_MagCalibrationLive.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
@ -139,19 +139,19 @@
<value>BUT_MagCalibrationLive</value>
</data>
<data name="&gt;&gt;BUT_MagCalibrationLive.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4576.35069, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4589.38394, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_MagCalibrationLive.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;BUT_MagCalibrationLive.ZOrder" xml:space="preserve">
<value>2</value>
<value>14</value>
</data>
<data name="label27.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label27.Location" type="System.Drawing.Point, System.Drawing">
<value>455, 45</value>
<value>304, 70</value>
</data>
<data name="label27.Size" type="System.Drawing.Size, System.Drawing">
<value>145, 20</value>
@ -172,7 +172,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;label27.ZOrder" xml:space="preserve">
<value>3</value>
<value>15</value>
</data>
<data name="CMB_sonartype.Items" xml:space="preserve">
<value>XL-EZ0</value>
@ -187,7 +187,7 @@
<value>HRLV</value>
</data>
<data name="CMB_sonartype.Location" type="System.Drawing.Point, System.Drawing">
<value>243, 122</value>
<value>180, 168</value>
</data>
<data name="CMB_sonartype.Size" type="System.Drawing.Size, System.Drawing">
<value>121, 21</value>
@ -205,7 +205,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;CMB_sonartype.ZOrder" xml:space="preserve">
<value>4</value>
<value>16</value>
</data>
<data name="CHK_enableoptflow.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
@ -214,7 +214,7 @@
<value>NoControl</value>
</data>
<data name="CHK_enableoptflow.Location" type="System.Drawing.Point, System.Drawing">
<value>97, 285</value>
<value>108, 327</value>
</data>
<data name="CHK_enableoptflow.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 19</value>
@ -235,7 +235,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;CHK_enableoptflow.ZOrder" xml:space="preserve">
<value>5</value>
<value>0</value>
</data>
<data name="pictureBox2.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<value>Zoom</value>
@ -244,7 +244,7 @@
<value>NoControl</value>
</data>
<data name="pictureBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 259</value>
<value>11, 357</value>
</data>
<data name="pictureBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 75</value>
@ -262,7 +262,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;pictureBox2.ZOrder" xml:space="preserve">
<value>6</value>
<value>17</value>
</data>
<data name="linkLabelmagdec.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -271,7 +271,7 @@
<value>NoControl</value>
</data>
<data name="linkLabelmagdec.Location" type="System.Drawing.Point, System.Drawing">
<value>338, 68</value>
<value>187, 93</value>
</data>
<data name="linkLabelmagdec.Size" type="System.Drawing.Size, System.Drawing">
<value>104, 13</value>
@ -292,13 +292,13 @@
<value>$this</value>
</data>
<data name="&gt;&gt;linkLabelmagdec.ZOrder" xml:space="preserve">
<value>7</value>
<value>18</value>
</data>
<data name="label100.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label100.Location" type="System.Drawing.Point, System.Drawing">
<value>240, 45</value>
<value>105, 73</value>
</data>
<data name="label100.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 16</value>
@ -319,13 +319,13 @@
<value>$this</value>
</data>
<data name="&gt;&gt;label100.ZOrder" xml:space="preserve">
<value>8</value>
<value>19</value>
</data>
<data name="TXT_declination.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="TXT_declination.Location" type="System.Drawing.Point, System.Drawing">
<value>331, 45</value>
<value>180, 70</value>
</data>
<data name="TXT_declination.Size" type="System.Drawing.Size, System.Drawing">
<value>121, 20</value>
@ -343,7 +343,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;TXT_declination.ZOrder" xml:space="preserve">
<value>9</value>
<value>20</value>
</data>
<data name="CHK_enableairspeed.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
@ -352,7 +352,7 @@
<value>NoControl</value>
</data>
<data name="CHK_enableairspeed.Location" type="System.Drawing.Point, System.Drawing">
<value>97, 202</value>
<value>108, 222</value>
</data>
<data name="CHK_enableairspeed.Size" type="System.Drawing.Size, System.Drawing">
<value>103, 17</value>
@ -373,7 +373,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;CHK_enableairspeed.ZOrder" xml:space="preserve">
<value>10</value>
<value>3</value>
</data>
<data name="CHK_enablesonar.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
@ -382,7 +382,7 @@
<value>NoControl</value>
</data>
<data name="CHK_enablesonar.Location" type="System.Drawing.Point, System.Drawing">
<value>94, 124</value>
<value>108, 114</value>
</data>
<data name="CHK_enablesonar.Size" type="System.Drawing.Size, System.Drawing">
<value>90, 17</value>
@ -403,7 +403,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;CHK_enablesonar.ZOrder" xml:space="preserve">
<value>11</value>
<value>6</value>
</data>
<data name="CHK_enablecompass.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
@ -412,7 +412,7 @@
<value>NoControl</value>
</data>
<data name="CHK_enablecompass.Location" type="System.Drawing.Point, System.Drawing">
<value>97, 44</value>
<value>108, 6</value>
</data>
<data name="CHK_enablecompass.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 17</value>
@ -433,7 +433,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;CHK_enablecompass.ZOrder" xml:space="preserve">
<value>12</value>
<value>9</value>
</data>
<data name="pictureBox4.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<value>Zoom</value>
@ -442,7 +442,7 @@
<value>NoControl</value>
</data>
<data name="pictureBox4.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 176</value>
<value>11, 249</value>
</data>
<data name="pictureBox4.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 75</value>
@ -460,7 +460,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;pictureBox4.ZOrder" xml:space="preserve">
<value>13</value>
<value>21</value>
</data>
<data name="pictureBox3.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<value>Zoom</value>
@ -469,7 +469,7 @@
<value>NoControl</value>
</data>
<data name="pictureBox3.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 94</value>
<value>11, 141</value>
</data>
<data name="pictureBox3.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 75</value>
@ -487,7 +487,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;pictureBox3.ZOrder" xml:space="preserve">
<value>14</value>
<value>22</value>
</data>
<data name="pictureBox1.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<value>Zoom</value>
@ -502,7 +502,7 @@
<value />
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 13</value>
<value>11, 33</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 75</value>
@ -520,13 +520,13 @@
<value>$this</value>
</data>
<data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
<value>15</value>
<value>23</value>
</data>
<data name="BUT_MagCalibrationLog.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="BUT_MagCalibrationLog.Location" type="System.Drawing.Point, System.Drawing">
<value>392, 13</value>
<value>241, 38</value>
</data>
<data name="BUT_MagCalibrationLog.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
@ -541,13 +541,13 @@
<value>BUT_MagCalibrationLog</value>
</data>
<data name="&gt;&gt;BUT_MagCalibrationLog.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4576.35069, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4589.38394, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_MagCalibrationLog.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;BUT_MagCalibrationLog.ZOrder" xml:space="preserve">
<value>1</value>
<value>13</value>
</data>
<data name="CHK_autodec.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
@ -556,7 +556,7 @@
<value>NoControl</value>
</data>
<data name="CHK_autodec.Location" type="System.Drawing.Point, System.Drawing">
<value>243, 25</value>
<value>92, 50</value>
</data>
<data name="CHK_autodec.Size" type="System.Drawing.Size, System.Drawing">
<value>82, 17</value>
@ -577,7 +577,232 @@
<value>$this</value>
</data>
<data name="&gt;&gt;CHK_autodec.ZOrder" xml:space="preserve">
<value>0</value>
<value>12</value>
</data>
<data name="label5.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label5.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 12pt</value>
</data>
<data name="label5.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 3</value>
</data>
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 20</value>
</data>
<data name="label5.TabIndex" type="System.Int32, mscorlib">
<value>66</value>
</data>
<data name="label5.Text" xml:space="preserve">
<value>Compass</value>
</data>
<data name="&gt;&gt;label5.Name" xml:space="preserve">
<value>label5</value>
</data>
<data name="&gt;&gt;label5.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label5.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label5.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="groupBox2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 21</value>
</data>
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>731, 5</value>
</data>
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
<value>65</value>
</data>
<data name="&gt;&gt;groupBox2.Name" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;groupBox2.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBox2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve">
<value>11</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label1.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 12pt</value>
</data>
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 111</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>52, 20</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>68</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Sonar</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="groupBox1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 129</value>
</data>
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>731, 5</value>
</data>
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
<value>67</value>
</data>
<data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;groupBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBox1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label2.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 12pt</value>
</data>
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 219</value>
</data>
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 20</value>
</data>
<data name="label2.TabIndex" type="System.Int32, mscorlib">
<value>70</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>Airspeed</value>
</data>
<data name="&gt;&gt;label2.Name" xml:space="preserve">
<value>label2</value>
</data>
<data name="&gt;&gt;label2.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="groupBox3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="groupBox3.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 237</value>
</data>
<data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
<value>731, 5</value>
</data>
<data name="groupBox3.TabIndex" type="System.Int32, mscorlib">
<value>69</value>
</data>
<data name="&gt;&gt;groupBox3.Name" xml:space="preserve">
<value>groupBox3</value>
</data>
<data name="&gt;&gt;groupBox3.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBox3.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox3.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label3.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 12pt</value>
</data>
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 327</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 20</value>
</data>
<data name="label3.TabIndex" type="System.Int32, mscorlib">
<value>72</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>Optical Flow</value>
</data>
<data name="&gt;&gt;label3.Name" xml:space="preserve">
<value>label3</value>
</data>
<data name="&gt;&gt;label3.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label3.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="groupBox4.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="groupBox4.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 345</value>
</data>
<data name="groupBox4.Size" type="System.Drawing.Size, System.Drawing">
<value>731, 5</value>
</data>
<data name="groupBox4.TabIndex" type="System.Int32, mscorlib">
<value>71</value>
</data>
<data name="&gt;&gt;groupBox4.Name" xml:space="preserve">
<value>groupBox4</value>
</data>
<data name="&gt;&gt;groupBox4.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBox4.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox4.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
@ -586,12 +811,12 @@
<value>6, 13</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>602, 351</value>
<value>737, 450</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>ConfigHardwareOptions</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner10, Version=1.1.4576.35069, Culture=neutral, PublicKeyToken=null</value>
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -0,0 +1,185 @@
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using ArdupilotMega.Controls.BackstageView;
using ArdupilotMega.Presenter;
using Transitions;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigMount : UserControl, IActivate
{
private Transition[] _ErrorTransition;
private Transition _NoErrorTransition;
public ConfigMount()
{
InitializeComponent();
PBOX_WarningIcon.Opacity = 0.0F;
LBL_Error.Opacity = 0.0F;
var delay = new Transition(new TransitionType_Linear(2000));
var fadeIn = new Transition(new TransitionType_Linear(800));
fadeIn.add(PBOX_WarningIcon, "Opacity", 1.0F);
fadeIn.add(LBL_Error, "Opacity", 1.0F);
_ErrorTransition = new[] { delay, fadeIn };
_NoErrorTransition = new Transition(new TransitionType_Linear(10));
_NoErrorTransition.add(PBOX_WarningIcon, "Opacity", 0.0F);
_NoErrorTransition.add(LBL_Error, "Opacity", 0.0F);
//setup button actions
foreach (var btn in Controls.Cast<Control>().OfType<Button>())
btn.Click += HandleButtonClick;
LNK_wiki.MouseEnter += (s, e) => FadeLinkTo((LinkLabel)s, Color.CornflowerBlue);
LNK_wiki.MouseLeave += (s, e) => FadeLinkTo((LinkLabel)s, Color.WhiteSmoke);
SetErrorMessageOpacity();
}
// 0 = disabled 1 = enabled
enum Channelap
{
Disable = 0,
CH_5 = 1,
CH_6 = 1,
CH_7 = 1,
CH_8 = 1
}
// 0 = disabled 1 = enabled
enum Channelac
{
Disable = 0,
CAM_P = 7,
CAM_R = 8,
CAM_Y = 6
}
public void Activate()
{
if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
{
mavlinkComboBoxTilt.setup(typeof(Channelap), "MNT_STAB_PITCH", MainV2.comPort.param);
mavlinkComboBoxRoll.setup(typeof(Channelap), "MNT_STAB_ROLL", MainV2.comPort.param);
mavlinkComboBoxPan.setup(typeof(Channelap), "MNT_STAB_YAW", MainV2.comPort.param);
}
else
{
mavlinkComboBoxTilt.setup(typeof(Channelac), "CAM_P_FUNCTION", MainV2.comPort.param, "MNT_STAB_PITCH");
mavlinkComboBoxRoll.setup(typeof(Channelac), "CAM_R_FUNCTION", MainV2.comPort.param, "MNT_STAB_ROLL");
mavlinkComboBoxPan.setup(typeof(Channelac), "CAM_Y_FUNCTION", MainV2.comPort.param, "MNT_STAB_YAW");
}
updatePitch();
updateRoll();
updateYaw();
}
void updatePitch()
{
// pitch
mavlinkNumericUpDown11.setup(800, 2200, 1, 1, mavlinkComboBoxTilt.Text +"_MIN", MainV2.comPort.param);
mavlinkNumericUpDown12.setup(800, 2200, 1, 1, mavlinkComboBoxTilt.Text + "_MAX", MainV2.comPort.param);
mavlinkNumericUpDown1.setup(-90, 0, 100, 1, mavlinkComboBoxTilt.Text + "_ANGLE_MIN", MainV2.comPort.param);
mavlinkNumericUpDown2.setup(0, 90, 100, 1, mavlinkComboBoxTilt.Text + "_ANGLE_MAX", MainV2.comPort.param);
mavlinkCheckBox1.setup(-1, 1, mavlinkComboBoxTilt.Text + "_REV", MainV2.comPort.param);
}
void updateRoll()
{
// roll
mavlinkNumericUpDown5.setup(800, 2200, 1, 1, mavlinkComboBoxRoll.Text +"_MIN", MainV2.comPort.param);
mavlinkNumericUpDown6.setup(800, 2200, 1, 1, mavlinkComboBoxRoll.Text + "_MAX", MainV2.comPort.param);
mavlinkNumericUpDown3.setup(-90, 0, 100, 1, mavlinkComboBoxRoll.Text + "_ANGLE_MIN", MainV2.comPort.param);
mavlinkNumericUpDown4.setup(0, 90, 100, 1, mavlinkComboBoxRoll.Text + "_ANGLE_MAX", MainV2.comPort.param);
mavlinkCheckBox2.setup(-1, 1, mavlinkComboBoxRoll.Text + "_REV", MainV2.comPort.param);
}
void updateYaw()
{
// yaw
mavlinkNumericUpDown9.setup(800, 2200, 1, 1, mavlinkComboBoxPan.Text + "_MIN", MainV2.comPort.param);
mavlinkNumericUpDown10.setup(800, 2200, 1, 1, mavlinkComboBoxPan.Text + "_MAX", MainV2.comPort.param);
mavlinkNumericUpDown7.setup(-90, 0, 100, 1, mavlinkComboBoxPan.Text + "_ANGLE_MIN", MainV2.comPort.param);
mavlinkNumericUpDown8.setup(0, 90, 100, 1, mavlinkComboBoxPan.Text + "_ANGLE_MAX", MainV2.comPort.param);
mavlinkCheckBox3.setup(-1, 1, mavlinkComboBoxPan.Text + "_REV", MainV2.comPort.param);
}
private void SetErrorMessageOpacity()
{
/* if (_presenter.HasError)
{
// Todo - is this the prob? maybe single log trasition
var t = new Transition(new TransitionType_Acceleration(1000));
t.add(PBOX_WarningIcon, "Opacity", 1.0F);
t.add(LBL_Error, "Opacity", 1.0F);
t.run();
//Transition.runChain(_ErrorTransition);
}
else*/
{
_NoErrorTransition.run();
}
}
private static void FadeLinkTo(LinkLabel l, Color c)
{
var changeColorTransition = new Transition(new TransitionType_Linear(300));
changeColorTransition.add(l, "LinkColor", c);
changeColorTransition.run();
}
// Common handler for all buttons
// Will execute an ICommand if one is found on the button Tag
private static void HandleButtonClick(object sender, EventArgs e)
{
if (sender is Button)
{
var cmd = (sender as Button).Tag as ICommand;
if (cmd != null)
if (cmd.CanExecute(null))
cmd.Execute(null);
}
}
// Something has changed on the presenter - This may be an Icommand
// enabled state, so update the buttons as appropriate
void CheckCommandStates(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
{
foreach (var btn in Controls.Cast<Control>().OfType<Button>())
{
var cmd = btn.Tag as ICommand;
if (cmd != null)
btn.Enabled = cmd.CanExecute(null);
}
}
private void LNK_Wiki_Clicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start(new ProcessStartInfo("http://code.google.com/p/arducopter/wiki/AC2_Camera"));
}
private void mavlinkComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
// enable 3 axis stabilize
if (MainV2.comPort.param.ContainsKey("MNT_MODE"))
MainV2.comPort.setParam("MNT_MODE",3);
updatePitch();
updateRoll();
updateYaw();
}
}
}

View File

@ -0,0 +1,994 @@
using ArdupilotMega.Controls;
using ArdupilotMega.Presenter;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigMount
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary> pi
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.PBOX_WarningIcon = new ArdupilotMega.Controls.PictureBoxWithPseudoOpacity();
this.LBL_Error = new ArdupilotMega.Controls.LabelWithPseudoOpacity();
this.LNK_wiki = new System.Windows.Forms.LinkLabel();
this.label15 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.pictureBox3 = new System.Windows.Forms.PictureBox();
this.label9 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label();
this.mavlinkNumericUpDown3 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.mavlinkNumericUpDown4 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.label13 = new System.Windows.Forms.Label();
this.label14 = new System.Windows.Forms.Label();
this.mavlinkNumericUpDown5 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.mavlinkNumericUpDown6 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.mavlinkCheckBox2 = new ArdupilotMega.Controls.MavlinkCheckBox();
this.label16 = new System.Windows.Forms.Label();
this.label17 = new System.Windows.Forms.Label();
this.label18 = new System.Windows.Forms.Label();
this.label19 = new System.Windows.Forms.Label();
this.mavlinkNumericUpDown7 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.mavlinkNumericUpDown8 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.label20 = new System.Windows.Forms.Label();
this.label21 = new System.Windows.Forms.Label();
this.mavlinkNumericUpDown9 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.mavlinkNumericUpDown10 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.mavlinkCheckBox3 = new ArdupilotMega.Controls.MavlinkCheckBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.mavlinkNumericUpDown1 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.mavlinkNumericUpDown2 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.label7 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.mavlinkNumericUpDown11 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.mavlinkNumericUpDown12 = new ArdupilotMega.Controls.MavlinkNumericUpDown();
this.mavlinkCheckBox1 = new ArdupilotMega.Controls.MavlinkCheckBox();
this.mavlinkComboBoxTilt = new ArdupilotMega.Controls.MavlinkComboBox();
this.mavlinkComboBoxRoll = new ArdupilotMega.Controls.MavlinkComboBox();
this.mavlinkComboBoxPan = new ArdupilotMega.Controls.MavlinkComboBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.PBOX_WarningIcon)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown5)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown6)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown7)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown8)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown9)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown10)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown11)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown12)).BeginInit();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
this.pictureBox1.BackgroundImage = global::ArdupilotMega.Properties.Resources.cameraGimalPitch1;
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox1.Location = new System.Drawing.Point(33, 16);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(203, 112);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Location = new System.Drawing.Point(17, 150);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(635, 5);
this.groupBox1.TabIndex = 52;
this.groupBox1.TabStop = false;
//
// pictureBox2
//
this.pictureBox2.BackgroundImage = global::ArdupilotMega.Properties.Resources.cameraGimalRoll1;
this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox2.Location = new System.Drawing.Point(33, 141);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(203, 112);
this.pictureBox2.TabIndex = 53;
this.pictureBox2.TabStop = false;
//
// groupBox2
//
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox2.Location = new System.Drawing.Point(17, 23);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(635, 5);
this.groupBox2.TabIndex = 59;
this.groupBox2.TabStop = false;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label5.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label5.Location = new System.Drawing.Point(21, 4);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(29, 20);
this.label5.TabIndex = 64;
this.label5.Text = "Tilt";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label6.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label6.Location = new System.Drawing.Point(20, 132);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(36, 20);
this.label6.TabIndex = 65;
this.label6.Text = "Roll";
//
// PBOX_WarningIcon
//
this.PBOX_WarningIcon.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.PBOX_WarningIcon.Image = global::ArdupilotMega.Properties.Resources.iconWarning32;
this.PBOX_WarningIcon.Location = new System.Drawing.Point(264, 389);
this.PBOX_WarningIcon.Name = "PBOX_WarningIcon";
this.PBOX_WarningIcon.Opacity = 0.5F;
this.PBOX_WarningIcon.Size = new System.Drawing.Size(32, 32);
this.PBOX_WarningIcon.TabIndex = 75;
this.PBOX_WarningIcon.TabStop = false;
//
// LBL_Error
//
this.LBL_Error.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.LBL_Error.AutoSize = true;
this.LBL_Error.ForeColor = System.Drawing.Color.WhiteSmoke;
this.LBL_Error.Location = new System.Drawing.Point(303, 402);
this.LBL_Error.Name = "LBL_Error";
this.LBL_Error.Size = new System.Drawing.Size(138, 13);
this.LBL_Error.TabIndex = 76;
this.LBL_Error.Text = "Error Message of some kind";
//
// LNK_wiki
//
this.LNK_wiki.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.LNK_wiki.AutoSize = true;
this.LNK_wiki.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.LNK_wiki.LinkColor = System.Drawing.Color.CornflowerBlue;
this.LNK_wiki.Location = new System.Drawing.Point(624, 9);
this.LNK_wiki.Name = "LNK_wiki";
this.LNK_wiki.Size = new System.Drawing.Size(28, 13);
this.LNK_wiki.TabIndex = 77;
this.LNK_wiki.TabStop = true;
this.LNK_wiki.Text = "Wiki";
this.LNK_wiki.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LNK_Wiki_Clicked);
//
// label15
//
this.label15.AutoSize = true;
this.label15.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label15.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label15.Location = new System.Drawing.Point(20, 256);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(37, 20);
this.label15.TabIndex = 80;
this.label15.Text = "Pan";
//
// groupBox3
//
this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox3.Location = new System.Drawing.Point(17, 274);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(635, 5);
this.groupBox3.TabIndex = 78;
this.groupBox3.TabStop = false;
//
// pictureBox3
//
this.pictureBox3.BackgroundImage = global::ArdupilotMega.Properties.Resources.cameraGimalYaw;
this.pictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox3.Location = new System.Drawing.Point(33, 265);
this.pictureBox3.Name = "pictureBox3";
this.pictureBox3.Size = new System.Drawing.Size(203, 112);
this.pictureBox3.TabIndex = 79;
this.pictureBox3.TabStop = false;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label9.Location = new System.Drawing.Point(352, 158);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(95, 20);
this.label9.TabIndex = 105;
this.label9.Text = "Angle Limits";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label10.Location = new System.Drawing.Point(251, 158);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(95, 20);
this.label10.TabIndex = 104;
this.label10.Text = "Servo Limits";
//
// label11
//
this.label11.AutoSize = true;
this.label11.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label11.Location = new System.Drawing.Point(355, 211);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(27, 13);
this.label11.TabIndex = 103;
this.label11.Text = "Max";
//
// label12
//
this.label12.AutoSize = true;
this.label12.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label12.Location = new System.Drawing.Point(355, 183);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(24, 13);
this.label12.TabIndex = 102;
this.label12.Text = "Min";
//
// mavlinkNumericUpDown3
//
this.mavlinkNumericUpDown3.Enabled = false;
this.mavlinkNumericUpDown3.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown3.Location = new System.Drawing.Point(385, 181);
this.mavlinkNumericUpDown3.Max = 1F;
this.mavlinkNumericUpDown3.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown3.Min = 0F;
this.mavlinkNumericUpDown3.Name = "mavlinkNumericUpDown3";
this.mavlinkNumericUpDown3.param = null;
this.mavlinkNumericUpDown3.ParamName = null;
this.mavlinkNumericUpDown3.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown3.TabIndex = 101;
this.mavlinkNumericUpDown3.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// mavlinkNumericUpDown4
//
this.mavlinkNumericUpDown4.Enabled = false;
this.mavlinkNumericUpDown4.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown4.Location = new System.Drawing.Point(385, 207);
this.mavlinkNumericUpDown4.Max = 1F;
this.mavlinkNumericUpDown4.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown4.Min = 0F;
this.mavlinkNumericUpDown4.Minimum = new decimal(new int[] {
800,
0,
0,
0});
this.mavlinkNumericUpDown4.Name = "mavlinkNumericUpDown4";
this.mavlinkNumericUpDown4.param = null;
this.mavlinkNumericUpDown4.ParamName = null;
this.mavlinkNumericUpDown4.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown4.TabIndex = 100;
this.mavlinkNumericUpDown4.Value = new decimal(new int[] {
2000,
0,
0,
0});
//
// label13
//
this.label13.AutoSize = true;
this.label13.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label13.Location = new System.Drawing.Point(246, 211);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(27, 13);
this.label13.TabIndex = 99;
this.label13.Text = "Max";
//
// label14
//
this.label14.AutoSize = true;
this.label14.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label14.Location = new System.Drawing.Point(246, 183);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(24, 13);
this.label14.TabIndex = 98;
this.label14.Text = "Min";
//
// mavlinkNumericUpDown5
//
this.mavlinkNumericUpDown5.Enabled = false;
this.mavlinkNumericUpDown5.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown5.Location = new System.Drawing.Point(276, 181);
this.mavlinkNumericUpDown5.Max = 1F;
this.mavlinkNumericUpDown5.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown5.Min = 0F;
this.mavlinkNumericUpDown5.Minimum = new decimal(new int[] {
800,
0,
0,
0});
this.mavlinkNumericUpDown5.Name = "mavlinkNumericUpDown5";
this.mavlinkNumericUpDown5.param = null;
this.mavlinkNumericUpDown5.ParamName = null;
this.mavlinkNumericUpDown5.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown5.TabIndex = 97;
this.mavlinkNumericUpDown5.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// mavlinkNumericUpDown6
//
this.mavlinkNumericUpDown6.Enabled = false;
this.mavlinkNumericUpDown6.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown6.Location = new System.Drawing.Point(276, 207);
this.mavlinkNumericUpDown6.Max = 1F;
this.mavlinkNumericUpDown6.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown6.Min = 0F;
this.mavlinkNumericUpDown6.Minimum = new decimal(new int[] {
800,
0,
0,
0});
this.mavlinkNumericUpDown6.Name = "mavlinkNumericUpDown6";
this.mavlinkNumericUpDown6.param = null;
this.mavlinkNumericUpDown6.ParamName = null;
this.mavlinkNumericUpDown6.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown6.TabIndex = 96;
this.mavlinkNumericUpDown6.Value = new decimal(new int[] {
2000,
0,
0,
0});
//
// mavlinkCheckBox2
//
this.mavlinkCheckBox2.AutoSize = true;
this.mavlinkCheckBox2.Enabled = false;
this.mavlinkCheckBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.mavlinkCheckBox2.Location = new System.Drawing.Point(267, 233);
this.mavlinkCheckBox2.Name = "mavlinkCheckBox2";
this.mavlinkCheckBox2.OffValue = 0F;
this.mavlinkCheckBox2.OnValue = 1F;
this.mavlinkCheckBox2.param = null;
this.mavlinkCheckBox2.ParamName = null;
this.mavlinkCheckBox2.Size = new System.Drawing.Size(66, 17);
this.mavlinkCheckBox2.TabIndex = 95;
this.mavlinkCheckBox2.Text = "Reverse";
this.mavlinkCheckBox2.UseVisualStyleBackColor = true;
//
// label16
//
this.label16.AutoSize = true;
this.label16.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label16.Location = new System.Drawing.Point(352, 282);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(95, 20);
this.label16.TabIndex = 116;
this.label16.Text = "Angle Limits";
//
// label17
//
this.label17.AutoSize = true;
this.label17.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label17.Location = new System.Drawing.Point(251, 282);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(95, 20);
this.label17.TabIndex = 115;
this.label17.Text = "Servo Limits";
//
// label18
//
this.label18.AutoSize = true;
this.label18.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label18.Location = new System.Drawing.Point(355, 335);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(27, 13);
this.label18.TabIndex = 114;
this.label18.Text = "Max";
//
// label19
//
this.label19.AutoSize = true;
this.label19.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label19.Location = new System.Drawing.Point(355, 307);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(24, 13);
this.label19.TabIndex = 113;
this.label19.Text = "Min";
//
// mavlinkNumericUpDown7
//
this.mavlinkNumericUpDown7.Enabled = false;
this.mavlinkNumericUpDown7.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown7.Location = new System.Drawing.Point(385, 305);
this.mavlinkNumericUpDown7.Max = 1F;
this.mavlinkNumericUpDown7.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown7.Min = 0F;
this.mavlinkNumericUpDown7.Name = "mavlinkNumericUpDown7";
this.mavlinkNumericUpDown7.param = null;
this.mavlinkNumericUpDown7.ParamName = null;
this.mavlinkNumericUpDown7.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown7.TabIndex = 112;
this.mavlinkNumericUpDown7.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// mavlinkNumericUpDown8
//
this.mavlinkNumericUpDown8.Enabled = false;
this.mavlinkNumericUpDown8.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown8.Location = new System.Drawing.Point(385, 331);
this.mavlinkNumericUpDown8.Max = 1F;
this.mavlinkNumericUpDown8.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown8.Min = 0F;
this.mavlinkNumericUpDown8.Minimum = new decimal(new int[] {
800,
0,
0,
0});
this.mavlinkNumericUpDown8.Name = "mavlinkNumericUpDown8";
this.mavlinkNumericUpDown8.param = null;
this.mavlinkNumericUpDown8.ParamName = null;
this.mavlinkNumericUpDown8.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown8.TabIndex = 111;
this.mavlinkNumericUpDown8.Value = new decimal(new int[] {
2000,
0,
0,
0});
//
// label20
//
this.label20.AutoSize = true;
this.label20.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label20.Location = new System.Drawing.Point(246, 335);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(27, 13);
this.label20.TabIndex = 110;
this.label20.Text = "Max";
//
// label21
//
this.label21.AutoSize = true;
this.label21.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label21.Location = new System.Drawing.Point(246, 307);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(24, 13);
this.label21.TabIndex = 109;
this.label21.Text = "Min";
//
// mavlinkNumericUpDown9
//
this.mavlinkNumericUpDown9.Enabled = false;
this.mavlinkNumericUpDown9.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown9.Location = new System.Drawing.Point(276, 305);
this.mavlinkNumericUpDown9.Max = 1F;
this.mavlinkNumericUpDown9.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown9.Min = 0F;
this.mavlinkNumericUpDown9.Minimum = new decimal(new int[] {
800,
0,
0,
0});
this.mavlinkNumericUpDown9.Name = "mavlinkNumericUpDown9";
this.mavlinkNumericUpDown9.param = null;
this.mavlinkNumericUpDown9.ParamName = null;
this.mavlinkNumericUpDown9.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown9.TabIndex = 108;
this.mavlinkNumericUpDown9.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// mavlinkNumericUpDown10
//
this.mavlinkNumericUpDown10.Enabled = false;
this.mavlinkNumericUpDown10.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown10.Location = new System.Drawing.Point(276, 331);
this.mavlinkNumericUpDown10.Max = 1F;
this.mavlinkNumericUpDown10.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown10.Min = 0F;
this.mavlinkNumericUpDown10.Minimum = new decimal(new int[] {
800,
0,
0,
0});
this.mavlinkNumericUpDown10.Name = "mavlinkNumericUpDown10";
this.mavlinkNumericUpDown10.param = null;
this.mavlinkNumericUpDown10.ParamName = null;
this.mavlinkNumericUpDown10.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown10.TabIndex = 107;
this.mavlinkNumericUpDown10.Value = new decimal(new int[] {
2000,
0,
0,
0});
//
// mavlinkCheckBox3
//
this.mavlinkCheckBox3.AutoSize = true;
this.mavlinkCheckBox3.Enabled = false;
this.mavlinkCheckBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.mavlinkCheckBox3.Location = new System.Drawing.Point(267, 357);
this.mavlinkCheckBox3.Name = "mavlinkCheckBox3";
this.mavlinkCheckBox3.OffValue = 0F;
this.mavlinkCheckBox3.OnValue = 1F;
this.mavlinkCheckBox3.param = null;
this.mavlinkCheckBox3.ParamName = null;
this.mavlinkCheckBox3.Size = new System.Drawing.Size(66, 17);
this.mavlinkCheckBox3.TabIndex = 106;
this.mavlinkCheckBox3.Text = "Reverse";
this.mavlinkCheckBox3.UseVisualStyleBackColor = true;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(352, 31);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(95, 20);
this.label1.TabIndex = 127;
this.label1.Text = "Angle Limits";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(251, 31);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(95, 20);
this.label2.TabIndex = 126;
this.label2.Text = "Servo Limits";
//
// label3
//
this.label3.AutoSize = true;
this.label3.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label3.Location = new System.Drawing.Point(355, 84);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(27, 13);
this.label3.TabIndex = 125;
this.label3.Text = "Max";
//
// label4
//
this.label4.AutoSize = true;
this.label4.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label4.Location = new System.Drawing.Point(355, 56);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(24, 13);
this.label4.TabIndex = 124;
this.label4.Text = "Min";
//
// mavlinkNumericUpDown1
//
this.mavlinkNumericUpDown1.Enabled = false;
this.mavlinkNumericUpDown1.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown1.Location = new System.Drawing.Point(385, 54);
this.mavlinkNumericUpDown1.Max = 1F;
this.mavlinkNumericUpDown1.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown1.Min = 0F;
this.mavlinkNumericUpDown1.Name = "mavlinkNumericUpDown1";
this.mavlinkNumericUpDown1.param = null;
this.mavlinkNumericUpDown1.ParamName = null;
this.mavlinkNumericUpDown1.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown1.TabIndex = 123;
this.mavlinkNumericUpDown1.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// mavlinkNumericUpDown2
//
this.mavlinkNumericUpDown2.Enabled = false;
this.mavlinkNumericUpDown2.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown2.Location = new System.Drawing.Point(385, 80);
this.mavlinkNumericUpDown2.Max = 1F;
this.mavlinkNumericUpDown2.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown2.Min = 0F;
this.mavlinkNumericUpDown2.Minimum = new decimal(new int[] {
800,
0,
0,
0});
this.mavlinkNumericUpDown2.Name = "mavlinkNumericUpDown2";
this.mavlinkNumericUpDown2.param = null;
this.mavlinkNumericUpDown2.ParamName = null;
this.mavlinkNumericUpDown2.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown2.TabIndex = 122;
this.mavlinkNumericUpDown2.Value = new decimal(new int[] {
2000,
0,
0,
0});
//
// label7
//
this.label7.AutoSize = true;
this.label7.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label7.Location = new System.Drawing.Point(246, 84);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(27, 13);
this.label7.TabIndex = 121;
this.label7.Text = "Max";
//
// label8
//
this.label8.AutoSize = true;
this.label8.ForeColor = System.Drawing.Color.WhiteSmoke;
this.label8.Location = new System.Drawing.Point(246, 56);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(24, 13);
this.label8.TabIndex = 120;
this.label8.Text = "Min";
//
// mavlinkNumericUpDown11
//
this.mavlinkNumericUpDown11.Enabled = false;
this.mavlinkNumericUpDown11.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown11.Location = new System.Drawing.Point(276, 54);
this.mavlinkNumericUpDown11.Max = 1F;
this.mavlinkNumericUpDown11.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown11.Min = 0F;
this.mavlinkNumericUpDown11.Minimum = new decimal(new int[] {
800,
0,
0,
0});
this.mavlinkNumericUpDown11.Name = "mavlinkNumericUpDown11";
this.mavlinkNumericUpDown11.param = null;
this.mavlinkNumericUpDown11.ParamName = null;
this.mavlinkNumericUpDown11.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown11.TabIndex = 119;
this.mavlinkNumericUpDown11.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// mavlinkNumericUpDown12
//
this.mavlinkNumericUpDown12.Enabled = false;
this.mavlinkNumericUpDown12.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.mavlinkNumericUpDown12.Location = new System.Drawing.Point(276, 80);
this.mavlinkNumericUpDown12.Max = 1F;
this.mavlinkNumericUpDown12.Maximum = new decimal(new int[] {
2200,
0,
0,
0});
this.mavlinkNumericUpDown12.Min = 0F;
this.mavlinkNumericUpDown12.Minimum = new decimal(new int[] {
800,
0,
0,
0});
this.mavlinkNumericUpDown12.Name = "mavlinkNumericUpDown12";
this.mavlinkNumericUpDown12.param = null;
this.mavlinkNumericUpDown12.ParamName = null;
this.mavlinkNumericUpDown12.Size = new System.Drawing.Size(59, 20);
this.mavlinkNumericUpDown12.TabIndex = 118;
this.mavlinkNumericUpDown12.Value = new decimal(new int[] {
2000,
0,
0,
0});
//
// mavlinkCheckBox1
//
this.mavlinkCheckBox1.AutoSize = true;
this.mavlinkCheckBox1.Enabled = false;
this.mavlinkCheckBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.mavlinkCheckBox1.Location = new System.Drawing.Point(267, 106);
this.mavlinkCheckBox1.Name = "mavlinkCheckBox1";
this.mavlinkCheckBox1.OffValue = 0F;
this.mavlinkCheckBox1.OnValue = 1F;
this.mavlinkCheckBox1.param = null;
this.mavlinkCheckBox1.ParamName = null;
this.mavlinkCheckBox1.Size = new System.Drawing.Size(66, 17);
this.mavlinkCheckBox1.TabIndex = 117;
this.mavlinkCheckBox1.Text = "Reverse";
this.mavlinkCheckBox1.UseVisualStyleBackColor = true;
//
// mavlinkComboBoxTilt
//
this.mavlinkComboBoxTilt.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.mavlinkComboBoxTilt.Enabled = false;
this.mavlinkComboBoxTilt.FormattingEnabled = true;
this.mavlinkComboBoxTilt.Location = new System.Drawing.Point(71, 3);
this.mavlinkComboBoxTilt.Name = "mavlinkComboBoxTilt";
this.mavlinkComboBoxTilt.param = null;
this.mavlinkComboBoxTilt.ParamName = null;
this.mavlinkComboBoxTilt.Size = new System.Drawing.Size(121, 21);
this.mavlinkComboBoxTilt.TabIndex = 128;
this.mavlinkComboBoxTilt.SelectedIndexChanged += new System.EventHandler(this.mavlinkComboBox_SelectedIndexChanged);
//
// mavlinkComboBoxRoll
//
this.mavlinkComboBoxRoll.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.mavlinkComboBoxRoll.Enabled = false;
this.mavlinkComboBoxRoll.FormattingEnabled = true;
this.mavlinkComboBoxRoll.Location = new System.Drawing.Point(71, 131);
this.mavlinkComboBoxRoll.Name = "mavlinkComboBoxRoll";
this.mavlinkComboBoxRoll.param = null;
this.mavlinkComboBoxRoll.ParamName = null;
this.mavlinkComboBoxRoll.Size = new System.Drawing.Size(121, 21);
this.mavlinkComboBoxRoll.TabIndex = 129;
this.mavlinkComboBoxRoll.SelectedIndexChanged += new System.EventHandler(this.mavlinkComboBox_SelectedIndexChanged);
//
// mavlinkComboBoxPan
//
this.mavlinkComboBoxPan.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.mavlinkComboBoxPan.Enabled = false;
this.mavlinkComboBoxPan.FormattingEnabled = true;
this.mavlinkComboBoxPan.Location = new System.Drawing.Point(71, 255);
this.mavlinkComboBoxPan.Name = "mavlinkComboBoxPan";
this.mavlinkComboBoxPan.param = null;
this.mavlinkComboBoxPan.ParamName = null;
this.mavlinkComboBoxPan.Size = new System.Drawing.Size(121, 21);
this.mavlinkComboBoxPan.TabIndex = 130;
this.mavlinkComboBoxPan.SelectedIndexChanged += new System.EventHandler(this.mavlinkComboBox_SelectedIndexChanged);
//
// ConfigMount
//
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(38)))), ((int)(((byte)(39)))), ((int)(((byte)(40)))));
this.Controls.Add(this.mavlinkComboBoxPan);
this.Controls.Add(this.mavlinkComboBoxRoll);
this.Controls.Add(this.mavlinkComboBoxTilt);
this.Controls.Add(this.label1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label3);
this.Controls.Add(this.label4);
this.Controls.Add(this.mavlinkNumericUpDown1);
this.Controls.Add(this.mavlinkNumericUpDown2);
this.Controls.Add(this.label7);
this.Controls.Add(this.label8);
this.Controls.Add(this.mavlinkNumericUpDown11);
this.Controls.Add(this.mavlinkNumericUpDown12);
this.Controls.Add(this.mavlinkCheckBox1);
this.Controls.Add(this.label16);
this.Controls.Add(this.label17);
this.Controls.Add(this.label18);
this.Controls.Add(this.label19);
this.Controls.Add(this.mavlinkNumericUpDown7);
this.Controls.Add(this.mavlinkNumericUpDown8);
this.Controls.Add(this.label20);
this.Controls.Add(this.label21);
this.Controls.Add(this.mavlinkNumericUpDown9);
this.Controls.Add(this.mavlinkNumericUpDown10);
this.Controls.Add(this.mavlinkCheckBox3);
this.Controls.Add(this.label9);
this.Controls.Add(this.label10);
this.Controls.Add(this.label11);
this.Controls.Add(this.label12);
this.Controls.Add(this.mavlinkNumericUpDown3);
this.Controls.Add(this.mavlinkNumericUpDown4);
this.Controls.Add(this.label13);
this.Controls.Add(this.label14);
this.Controls.Add(this.mavlinkNumericUpDown5);
this.Controls.Add(this.mavlinkNumericUpDown6);
this.Controls.Add(this.mavlinkCheckBox2);
this.Controls.Add(this.label15);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.pictureBox3);
this.Controls.Add(this.LNK_wiki);
this.Controls.Add(this.LBL_Error);
this.Controls.Add(this.PBOX_WarningIcon);
this.Controls.Add(this.label6);
this.Controls.Add(this.label5);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.pictureBox2);
this.Controls.Add(this.pictureBox1);
this.Name = "ConfigMount";
this.Size = new System.Drawing.Size(674, 432);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.PBOX_WarningIcon)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown5)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown6)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown7)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown8)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown9)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown10)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown11)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mavlinkNumericUpDown12)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.PictureBox pictureBox2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label5;
private PictureBoxWithPseudoOpacity PBOX_WarningIcon;
private LabelWithPseudoOpacity LBL_Error;
private System.Windows.Forms.LinkLabel LNK_wiki;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.PictureBox pictureBox3;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label label12;
private MavlinkNumericUpDown mavlinkNumericUpDown3;
private MavlinkNumericUpDown mavlinkNumericUpDown4;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.Label label14;
private MavlinkNumericUpDown mavlinkNumericUpDown5;
private MavlinkNumericUpDown mavlinkNumericUpDown6;
private MavlinkCheckBox mavlinkCheckBox2;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.Label label17;
private System.Windows.Forms.Label label18;
private System.Windows.Forms.Label label19;
private MavlinkNumericUpDown mavlinkNumericUpDown7;
private MavlinkNumericUpDown mavlinkNumericUpDown8;
private System.Windows.Forms.Label label20;
private System.Windows.Forms.Label label21;
private MavlinkNumericUpDown mavlinkNumericUpDown9;
private MavlinkNumericUpDown mavlinkNumericUpDown10;
private MavlinkCheckBox mavlinkCheckBox3;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private MavlinkNumericUpDown mavlinkNumericUpDown1;
private MavlinkNumericUpDown mavlinkNumericUpDown2;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label8;
private MavlinkNumericUpDown mavlinkNumericUpDown11;
private MavlinkNumericUpDown mavlinkNumericUpDown12;
private MavlinkCheckBox mavlinkCheckBox1;
private MavlinkComboBox mavlinkComboBoxTilt;
private MavlinkComboBox mavlinkComboBoxRoll;
private MavlinkComboBox mavlinkComboBoxPan;
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -36,9 +36,10 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
this.backstageView.ActivatePage(backstageView.Pages[0]);
ThemeManager.ApplyThemeTo(this);
if (!MainV2.comPort.BaseStream.IsOpen)
{
ThemeManager.ApplyThemeTo(this);
Common.MessageShowAgain("Config Connect", @"Please connect (click Connect Button) before using setup.
If you are just setting up 3DR radios, you may continue without connecting.");
}
@ -59,7 +60,7 @@ If you are just setting up 3DR radios, you may continue without connecting.");
/******************************HELI **************************/
if (MainV2.comPort.param["H_GYR_ENABLE"] != null) // heli
{
AddBackstageViewPage(new ConfigCameraStab(), "Camera Gimbal");
AddBackstageViewPage(new ConfigMount(), "Camera Gimbal");
AddBackstageViewPage(new ConfigAccelerometerCalibrationQuad(), "ArduCopter Level");
@ -69,11 +70,14 @@ If you are just setting up 3DR radios, you may continue without connecting.");
AddBackstageViewPage(configpanel, "ArduCopter Pids");
AddBackstageViewPage(new ConfigArducopter(), "ArduCopter Config");
AddBackstageViewPage(new ConfigAP_Limits(), "GeoFence");
}
/****************************** ArduCopter **************************/
else if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2)
{
AddBackstageViewPage(new ConfigCameraStab(), "Camera Gimbal");
//AddBackstageViewPage(new ConfigCameraStab(), "Camera Gimbal");
AddBackstageViewPage(new ConfigMount(), "Camera Gimbal");
AddBackstageViewPage(new ConfigAccelerometerCalibrationQuad(), "ArduCopter Level");

View File

@ -24,6 +24,13 @@
this.displayBatteryInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabQuick = new System.Windows.Forms.TabPage();
this.quickView6 = new ArdupilotMega.Controls.QuickView();
this.quickView5 = new ArdupilotMega.Controls.QuickView();
this.quickView4 = new ArdupilotMega.Controls.QuickView();
this.quickView3 = new ArdupilotMega.Controls.QuickView();
this.quickView2 = new ArdupilotMega.Controls.QuickView();
this.quickView1 = new ArdupilotMega.Controls.QuickView();
this.tabActions = new System.Windows.Forms.TabPage();
this.BUT_script = new ArdupilotMega.Controls.MyButton();
this.BUT_joystick = new ArdupilotMega.Controls.MyButton();
@ -85,6 +92,7 @@
this.contextMenuStrip2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
this.tabControl1.SuspendLayout();
this.tabQuick.SuspendLayout();
this.tabActions.SuspendLayout();
this.tabGauges.SuspendLayout();
this.tabTLogs.SuspendLayout();
@ -258,6 +266,7 @@
//
// tabControl1
//
this.tabControl1.Controls.Add(this.tabQuick);
this.tabControl1.Controls.Add(this.tabActions);
this.tabControl1.Controls.Add(this.tabGauges);
this.tabControl1.Controls.Add(this.tabStatus);
@ -268,6 +277,78 @@
this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem);
this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
//
// tabQuick
//
resources.ApplyResources(this.tabQuick, "tabQuick");
this.tabQuick.Controls.Add(this.quickView6);
this.tabQuick.Controls.Add(this.quickView5);
this.tabQuick.Controls.Add(this.quickView4);
this.tabQuick.Controls.Add(this.quickView3);
this.tabQuick.Controls.Add(this.quickView2);
this.tabQuick.Controls.Add(this.quickView1);
this.tabQuick.Name = "tabQuick";
this.tabQuick.UseVisualStyleBackColor = true;
//
// quickView6
//
this.quickView6.DataBindings.Add(new System.Windows.Forms.Binding("number", this.bindingSource1, "DistToMAV", true));
this.quickView6.desc = "DistToMAV";
resources.ApplyResources(this.quickView6, "quickView6");
this.quickView6.Name = "quickView6";
this.quickView6.number = "0.0";
this.quickView6.numberColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
this.quickView6.DoubleClick += new System.EventHandler(this.quickView_DoubleClick);
//
// quickView5
//
this.quickView5.DataBindings.Add(new System.Windows.Forms.Binding("number", this.bindingSource1, "verticalspeed", true));
this.quickView5.desc = "verticalspeed";
resources.ApplyResources(this.quickView5, "quickView5");
this.quickView5.Name = "quickView5";
this.quickView5.number = "0.0";
this.quickView5.numberColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(254)))), ((int)(((byte)(86)))));
this.quickView5.DoubleClick += new System.EventHandler(this.quickView_DoubleClick);
//
// quickView4
//
this.quickView4.DataBindings.Add(new System.Windows.Forms.Binding("number", this.bindingSource1, "yaw", true));
this.quickView4.desc = "yaw";
resources.ApplyResources(this.quickView4, "quickView4");
this.quickView4.Name = "quickView4";
this.quickView4.number = "0.0";
this.quickView4.numberColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(255)))), ((int)(((byte)(83)))));
this.quickView4.DoubleClick += new System.EventHandler(this.quickView_DoubleClick);
//
// quickView3
//
this.quickView3.DataBindings.Add(new System.Windows.Forms.Binding("number", this.bindingSource1, "wp_dist", true));
this.quickView3.desc = "wp_dist";
resources.ApplyResources(this.quickView3, "quickView3");
this.quickView3.Name = "quickView3";
this.quickView3.number = "0.0";
this.quickView3.numberColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(96)))), ((int)(((byte)(91)))));
this.quickView3.DoubleClick += new System.EventHandler(this.quickView_DoubleClick);
//
// quickView2
//
this.quickView2.DataBindings.Add(new System.Windows.Forms.Binding("number", this.bindingSource1, "groundspeed", true));
this.quickView2.desc = "groundspeed";
resources.ApplyResources(this.quickView2, "quickView2");
this.quickView2.Name = "quickView2";
this.quickView2.number = "0.0";
this.quickView2.numberColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(132)))), ((int)(((byte)(46)))));
this.quickView2.DoubleClick += new System.EventHandler(this.quickView_DoubleClick);
//
// quickView1
//
this.quickView1.DataBindings.Add(new System.Windows.Forms.Binding("number", this.bindingSource1, "alt", true));
this.quickView1.desc = "alt";
resources.ApplyResources(this.quickView1, "quickView1");
this.quickView1.Name = "quickView1";
this.quickView1.number = "0.0";
this.quickView1.numberColor = System.Drawing.Color.FromArgb(((int)(((byte)(209)))), ((int)(((byte)(151)))), ((int)(((byte)(248)))));
this.quickView1.DoubleClick += new System.EventHandler(this.quickView_DoubleClick);
//
// tabActions
//
this.tabActions.Controls.Add(this.BUT_script);
@ -1175,6 +1256,7 @@
this.contextMenuStrip2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
this.tabControl1.ResumeLayout(false);
this.tabQuick.ResumeLayout(false);
this.tabActions.ResumeLayout(false);
this.tabGauges.ResumeLayout(false);
this.tabTLogs.ResumeLayout(false);
@ -1257,5 +1339,12 @@
private System.Windows.Forms.ToolStripMenuItem setMJPEGSourceToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem setAspectRatioToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem displayBatteryInfoToolStripMenuItem;
private System.Windows.Forms.TabPage tabQuick;
private Controls.QuickView quickView3;
private Controls.QuickView quickView2;
private Controls.QuickView quickView1;
private Controls.QuickView quickView4;
private Controls.QuickView quickView6;
private Controls.QuickView quickView5;
}
}

View File

@ -125,6 +125,25 @@ namespace ArdupilotMega.GCSViews
chk_box_CheckedChanged((object)(new CheckBox() { Name = "nav_pitch", Checked = true }), new EventArgs());
}
for (int f = 1; f < 10; f++ )
{
// load settings
if (MainV2.config["quickView" + f] != null)
{
Control[] ctls = this.Controls.Find("quickView" + f, true);
if (ctls.Length > 0)
{
// set description
((QuickView)ctls[0]).desc = MainV2.config["quickView" + f].ToString();
// set databinding for value
((QuickView)ctls[0]).DataBindings.Clear();
((QuickView)ctls[0]).DataBindings.Add(new System.Windows.Forms.Binding("number", this.bindingSource1, MainV2.config["quickView" + f].ToString(), true));
}
}
}
List<string> list = new List<string>();
//foreach (object obj in Enum.GetValues(typeof(MAVLink09.MAV_ACTION)))
@ -202,6 +221,8 @@ namespace ArdupilotMega.GCSViews
if (CB_tuning.Checked)
ZedGraphTimer.Start();
hud1.Visible = true;
hud1.Enabled = true;
// SubMainLeft.Panel1.Controls.Clear();
// SubMainLeft.Panel1.Controls.Add(hud1);
}
@ -209,7 +230,10 @@ namespace ArdupilotMega.GCSViews
public void Deactivate()
{
//SubMainLeft.Panel1.Controls.Remove(hud1);
hud1.Size = new System.Drawing.Size(0, 0);
hud1.Visible = false;
hud1.Enabled = false;
ZedGraphTimer.Stop();
}
@ -504,8 +528,11 @@ namespace ArdupilotMega.GCSViews
foreach (PointLatLngAlt plla in FlightPlanner.pointlist)
{
if (plla == null || plla.Lng == 0 || plla.Lat == 0)
if (plla == null)
break;
if (plla.Lng == 0 || plla.Lat == 0)
continue;
addpolygonmarker(plla.Tag, plla.Lng, plla.Lat, (int)plla.Alt,plla.color,polygons);
}
@ -514,11 +541,6 @@ namespace ArdupilotMega.GCSViews
waypoints = DateTime.Now;
}
if (MainV2.cs.mode.ToLower() == "guided" && GuidedModeWP != null && GuidedModeWP.Lat != 0)
{
addpolygonmarker("Guided Mode", GuidedModeWP.Lng, GuidedModeWP.Lat, (int)GuidedModeWP.Alt, Color.Blue, routes);
}
//routes.Polygons.Add(poly);
if (route.Points.Count > 0)
@ -530,6 +552,11 @@ namespace ArdupilotMega.GCSViews
routes.Markers.Add( new GMapMarkerCross(currentloc));
}
if (MainV2.cs.mode.ToLower() == "guided" && GuidedModeWP != null && GuidedModeWP.Lat != 0)
{
addpolygonmarker("Guided Mode", GuidedModeWP.Lng, GuidedModeWP.Lat, (int)GuidedModeWP.Alt, Color.Blue, routes);
}
if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
{
routes.Markers[0] = (new GMapMarkerPlane(currentloc, MainV2.cs.yaw, MainV2.cs.groundcourse, MainV2.cs.nav_bearing, MainV2.cs.target_bearing, gMapControl1));
@ -1420,25 +1447,30 @@ namespace ArdupilotMega.GCSViews
if (add)
{
lbl1.Location = new Point(x, y);
lbl1.Size = new System.Drawing.Size(75, 13);
lbl1.Text = field.Name;
lbl1.Name = field.Name;
lbl1.Visible = true;
lbl2.AutoSize = false;
lbl1.Location = new Point(x, y);
lbl1.Size = new System.Drawing.Size(75, 13);
lbl1.Text = field.Name;
lbl1.Name = field.Name;
lbl1.Visible = true;
lbl2.AutoSize = false;
lbl2.Location = new Point(lbl1.Right + 5, y);
lbl2.Size = new System.Drawing.Size(50, 13);
//if (lbl2.Name == "")
lbl2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bindingSource1, field.Name, true, System.Windows.Forms.DataSourceUpdateMode.OnValidation, ""));
lbl2.Name = field.Name + "value";
lbl2.Visible = true;
//lbl2.Text = fieldValue.ToString();
lbl2.Location = new Point(lbl1.Right + 5, y);
lbl2.Size = new System.Drawing.Size(50, 13);
//if (lbl2.Name == "")
lbl2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bindingSource1, field.Name, true, System.Windows.Forms.DataSourceUpdateMode.OnValidation, ""));
lbl2.Name = field.Name + "value";
lbl2.Visible = true;
//lbl2.Text = fieldValue.ToString();
tabStatus.Controls.Add(lbl1);
tabStatus.Controls.Add(lbl2);
}
else
{
lbl1.Location = new Point(x, y);
lbl2.Location = new Point(lbl1.Right + 5, y);
}
//Application.DoEvents();
@ -1940,5 +1972,87 @@ print 'Roll complete'
hud1.batteryon = !hud1.batteryon;
}
private void quickView_DoubleClick(object sender, EventArgs e)
{
Form selectform = new Form()
{
Name = "select",
Width = 50,
Height = 250,
Text = "Display This"
};
int x = 10;
int y = 10;
object thisBoxed = MainV2.cs;
Type test = thisBoxed.GetType();
foreach (var field in test.GetProperties())
{
// field.Name has the field's name.
object fieldValue;
try
{
fieldValue = field.GetValue(thisBoxed, null); // Get value
}
catch { continue; }
// Get the TypeCode enumeration. Multiple types get mapped to a common typecode.
TypeCode typeCode = Type.GetTypeCode(fieldValue.GetType());
if (!(typeCode == TypeCode.Single))
continue;
CheckBox chk_box = new CheckBox();
if (((QuickView)sender).desc == field.Name)
chk_box.Checked = true;
chk_box.Text = field.Name;
chk_box.Name = field.Name;
chk_box.Tag = ((QuickView)sender);
chk_box.Location = new Point(x, y);
chk_box.Size = new System.Drawing.Size(100, 20);
chk_box.CheckedChanged += new EventHandler(chk_box_quickview_CheckedChanged);
selectform.Controls.Add(chk_box);
Application.DoEvents();
x += 0;
y += 20;
if (y > selectform.Height - 50)
{
x += 100;
y = 10;
selectform.Width = x + 100;
}
}
ThemeManager.ApplyThemeTo(selectform);
selectform.Show();
}
void chk_box_quickview_CheckedChanged(object sender, EventArgs e)
{
if (((CheckBox)sender).Checked)
{
// save settings
MainV2.config[((QuickView)((CheckBox)sender).Tag).Name] = ((CheckBox)sender).Name;
// set description
((QuickView)((CheckBox)sender).Tag).desc = ((CheckBox)sender).Name;
// set databinding for value
((QuickView)((CheckBox)sender).Tag).DataBindings.Clear();
((QuickView)((CheckBox)sender).Tag).DataBindings.Add(new System.Windows.Forms.Binding("number",this.bindingSource1, ((CheckBox)sender).Name, true));
// close selection form
((Form)((CheckBox)sender).Parent).Close();
}
}
}
}

View File

@ -226,7 +226,7 @@
<value>hud1</value>
</data>
<data name="&gt;&gt;hud1.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.HUD, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.HUD, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;hud1.Parent" xml:space="preserve">
<value>SubMainLeft.Panel1</value>
@ -246,6 +246,162 @@
<data name="&gt;&gt;SubMainLeft.Panel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tabQuick.AutoScroll" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="quickView6.Location" type="System.Drawing.Point, System.Drawing">
<value>33, 272</value>
</data>
<data name="quickView6.Size" type="System.Drawing.Size, System.Drawing">
<value>335, 55</value>
</data>
<data name="quickView6.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;quickView6.Name" xml:space="preserve">
<value>quickView6</value>
</data>
<data name="&gt;&gt;quickView6.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.QuickView, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;quickView6.Parent" xml:space="preserve">
<value>tabQuick</value>
</data>
<data name="&gt;&gt;quickView6.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="quickView5.Location" type="System.Drawing.Point, System.Drawing">
<value>33, 224</value>
</data>
<data name="quickView5.Size" type="System.Drawing.Size, System.Drawing">
<value>335, 55</value>
</data>
<data name="quickView5.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="&gt;&gt;quickView5.Name" xml:space="preserve">
<value>quickView5</value>
</data>
<data name="&gt;&gt;quickView5.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.QuickView, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;quickView5.Parent" xml:space="preserve">
<value>tabQuick</value>
</data>
<data name="&gt;&gt;quickView5.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="quickView4.Location" type="System.Drawing.Point, System.Drawing">
<value>33, 168</value>
</data>
<data name="quickView4.Size" type="System.Drawing.Size, System.Drawing">
<value>335, 55</value>
</data>
<data name="quickView4.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="&gt;&gt;quickView4.Name" xml:space="preserve">
<value>quickView4</value>
</data>
<data name="&gt;&gt;quickView4.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.QuickView, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;quickView4.Parent" xml:space="preserve">
<value>tabQuick</value>
</data>
<data name="&gt;&gt;quickView4.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="quickView3.Location" type="System.Drawing.Point, System.Drawing">
<value>33, 112</value>
</data>
<data name="quickView3.Size" type="System.Drawing.Size, System.Drawing">
<value>335, 55</value>
</data>
<data name="quickView3.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;quickView3.Name" xml:space="preserve">
<value>quickView3</value>
</data>
<data name="&gt;&gt;quickView3.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.QuickView, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;quickView3.Parent" xml:space="preserve">
<value>tabQuick</value>
</data>
<data name="&gt;&gt;quickView3.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="quickView2.Location" type="System.Drawing.Point, System.Drawing">
<value>33, 55</value>
</data>
<data name="quickView2.Size" type="System.Drawing.Size, System.Drawing">
<value>335, 55</value>
</data>
<data name="quickView2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;quickView2.Name" xml:space="preserve">
<value>quickView2</value>
</data>
<data name="&gt;&gt;quickView2.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.QuickView, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;quickView2.Parent" xml:space="preserve">
<value>tabQuick</value>
</data>
<data name="&gt;&gt;quickView2.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="quickView1.Location" type="System.Drawing.Point, System.Drawing">
<value>33, 6</value>
</data>
<data name="quickView1.Size" type="System.Drawing.Size, System.Drawing">
<value>335, 55</value>
</data>
<data name="quickView1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;quickView1.Name" xml:space="preserve">
<value>quickView1</value>
</data>
<data name="&gt;&gt;quickView1.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.QuickView, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;quickView1.Parent" xml:space="preserve">
<value>tabQuick</value>
</data>
<data name="&gt;&gt;quickView1.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="tabQuick.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
</data>
<data name="tabQuick.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tabQuick.Size" type="System.Drawing.Size, System.Drawing">
<value>407, 116</value>
</data>
<data name="tabQuick.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="tabQuick.Text" xml:space="preserve">
<value>Quick</value>
</data>
<data name="&gt;&gt;tabQuick.Name" xml:space="preserve">
<value>tabQuick</value>
</data>
<data name="&gt;&gt;tabQuick.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tabQuick.Parent" xml:space="preserve">
<value>tabControl1</value>
</data>
<data name="&gt;&gt;tabQuick.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="BUT_script.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
@ -265,7 +421,7 @@
<value>BUT_script</value>
</data>
<data name="&gt;&gt;BUT_script.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_script.Parent" xml:space="preserve">
<value>tabActions</value>
@ -298,7 +454,7 @@
<value>BUT_joystick</value>
</data>
<data name="&gt;&gt;BUT_joystick.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_joystick.Parent" xml:space="preserve">
<value>tabActions</value>
@ -328,7 +484,7 @@
<value>BUT_quickmanual</value>
</data>
<data name="&gt;&gt;BUT_quickmanual.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_quickmanual.Parent" xml:space="preserve">
<value>tabActions</value>
@ -358,7 +514,7 @@
<value>BUT_quickrtl</value>
</data>
<data name="&gt;&gt;BUT_quickrtl.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_quickrtl.Parent" xml:space="preserve">
<value>tabActions</value>
@ -388,7 +544,7 @@
<value>BUT_quickauto</value>
</data>
<data name="&gt;&gt;BUT_quickauto.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_quickauto.Parent" xml:space="preserve">
<value>tabActions</value>
@ -442,7 +598,7 @@
<value>BUT_setwp</value>
</data>
<data name="&gt;&gt;BUT_setwp.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_setwp.Parent" xml:space="preserve">
<value>tabActions</value>
@ -493,7 +649,7 @@
<value>BUT_setmode</value>
</data>
<data name="&gt;&gt;BUT_setmode.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_setmode.Parent" xml:space="preserve">
<value>tabActions</value>
@ -523,7 +679,7 @@
<value>BUT_clear_track</value>
</data>
<data name="&gt;&gt;BUT_clear_track.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_clear_track.Parent" xml:space="preserve">
<value>tabActions</value>
@ -574,7 +730,7 @@
<value>BUT_Homealt</value>
</data>
<data name="&gt;&gt;BUT_Homealt.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_Homealt.Parent" xml:space="preserve">
<value>tabActions</value>
@ -604,7 +760,7 @@
<value>BUT_RAWSensor</value>
</data>
<data name="&gt;&gt;BUT_RAWSensor.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_RAWSensor.Parent" xml:space="preserve">
<value>tabActions</value>
@ -634,7 +790,7 @@
<value>BUTrestartmission</value>
</data>
<data name="&gt;&gt;BUTrestartmission.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUTrestartmission.Parent" xml:space="preserve">
<value>tabActions</value>
@ -664,7 +820,7 @@
<value>BUTactiondo</value>
</data>
<data name="&gt;&gt;BUTactiondo.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUTactiondo.Parent" xml:space="preserve">
<value>tabActions</value>
@ -694,7 +850,7 @@
<value>tabControl1</value>
</data>
<data name="&gt;&gt;tabActions.ZOrder" xml:space="preserve">
<value>0</value>
<value>1</value>
</data>
<data name="Gvspeed.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<value>Zoom</value>
@ -718,7 +874,7 @@
<value>Gvspeed</value>
</data>
<data name="&gt;&gt;Gvspeed.Type" xml:space="preserve">
<value>AGaugeApp.AGauge, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>AGaugeApp.AGauge, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;Gvspeed.Parent" xml:space="preserve">
<value>tabGauges</value>
@ -748,7 +904,7 @@
<value>Gheading</value>
</data>
<data name="&gt;&gt;Gheading.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.HSI, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.HSI, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;Gheading.Parent" xml:space="preserve">
<value>tabGauges</value>
@ -778,7 +934,7 @@
<value>Galt</value>
</data>
<data name="&gt;&gt;Galt.Type" xml:space="preserve">
<value>AGaugeApp.AGauge, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>AGaugeApp.AGauge, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;Galt.Parent" xml:space="preserve">
<value>tabGauges</value>
@ -811,7 +967,7 @@
<value>Gspeed</value>
</data>
<data name="&gt;&gt;Gspeed.Type" xml:space="preserve">
<value>AGaugeApp.AGauge, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>AGaugeApp.AGauge, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;Gspeed.Parent" xml:space="preserve">
<value>tabGauges</value>
@ -844,7 +1000,7 @@
<value>tabControl1</value>
</data>
<data name="&gt;&gt;tabGauges.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<data name="tabStatus.AutoScroll" type="System.Boolean, mscorlib">
<value>True</value>
@ -874,7 +1030,7 @@
<value>tabControl1</value>
</data>
<data name="&gt;&gt;tabStatus.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<data name="lbl_playbackspeed.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
@ -895,7 +1051,7 @@
<value>lbl_playbackspeed</value>
</data>
<data name="&gt;&gt;lbl_playbackspeed.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lbl_playbackspeed.Parent" xml:space="preserve">
<value>tabTLogs</value>
@ -922,7 +1078,7 @@
<value>lbl_logpercent</value>
</data>
<data name="&gt;&gt;lbl_logpercent.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lbl_logpercent.Parent" xml:space="preserve">
<value>tabTLogs</value>
@ -949,7 +1105,7 @@
<value>NUM_playbackspeed</value>
</data>
<data name="&gt;&gt;NUM_playbackspeed.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyTrackBar, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyTrackBar, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;NUM_playbackspeed.Parent" xml:space="preserve">
<value>tabTLogs</value>
@ -976,7 +1132,7 @@
<value>BUT_log2kml</value>
</data>
<data name="&gt;&gt;BUT_log2kml.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_log2kml.Parent" xml:space="preserve">
<value>tabTLogs</value>
@ -1030,7 +1186,7 @@
<value>BUT_playlog</value>
</data>
<data name="&gt;&gt;BUT_playlog.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_playlog.Parent" xml:space="preserve">
<value>tabTLogs</value>
@ -1057,7 +1213,7 @@
<value>BUT_loadtelem</value>
</data>
<data name="&gt;&gt;BUT_loadtelem.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyButton, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;BUT_loadtelem.Parent" xml:space="preserve">
<value>tabTLogs</value>
@ -1087,7 +1243,7 @@
<value>tabControl1</value>
</data>
<data name="&gt;&gt;tabTLogs.ZOrder" xml:space="preserve">
<value>3</value>
<value>4</value>
</data>
<data name="tabControl1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -1246,7 +1402,7 @@
<value>lbl_hdop</value>
</data>
<data name="&gt;&gt;lbl_hdop.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lbl_hdop.Parent" xml:space="preserve">
<value>splitContainer1.Panel2</value>
@ -1279,7 +1435,7 @@
<value>lbl_sats</value>
</data>
<data name="&gt;&gt;lbl_sats.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lbl_sats.Parent" xml:space="preserve">
<value>splitContainer1.Panel2</value>
@ -1309,7 +1465,7 @@
<value>lbl_winddir</value>
</data>
<data name="&gt;&gt;lbl_winddir.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lbl_winddir.Parent" xml:space="preserve">
<value>splitContainer1.Panel2</value>
@ -1339,7 +1495,7 @@
<value>lbl_windvel</value>
</data>
<data name="&gt;&gt;lbl_windvel.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lbl_windvel.Parent" xml:space="preserve">
<value>splitContainer1.Panel2</value>
@ -1511,7 +1667,7 @@
<value>gMapControl1</value>
</data>
<data name="&gt;&gt;gMapControl1.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.myGMAP, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.myGMAP, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;gMapControl1.Parent" xml:space="preserve">
<value>splitContainer1.Panel2</value>
@ -1574,7 +1730,7 @@
<value>TXT_lat</value>
</data>
<data name="&gt;&gt;TXT_lat.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;TXT_lat.Parent" xml:space="preserve">
<value>panel1</value>
@ -1631,7 +1787,7 @@
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>panel1</value>
@ -1661,7 +1817,7 @@
<value>TXT_long</value>
</data>
<data name="&gt;&gt;TXT_long.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;TXT_long.Parent" xml:space="preserve">
<value>panel1</value>
@ -1691,7 +1847,7 @@
<value>TXT_alt</value>
</data>
<data name="&gt;&gt;TXT_alt.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;TXT_alt.Parent" xml:space="preserve">
<value>panel1</value>
@ -1892,7 +2048,7 @@
<value>label6</value>
</data>
<data name="&gt;&gt;label6.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;label6.Parent" xml:space="preserve">
<value>$this</value>
@ -1988,6 +2144,6 @@
<value>FlightData</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.MyUserControl, ArdupilotMegaPlanner10, Version=1.1.4585.31842, Culture=neutral, PublicKeyToken=null</value>
<value>System.Windows.Forms.MyUserControl, ArdupilotMegaPlanner10, Version=1.1.4587.33706, Culture=neutral, PublicKeyToken=null</value>
</data>
</root>

View File

@ -574,8 +574,10 @@ namespace ArdupilotMega.GCSViews
DateTime lastdata = DateTime.MinValue;
#if MAVLINK10
// set enable hil status flag - sends base_mode = 0
MainV2.comPort.setMode(new MAVLink.mavlink_set_mode_t() { target_system = MainV2.comPort.sysid }, MAVLink.MAV_MODE_FLAG.HIL_ENABLED);
#endif
while (threadrun == 1)
{
@ -873,7 +875,7 @@ namespace ArdupilotMega.GCSViews
gps.v = ((float)(DATA[3][7] * 0.44704));
#endif
asp.airspeed = ((float)(DATA[3][5] * 0.44704));
asp.airspeed = ((float)(DATA[3][5] * .0044704));
}
@ -1243,8 +1245,8 @@ namespace ArdupilotMega.GCSViews
hilstate.roll = att.roll;
hilstate.rollspeed = att.rollspeed;
hilstate.time_usec = gps.time_usec;
hilstate.vx = (short)(gps.vel * Math.Sin(gps.cog / 100.0 * deg2rad));
hilstate.vy = (short)(gps.vel * Math.Cos(gps.cog / 100.0 * deg2rad));
hilstate.vx = (short)(gps.vel * Math.Sin(gps.cog * deg2rad));
hilstate.vy = (short)(gps.vel * Math.Cos(gps.cog * deg2rad));
hilstate.vz = 0;
hilstate.xacc = imu.xacc;
hilstate.yacc = imu.yacc;

View File

@ -382,6 +382,7 @@ namespace ArdupilotMega
this.connectionStatsForm.Controls.Clear();
_connectionStats = new ConnectionStats(comPort);
this.connectionStatsForm.Controls.Add(_connectionStats);
this.connectionStatsForm.Width = _connectionStats.Width;
}
this.connectionStatsForm.Show();
@ -1598,7 +1599,7 @@ namespace ArdupilotMega
if (MONO)
{
process.StartInfo.FileName = "mono";
process.StartInfo.Arguments = " \"" + exePath + Path.DirectorySeparatorChar + "Updater.exe\"" + "\"" + Application.ExecutablePath + "\"";
process.StartInfo.Arguments = " \"" + exePath + Path.DirectorySeparatorChar + "Updater.exe\"" + " \"" + Application.ExecutablePath + "\"";
}
else
{

View File

@ -2034,11 +2034,13 @@ namespace ArdupilotMega
public void setMode(mavlink_set_mode_t mode, MAV_MODE_FLAG base_mode = 0)
{
#if MAVLINK10
mode.base_mode |= (byte)base_mode;
generatePacket((byte)MAVLink.MAVLINK_MSG_ID_SET_MODE, mode);
System.Threading.Thread.Sleep(10);
generatePacket((byte)MAVLink.MAVLINK_MSG_ID_SET_MODE, mode);
#endif
}
/// <summary>
@ -2281,7 +2283,7 @@ namespace ArdupilotMega
throw new Exception(message);
}
#else
if (temp.Length == 17 && temp[0] == 254 && temp[5] == 0)
if (buffer.Length == 17 && buffer[0] == 254 && buffer[5] == 0)
{
string message = "Mavlink 1.0 Heartbeat, Please Upgrade your Mission Planner, This planner is for Mavlink 0.9\n\n";
System.Windows.Forms.CustomMessageBox.Show(message);
@ -2421,15 +2423,15 @@ namespace ArdupilotMega
void getWPsfromstream(ref byte[] buffer)
{
#if MAVLINK10
if (buffer[5] == MAVLINK_MSG_ID_MISSION_COUNT)
{
// clear old
wps = new PointLatLngAlt[wps.Length];
}
if (buffer[5] == MAVLINK_MSG_ID_MISSION_COUNT)
{
// clear old
wps = new PointLatLngAlt[wps.Length];
}
if (buffer[5] == MAVLink.MAVLINK_MSG_ID_MISSION_ITEM)
{
mavlink_mission_item_t wp = buffer.ByteArrayToStructure<mavlink_mission_item_t>(6);
if (buffer[5] == MAVLink.MAVLINK_MSG_ID_MISSION_ITEM)
{
mavlink_mission_item_t wp = buffer.ByteArrayToStructure<mavlink_mission_item_t>(6);
#else
if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT_COUNT)
@ -2444,6 +2446,8 @@ namespace ArdupilotMega
#endif
wps[wp.seq] = new PointLatLngAlt(wp.x, wp.y, wp.z, wp.seq.ToString());
Console.WriteLine("WP # {7} cmd {8} p1 {0} p2 {1} p3 {2} p4 {3} x {4} y {5} z {6}",wp.param1,wp.param2,wp.param3,wp.param4,wp.x,wp.y,wp.z,wp.seq,wp.command);
}
}

View File

@ -125,6 +125,31 @@ namespace ArdupilotMega
ENUM_END=246,
};
/** @brief These flags encode the MAV mode. */
public enum MAV_MODE_FLAG
{
///<summary> 0b00000001 Reserved for future use. | </summary>
CUSTOM_MODE_ENABLED = 1,
///<summary> 0b00000010 system has a test mode enabled. This flag is intended for temporary system tests and should not be used for stable implementations. | </summary>
TEST_ENABLED = 2,
///<summary> 0b00000100 autonomous mode enabled, system finds its own goal positions. Guided flag can be set or not, depends on the actual implementation. | </summary>
AUTO_ENABLED = 4,
///<summary> 0b00001000 guided mode enabled, system flies MISSIONs / mission items. | </summary>
GUIDED_ENABLED = 8,
///<summary> 0b00010000 system stabilizes electronically its attitude (and optionally position). It needs however further control inputs to move around. | </summary>
STABILIZE_ENABLED = 16,
///<summary> 0b00100000 hardware in the loop simulation. All motors / actuators are blocked, but internal software is full operational. | </summary>
HIL_ENABLED = 32,
///<summary> 0b01000000 remote control input is enabled. | </summary>
MANUAL_INPUT_ENABLED = 64,
///<summary> 0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. | </summary>
SAFETY_ARMED = 128,
///<summary> | </summary>
ENUM_END = 129,
};
/** @brief */
public enum FENCE_ACTION

View File

@ -2,14 +2,14 @@
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" xmlns:difx="http://schemas.microsoft.com/wix/DifxAppExtension">
<Product Id="*" Name="APM Planner" Language="1033" Version="1.1.97" Manufacturer="Michael Oborne" UpgradeCode="{625389D7-EB3C-4d77-A5F6-A285CF99437D}">
<Product Id="*" Name="APM Planner" Language="1033" Version="1.1.99" Manufacturer="Michael Oborne" UpgradeCode="{625389D7-EB3C-4d77-A5F6-A285CF99437D}">
<Package Description="APM Planner Installer" Comments="Apm Planner Installer" Manufacturer="Michael Oborne" InstallerVersion="200" Compressed="yes" />
<Upgrade Id="{625389D7-EB3C-4d77-A5F6-A285CF99437D}">
<UpgradeVersion OnlyDetect="yes" Minimum="1.1.97" Property="NEWERVERSIONDETECTED" IncludeMinimum="no" />
<UpgradeVersion OnlyDetect="no" Maximum="1.1.97" Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" />
<UpgradeVersion OnlyDetect="yes" Minimum="1.1.99" Property="NEWERVERSIONDETECTED" IncludeMinimum="no" />
<UpgradeVersion OnlyDetect="no" Maximum="1.1.99" Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" />
</Upgrade>
<InstallExecuteSequence>
@ -31,7 +31,7 @@
<Permission User="Everyone" GenericAll="yes" />
</CreateFolder>
</Component>
<Component Id="_comp1" Guid="ca2a9504-1ff4-4dcc-ae3f-29a0034e7341">
<Component Id="_comp1" Guid="cfe0ddd0-0732-4beb-8a9e-0689155a8ff7">
<File Id="_2" Source="..\bin\release\.gdbinit" />
<File Id="_3" Source="..\bin\release\.gitignore" />
<File Id="_4" Source="..\bin\release\aerosim3.91.txt" />
@ -107,11 +107,11 @@
<File Id="_74" Source="..\bin\release\ZedGraph.dll" />
</Component>
<Directory Id="aircraft74" Name="aircraft">
<Component Id="_comp75" Guid="908d5437-38f1-49a8-8642-93dc0f7d8db2">
<Component Id="_comp75" Guid="31348cb7-5b6e-49d9-a7a9-09c767f9116e">
<File Id="_76" Source="..\bin\release\aircraft\placeholder.txt" />
</Component>
<Directory Id="arducopter76" Name="arducopter">
<Component Id="_comp77" Guid="c73a000c-e8c8-4cf9-80aa-100b3d4ffc8f">
<Component Id="_comp77" Guid="53ee8643-5f00-48ea-b8db-eb92e8e01255">
<File Id="_78" Source="..\bin\release\aircraft\arducopter\arducopter-set.xml" />
<File Id="_79" Source="..\bin\release\aircraft\arducopter\arducopter.jpg" />
<File Id="_80" Source="..\bin\release\aircraft\arducopter\arducopter.xml" />
@ -122,20 +122,20 @@
<File Id="_85" Source="..\bin\release\aircraft\arducopter\README" />
</Component>
<Directory Id="data85" Name="data">
<Component Id="_comp86" Guid="f1216dc7-61ab-48c4-9e21-c3cc0c5708e2">
<Component Id="_comp86" Guid="34d12f92-99d7-4698-bba4-ba3e99205d1e">
<File Id="_87" Source="..\bin\release\aircraft\arducopter\data\arducopter_half_step.txt" />
<File Id="_88" Source="..\bin\release\aircraft\arducopter\data\arducopter_step.txt" />
<File Id="_89" Source="..\bin\release\aircraft\arducopter\data\rw_generic_pylon.ac" />
</Component>
</Directory>
<Directory Id="Engines89" Name="Engines">
<Component Id="_comp90" Guid="05137442-a8a4-48fe-b97c-28cf16c942ed">
<Component Id="_comp90" Guid="db243c75-5c96-4730-9c7e-4e1197d5bd3b">
<File Id="_91" Source="..\bin\release\aircraft\arducopter\Engines\a2830-12.xml" />
<File Id="_92" Source="..\bin\release\aircraft\arducopter\Engines\prop10x4.5.xml" />
</Component>
</Directory>
<Directory Id="Models92" Name="Models">
<Component Id="_comp93" Guid="9eed71d0-d0e6-4ae1-a553-1238d819cf1a">
<Component Id="_comp93" Guid="641c20ea-69a2-4964-be35-4e359192ede0">
<File Id="_94" Source="..\bin\release\aircraft\arducopter\Models\arducopter.ac" />
<File Id="_95" Source="..\bin\release\aircraft\arducopter\Models\arducopter.xml" />
<File Id="_96" Source="..\bin\release\aircraft\arducopter\Models\plus_quad.ac" />
@ -149,7 +149,7 @@
</Directory>
</Directory>
<Directory Id="Rascal102" Name="Rascal">
<Component Id="_comp103" Guid="6b8ea520-d2c2-4e03-9fbd-6ddf6cf5e6d9">
<Component Id="_comp103" Guid="668ed46e-d67f-4d7b-8492-3b9cbd8bde52">
<File Id="_104" Source="..\bin\release\aircraft\Rascal\Rascal-keyboard.xml" />
<File Id="_105" Source="..\bin\release\aircraft\Rascal\Rascal-submodels.xml" />
<File Id="_106" Source="..\bin\release\aircraft\Rascal\Rascal.xml" />
@ -161,13 +161,13 @@
<File Id="_112" Source="..\bin\release\aircraft\Rascal\thumbnail.jpg" />
</Component>
<Directory Id="Engines112" Name="Engines">
<Component Id="_comp113" Guid="a8edb6d3-b79f-4169-968b-06234f4f4ba0">
<Component Id="_comp113" Guid="10bf9f82-c138-4be0-9e6f-5408b93b6634">
<File Id="_114" Source="..\bin\release\aircraft\Rascal\Engines\18x8.xml" />
<File Id="_115" Source="..\bin\release\aircraft\Rascal\Engines\Zenoah_G-26A.xml" />
</Component>
</Directory>
<Directory Id="Models115" Name="Models">
<Component Id="_comp116" Guid="491e588f-3a89-4a5e-bba2-d1a08e96ed22">
<Component Id="_comp116" Guid="d677c1f6-7108-4095-a509-07f0c7cd27a9">
<File Id="_117" Source="..\bin\release\aircraft\Rascal\Models\Rascal.rgb" />
<File Id="_118" Source="..\bin\release\aircraft\Rascal\Models\Rascal110-000-013.ac" />
<File Id="_119" Source="..\bin\release\aircraft\Rascal\Models\Rascal110.xml" />
@ -178,7 +178,7 @@
</Component>
</Directory>
<Directory Id="Systems123" Name="Systems">
<Component Id="_comp124" Guid="3f88c88f-5b9b-4858-a075-2318cc7b2072">
<Component Id="_comp124" Guid="f73b8966-b593-44a9-b1f0-82c36e8474a5">
<File Id="_125" Source="..\bin\release\aircraft\Rascal\Systems\110-autopilot.xml" />
<File Id="_126" Source="..\bin\release\aircraft\Rascal\Systems\airdata.nas" />
<File Id="_127" Source="..\bin\release\aircraft\Rascal\Systems\electrical.xml" />
@ -189,33 +189,33 @@
</Directory>
</Directory>
<Directory Id="Driver129" Name="Driver">
<Component Id="_comp130" Guid="81d76c90-c0a9-478a-9178-be2c93c5a90f">
<Component Id="_comp130" Guid="17cacd75-bc0d-4c98-8f0e-6016448f51d2">
<File Id="_131" Source="..\bin\release\Driver\Arduino MEGA 2560.inf" />
</Component>
</Directory>
<Directory Id="es_ES131" Name="es-ES">
<Component Id="_comp132" Guid="6543b793-04ce-4d7a-90f3-73bbcddbc433">
<Component Id="_comp132" Guid="a6be862c-fe38-42e7-bce8-bbeef46055d9">
<File Id="_133" Source="..\bin\release\es-ES\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="fr133" Name="fr">
<Component Id="_comp134" Guid="2cab0718-ac75-412d-ac49-98eb08b5fada">
<Component Id="_comp134" Guid="c8b975d0-c6be-4859-838f-1a45412f7e7b">
<File Id="_135" Source="..\bin\release\fr\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="it_IT135" Name="it-IT">
<Component Id="_comp136" Guid="d8efe3d0-22c7-4a38-bcaa-c4bb22296d1f">
<Component Id="_comp136" Guid="ccd50732-a513-4593-b95e-2d960c545def">
<File Id="_137" Source="..\bin\release\it-IT\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="jsbsim137" Name="jsbsim">
<Component Id="_comp138" Guid="854d9c31-d3d6-4858-98f7-d385ce97c694">
<Component Id="_comp138" Guid="347a2191-8ccf-48b8-8c73-a9e2dfaa7324">
<File Id="_139" Source="..\bin\release\jsbsim\fgout.xml" />
<File Id="_140" Source="..\bin\release\jsbsim\rascal_test.xml" />
</Component>
</Directory>
<Directory Id="m3u140" Name="m3u">
<Component Id="_comp141" Guid="8455d8b6-4036-4a32-9c1b-653860b37351">
<Component Id="_comp141" Guid="418006de-8353-4876-98bd-1b89676e5856">
<File Id="_142" Source="..\bin\release\m3u\both.m3u" />
<File Id="_143" Source="..\bin\release\m3u\GeoRefnetworklink.kml" />
<File Id="_144" Source="..\bin\release\m3u\hud.m3u" />
@ -224,28 +224,28 @@
</Component>
</Directory>
<Directory Id="pl146" Name="pl">
<Component Id="_comp147" Guid="36187644-8b2f-467d-aba6-7e9782add084">
<Component Id="_comp147" Guid="02fa2a0c-1fb1-4481-9fb7-f16e4e2ee698">
<File Id="_148" Source="..\bin\release\pl\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="Resources148" Name="Resources">
<Component Id="_comp149" Guid="9d90680e-4778-49c3-bfb4-b5095ede9213">
<Component Id="_comp149" Guid="8ca473a7-ef8f-4c28-a9e8-865e92f4dc49">
<File Id="_150" Source="..\bin\release\Resources\MAVCmd.txt" />
<File Id="_151" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf" />
</Component>
</Directory>
<Directory Id="ru_RU151" Name="ru-RU">
<Component Id="_comp152" Guid="05306f8f-5da9-49db-ad35-19ba65448091">
<Component Id="_comp152" Guid="4de739ef-0a43-4edc-a496-63b5d6fe25c2">
<File Id="_153" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_Hans153" Name="zh-Hans">
<Component Id="_comp154" Guid="ea885378-7bc9-4319-bdbc-1274ff2af44e">
<Component Id="_comp154" Guid="1604219a-af8e-4bd3-96ba-57475defe074">
<File Id="_155" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_TW155" Name="zh-TW">
<Component Id="_comp156" Guid="cf222069-8a9a-4411-85f3-0b29f66499b7">
<Component Id="_comp156" Guid="96a9d78a-2294-4c08-b983-158519cea2b8">
<File Id="_157" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>

View File

@ -34,5 +34,5 @@ using System.Resources;
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.1.*")]
[assembly: AssemblyFileVersion("1.1.99")]
[assembly: AssemblyFileVersion("1.2")]
[assembly: NeutralResourcesLanguageAttribute("")]

View File

@ -115,12 +115,21 @@ namespace ArdupilotMega.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
public static System.Drawing.Bitmap cameraGimalRoll1 {
get {
object obj = ResourceManager.GetObject("cameraGimalRoll1", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
public static System.Drawing.Bitmap cameraGimalYaw {
get {
object obj = ResourceManager.GetObject("cameraGimalYaw", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
public static System.Drawing.Bitmap compass {
get {
object obj = ResourceManager.GetObject("compass", resourceCulture);
@ -183,12 +192,14 @@ namespace ArdupilotMega.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
public static System.Drawing.Bitmap frames_x {
get {
object obj = ResourceManager.GetObject("frames_x", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
public static System.Drawing.Bitmap Gaugebg {
get {
object obj = ResourceManager.GetObject("Gaugebg", resourceCulture);

View File

@ -1240,11 +1240,14 @@
<data name="cameraGimalRoll1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cameraGimalRoll1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="frames_plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\frames_plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="frames_x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\frames_x.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cameraGimalYaw" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cameraGimalYaw.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -482,7 +482,11 @@ namespace ArdupilotMega
RS9.DataSource = Range(414000, 100, 454000);
}
if (board == uploader.Uploader.Code.DEVICE_ID_RFD900 || board == uploader.Uploader.Code.DEVICE_ID_RFD900A)
{
S4.DataSource = Range(1, 1, 30);
RS4.DataSource = Range(1, 1, 30);
}
RSSI.Text = doCommand(comPort, "ATI7").Trim();

View File

@ -200,14 +200,21 @@ namespace ArdupilotMega.Utilities
dgv.ColumnHeadersDefaultCellStyle = hs;
dgv.RowHeadersDefaultCellStyle = hs;
}
else if (ctl.GetType() == typeof(ComboBox))
else if (ctl.GetType() == typeof(CheckBox) || ctl.GetType() == typeof(MavlinkCheckBox))
{
ctl.BackColor = BGColor;
ctl.ForeColor = TextColor;
CheckBox CHK = (CheckBox)ctl;
CHK.FlatStyle = FlatStyle.Flat;
}
else if (ctl.GetType() == typeof(ComboBox) || ctl.GetType() == typeof(MavlinkComboBox))
{
ctl.BackColor = ControlBGColor;
ctl.ForeColor = TextColor;
ComboBox CMB = (ComboBox)ctl;
CMB.FlatStyle = FlatStyle.Flat;
}
else if (ctl.GetType() == typeof(NumericUpDown))
else if (ctl.GetType() == typeof(NumericUpDown) || ctl.GetType() == typeof(MavlinkNumericUpDown))
{
ctl.BackColor = ControlBGColor;
ctl.ForeColor = TextColor;

View File

@ -478,7 +478,6 @@ namespace ArdupilotMega
this.TXT_logfile.Name = "TXT_logfile";
this.TXT_logfile.Size = new System.Drawing.Size(317, 20);
this.TXT_logfile.TabIndex = 2;
this.TXT_logfile.Text = "C:\\Users\\hog\\Pictures\\farm 1-10-2011\\100SSCAM\\2011-10-01 11-48 1.log";
this.TXT_logfile.TextChanged += new System.EventHandler(this.TXT_logfile_TextChanged);
//
// TXT_jpgdir
@ -487,7 +486,6 @@ namespace ArdupilotMega
this.TXT_jpgdir.Name = "TXT_jpgdir";
this.TXT_jpgdir.Size = new System.Drawing.Size(317, 20);
this.TXT_jpgdir.TabIndex = 3;
this.TXT_jpgdir.Text = "C:\\Users\\hog\\Pictures\\farm 1-10-2011\\100SSCAM";
//
// TXT_offsetseconds
//
@ -495,7 +493,7 @@ namespace ArdupilotMega
this.TXT_offsetseconds.Name = "TXT_offsetseconds";
this.TXT_offsetseconds.Size = new System.Drawing.Size(100, 20);
this.TXT_offsetseconds.TabIndex = 4;
this.TXT_offsetseconds.Text = "-86158";
this.TXT_offsetseconds.Text = "0";
//
// TXT_outputlog
//

View File

@ -80,7 +80,7 @@
//
// BUT_paramgen
//
this.BUT_paramgen.Location = new System.Drawing.Point(206, 118);
this.BUT_paramgen.Location = new System.Drawing.Point(323, 118);
this.BUT_paramgen.Name = "BUT_paramgen";
this.BUT_paramgen.Size = new System.Drawing.Size(75, 23);
this.BUT_paramgen.TabIndex = 20;
@ -259,7 +259,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(696, 288);
this.ClientSize = new System.Drawing.Size(685, 285);
this.Controls.Add(this.BUT_paramgen);
this.Controls.Add(this.BUT_magcalib);
this.Controls.Add(this.BUT_ant_track);

View File

@ -890,7 +890,7 @@ namespace ArdupilotMega
private void BUT_follow_me_Click(object sender, EventArgs e)
{
SerialInput si = new SerialInput();
FollowMe si = new FollowMe();
ThemeManager.ApplyThemeTo((Form)si);
si.Show();
}