diff --git a/Tools/ArdupilotMegaPlanner/Antenna/Maestro.cs b/Tools/ArdupilotMegaPlanner/Antenna/Maestro.cs
index 26c73d8adf..f77df09450 100644
--- a/Tools/ArdupilotMegaPlanner/Antenna/Maestro.cs
+++ b/Tools/ArdupilotMegaPlanner/Antenna/Maestro.cs
@@ -96,7 +96,7 @@ namespace ArdupilotMega.Antenna
}
public bool Pan(double Angle)
- {
+ {
double range = Math.Abs(PanStartRange - PanEndRange);
// get relative center based on tracking center
@@ -110,7 +110,7 @@ namespace ArdupilotMega.Antenna
// conver the angle into a 0-255 value
byte target = (byte)((((PointAtAngle / range) * 2.0) * 127 + centerpos) * _panreverse);
- //Console.WriteLine("P " + Angle + " " + target + " " + PointAtAngle);
+ Console.WriteLine("P " + Angle + " " + target + " " + PointAtAngle);
var buffer = new byte[] { 0xff,PanAddress,target};
ComPort.Write(buffer, 0, buffer.Length);
diff --git a/Tools/ArdupilotMegaPlanner/Antenna/Tracker.cs b/Tools/ArdupilotMegaPlanner/Antenna/Tracker.cs
index c51678b57b..53bad8d3bb 100644
--- a/Tools/ArdupilotMegaPlanner/Antenna/Tracker.cs
+++ b/Tools/ArdupilotMegaPlanner/Antenna/Tracker.cs
@@ -120,8 +120,8 @@ namespace ArdupilotMega.Antenna
try
{
- tracker.PanStartRange = int.Parse(TXT_panrange.Text) / 1 * -1;
- tracker.PanEndRange = int.Parse(TXT_panrange.Text) / 1;
+ tracker.PanStartRange = int.Parse(TXT_panrange.Text) / 2 * -1;
+ tracker.PanEndRange = int.Parse(TXT_panrange.Text) / 2;
tracker.TrimPan = TRK_pantrim.Value;
tracker.TiltStartRange = int.Parse(TXT_tiltrange.Text) / 2 * -1;
diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
index 7dc0487396..bd24ec4529 100644
--- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
+++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
@@ -223,6 +223,18 @@
Tracker.cs
+
+ UserControl
+
+
+ BackstageView.cs
+
+
+ Component
+
+
+ Component
+
Form
@@ -230,6 +242,72 @@
ProgressReporterDialogue.cs
+
+ UserControl
+
+
+ ConfigAccelerometerCalibration.cs
+
+
+ UserControl
+
+
+ ConfigArducopter.cs
+
+
+ UserControl
+
+
+ ConfigArduplane.cs
+
+
+ UserControl
+
+
+ ConfigBatteryMonitoring.cs
+
+
+ UserControl
+
+
+ ConfigFlightModes.cs
+
+
+ UserControl
+
+
+ ConfigHardwareOptions.cs
+
+
+ UserControl
+
+
+ ConfigPlanner.cs
+
+
+ UserControl
+
+
+ ConfigRadioInput.cs
+
+
+ UserControl
+
+
+ ConfigTradHeli.cs
+
+
+ UserControl
+
+
+ Configuration.cs
+
+
+ UserControl
+
+
+ ConfigRawParams.cs
+
@@ -452,9 +530,45 @@
Tracker.cs
+
+ BackstageView.cs
+
ProgressReporterDialogue.cs
+
+ ConfigAccelerometerCalibration.cs
+
+
+ ConfigArducopter.cs
+
+
+ ConfigArduplane.cs
+
+
+ ConfigBatteryMonitoring.cs
+
+
+ ConfigFlightModes.cs
+
+
+ ConfigHardwareOptions.cs
+
+
+ ConfigPlanner.cs
+
+
+ ConfigRadioInput.cs
+
+
+ ConfigRawParams.cs
+
+
+ ConfigTradHeli.cs
+
+
+ Configuration.cs
+
3DRradio.cs
diff --git a/Tools/ArdupilotMegaPlanner/Common.cs b/Tools/ArdupilotMegaPlanner/Common.cs
index bb5aecd2d0..826ae2117d 100644
--- a/Tools/ArdupilotMegaPlanner/Common.cs
+++ b/Tools/ArdupilotMegaPlanner/Common.cs
@@ -381,7 +381,12 @@ namespace ArdupilotMega
CH6_NAV_I = 20,
CH6_LOITER_RATE_P = 22,
- CH6_LOITER_RATE_D = 23
+ CH6_LOITER_RATE_D = 23,
+ CH6_YAW_KI = 24,
+ CH6_ACRO_KP = 25,
+ CH6_YAW_RATE_KD = 26,
+ CH6_LOITER_KI = 27,
+ CH6_LOITER_RATE_KI = 28
}
diff --git a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackStageViewMenuPanel.cs b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackStageViewMenuPanel.cs
new file mode 100644
index 0000000000..1a9ba58375
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackStageViewMenuPanel.cs
@@ -0,0 +1,33 @@
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.Controls.BackstageView
+{
+ public class BackStageViewMenuPanel : Panel
+ {
+ internal Color GradColor = Color.White;
+ internal Color PencilBorderColor = Color.White;
+
+ private const int GradientWidth = 6;
+
+ public BackStageViewMenuPanel()
+ {
+ this.SetStyle(ControlStyles.UserPaint, true);
+ }
+
+ protected override void OnPaintBackground(PaintEventArgs pevent)
+ {
+ base.OnPaintBackground(pevent);
+
+ var rc = new Rectangle(ClientSize.Width - GradientWidth, 0, GradientWidth, this.ClientSize.Height);
+
+ using (var brush = new LinearGradientBrush(rc, BackColor, GradColor, LinearGradientMode.Horizontal))
+ {
+ pevent.Graphics.FillRectangle(brush, rc);
+ }
+
+ pevent.Graphics.DrawLine(new Pen(PencilBorderColor), Width-1,0,Width-1,Height);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.Designer.cs b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.Designer.cs
new file mode 100644
index 0000000000..07546e1ac8
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.Designer.cs
@@ -0,0 +1,73 @@
+namespace ArdupilotMega.Controls.BackstageView
+{
+ partial class BackstageView
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.pnlPages = new System.Windows.Forms.Panel();
+ this.pnlMenu = new BackStageViewMenuPanel();
+ this.SuspendLayout();
+ //
+ // pnlPages
+ //
+ this.pnlPages.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.pnlPages.Location = new System.Drawing.Point(147, 0);
+ this.pnlPages.MinimumSize = new System.Drawing.Size(100, 0);
+ this.pnlPages.Name = "pnlPages";
+ this.pnlPages.Size = new System.Drawing.Size(243, 189);
+ this.pnlPages.TabIndex = 0;
+ //
+ // pnlMenu
+ //
+ this.pnlMenu.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.pnlMenu.Location = new System.Drawing.Point(0, 0);
+ this.pnlMenu.Name = "pnlMenu";
+ this.pnlMenu.Size = new System.Drawing.Size(150, 170);
+ this.pnlMenu.TabIndex = 1;
+ //
+ // BackstageView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoSize = true;
+ this.Controls.Add(this.pnlMenu);
+ this.Controls.Add(this.pnlPages);
+ this.Name = "BackstageView";
+ this.Size = new System.Drawing.Size(393, 192);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Panel pnlPages;
+ private BackStageViewMenuPanel pnlMenu;
+ }
+}
diff --git a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs
new file mode 100644
index 0000000000..2970e499b6
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs
@@ -0,0 +1,225 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Windows.Forms;
+using ArdupilotMega.Controls.BackstageView;
+
+namespace ArdupilotMega.Controls.BackstageView
+{
+ public partial class BackstageView : UserControl
+ {
+ private Color _buttonsAreaBgColor = Color.White;
+ private Color _buttonsAreaPencilColor = Color.DarkGray;
+ private Color _selectedTextColor = Color.White;
+ private Color _unSelectedTextColor = Color.Gray;
+ private Color _highlightColor1 = Color.DarkBlue;
+ private Color _highlightColor2 = Color.Blue;
+
+ private readonly List _pages= new List();
+ private BackstageViewPage _activePage;
+ private const int ButtonSpacing = 30;
+ private const int ButtonHeight = 30;
+
+ public BackstageView()
+ {
+ InitializeComponent();
+
+ this.pnlMenu.Height = this.Height;
+ this.pnlPages.Height = this.Height;
+
+ pnlMenu.BackColor = _buttonsAreaBgColor;
+ pnlMenu.PencilBorderColor = _buttonsAreaPencilColor;
+ pnlMenu.GradColor = this.BackColor;
+ }
+
+
+ public override Color BackColor
+ {
+ get
+ {
+ return base.BackColor;
+ }
+ set
+ {
+ base.BackColor = value;
+ UpdateButtons();
+ pnlMenu.GradColor = this.BackColor;
+ }
+ }
+
+ [Description("Background pencil line color for the content region"), Category("Appearance")]
+ [DefaultValue(typeof(Color),"DarkGray")]
+ public Color ButtonsAreaPencilColor
+ {
+ get { return _buttonsAreaPencilColor; }
+ set
+ {
+ _buttonsAreaPencilColor = value;
+ pnlMenu.PencilBorderColor = _buttonsAreaPencilColor;
+ pnlMenu.Invalidate();
+ UpdateButtons();
+ Invalidate();
+ }
+ }
+
+
+ [Description("Background color for the buttons region"), Category("Appearance")]
+ [DefaultValue(typeof(Color),"White")]
+ public Color ButtonsAreaBgColor
+ {
+ get { return _buttonsAreaBgColor; }
+ set
+ {
+ _buttonsAreaBgColor = value;
+ this.pnlMenu.BackColor = _buttonsAreaBgColor;
+ pnlMenu.Invalidate();
+ Invalidate();
+ }
+ }
+
+ [Description("Color for the selector buttons text"), Category("Appearance")]
+ [DefaultValue(typeof(Color), "White")]
+ public Color SelectedTextColor
+ {
+ get { return _selectedTextColor; }
+ set
+ {
+ _selectedTextColor = value;
+ UpdateButtons();
+ }
+ }
+
+ [Description("Color for the un selected selector buttons text"), Category("Appearance")]
+ [DefaultValue(typeof(Color), "Gray")]
+ public Color UnSelectedTextColor
+ {
+ get { return _unSelectedTextColor; }
+ set
+ {
+ _unSelectedTextColor = value;
+ UpdateButtons();
+ Invalidate();
+ }
+ }
+
+ [Description("Color selected button background 1"), Category("Appearance")]
+ [DefaultValue(typeof(Color), "DarkBlue")]
+ public Color HighlightColor1
+ {
+ get { return _highlightColor1; }
+ set
+ {
+ _highlightColor1 = value;
+ UpdateButtons();
+ Invalidate();
+ }
+ }
+
+ [Description("Color selected button background 2"), Category("Appearance")]
+ [DefaultValue(typeof(Color), "Blue")]
+ public Color HighlightColor2
+ {
+ get { return _highlightColor2; }
+ set
+ {
+ _highlightColor2 = value;
+ UpdateButtons();
+ Invalidate();
+ }
+ }
+
+
+ private void UpdateButtons()
+ {
+ foreach (var backstageViewButton in pnlMenu.Controls.OfType())
+ {
+ backstageViewButton.HighlightColor2 = _highlightColor2;
+ backstageViewButton.HighlightColor1 = _highlightColor1;
+ backstageViewButton.UnSelectedTextColor = _unSelectedTextColor;
+ backstageViewButton.SelectedTextColor = _selectedTextColor;
+ backstageViewButton.ContentPageColor = this.BackColor;
+ backstageViewButton.PencilBorderColor = _buttonsAreaPencilColor;
+
+ backstageViewButton.Invalidate();
+ }
+ }
+
+ public void AddPage(BackstageViewPage page)
+ {
+ page.Page.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
+ page.Page.Location = new Point(pnlMenu.Width, 0);
+ page.Page.Dock = DockStyle.Fill;
+
+ _pages.Add(page);
+ CreateLinkButton(page);
+ this.pnlPages.Controls.Add(page.Page);
+
+ if (_activePage == null)
+ _activePage = page;
+
+ ActivatePage(page);
+ // Todo: set the link button to be selected looking
+ }
+
+ private void CreateLinkButton(BackstageViewPage page)
+ {
+ var lnkButton = new BackstageViewButton
+ {
+ Text = page.LinkText,
+ Tag = page,
+ Top = _pages.IndexOf(page) * ButtonSpacing,
+ Width = this.pnlMenu.Width,
+ Height = ButtonHeight,
+ ContentPageColor = this.BackColor,
+ PencilBorderColor = _buttonsAreaPencilColor,
+ SelectedTextColor = _selectedTextColor,
+ UnSelectedTextColor = _unSelectedTextColor,
+ HighlightColor1 = _highlightColor1,
+ HighlightColor2 = _highlightColor2
+ };
+
+ pnlMenu.Controls.Add(lnkButton);
+ lnkButton.Click += this.ButtonClick;
+ }
+
+
+ private void ButtonClick(object sender, EventArgs e)
+ {
+ var backstageViewButton = ((BackstageViewButton) sender);
+ var associatedPage = backstageViewButton.Tag as BackstageViewPage;
+ this.ActivatePage(associatedPage);
+ }
+
+ private void ActivatePage(BackstageViewPage associatedPage)
+ {
+ // deactivate the old page
+ _activePage.Page.Visible = false;
+ var oldButton = this.pnlMenu.Controls.OfType().Single(b => b.Tag == _activePage);
+ oldButton.IsSelected = false;
+
+ associatedPage.Page.Visible = true;
+ var newButton = this.pnlMenu.Controls.OfType().Single(b => b.Tag == associatedPage);
+ newButton.IsSelected = true;
+
+ _activePage = associatedPage;
+ }
+
+
+ public class BackstageViewPage
+ {
+ public BackstageViewPage(Control page, string linkText)
+ {
+ Page = page;
+ LinkText = linkText;
+ }
+
+ public Control Page { get; private set; }
+ public string LinkText { get; set; }
+ }
+ }
+
+
+
+}
diff --git a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.resx b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.resx
new file mode 100644
index 0000000000..7080a7d118
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageViewButton.cs b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageViewButton.cs
new file mode 100644
index 0000000000..7f384a5bcd
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageViewButton.cs
@@ -0,0 +1,150 @@
+using System;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.Controls.BackstageView
+{
+ public class BackstageViewButton : Control
+ {
+ private bool _isSelected;
+
+ internal Color ContentPageColor = Color.Gray;
+ internal Color PencilBorderColor = Color.White;
+ internal Color SelectedTextColor = Color.White;
+ internal Color UnSelectedTextColor = Color.Gray;
+ internal Color HighlightColor1 = Color.DarkBlue;
+ internal Color HighlightColor2 = Color.Blue;
+ private bool _isMouseOver;
+
+ //internal Color HighlightColor1 = Color.FromArgb(0x94, 0xc1, 0x1f);
+ //internal Color HighlightColor2 = Color.FromArgb(0xcd, 0xe2, 0x96);
+
+ public BackstageViewButton()
+ {
+ SetStyle(ControlStyles.SupportsTransparentBackColor, true);
+ SetStyle(ControlStyles.Opaque, true);
+ SetStyle(ControlStyles.ResizeRedraw, true);
+ this.BackColor = Color.Transparent;
+ }
+
+ ///
+ /// Whether this button should show the selected style
+ ///
+ public bool IsSelected
+ {
+ get { return _isSelected; }
+ set
+ {
+ if (_isSelected != value)
+ {
+ _isSelected = value;
+ //this.Parent.Refresh(); // <-- brutal, but works
+
+
+ InvalidateParentForBackground();
+
+ this.Invalidate();
+ }
+ }
+ }
+
+ // Must be a better way to redraw parent control in the area of
+ // the button
+ private void InvalidateParentForBackground()
+ {
+ var screenrect = this.RectangleToScreen(this.ClientRectangle);
+ var rectangleToClient = this.Parent.RectangleToClient(screenrect);
+ this.Parent.Invalidate(rectangleToClient);
+ }
+
+
+ protected override void OnPaint(PaintEventArgs pevent)
+ {
+ Graphics g = pevent.Graphics;
+
+
+ // Now the little 'arrow' thingy if we are selected and the selected bg grad
+ if (_isSelected)
+ {
+ var rect1 = new Rectangle(0, 0, Width / 2, Height);
+ var rect2 = new Rectangle(Width / 2, 0, Width, Height);
+
+ g.FillRectangle(new LinearGradientBrush(rect1, HighlightColor1, HighlightColor2, LinearGradientMode.Horizontal), rect1);
+ g.FillRectangle(new LinearGradientBrush(rect2, HighlightColor2, HighlightColor1, LinearGradientMode.Horizontal), rect2);
+
+ var butPen = new Pen(HighlightColor1);
+ g.DrawLine(butPen, 0, 0, Width, 0);
+ g.DrawLine(butPen, 0, Height - 1, Width, Height - 1);
+
+ var arrowBrush = new SolidBrush(this.ContentPageColor);
+
+ var midheight = Height / 2;
+ var arSize = 8;
+
+ var arrowPoints = new[]
+ {
+ new Point(Width, midheight + arSize),
+ new Point(Width - arSize, midheight),
+ new Point(Width, midheight - arSize)
+ };
+
+ g.DrawString(Text, new Font(FontFamily.GenericSansSerif, 10), new SolidBrush(SelectedTextColor), 20, 6);
+
+ g.FillPolygon(arrowBrush, arrowPoints);
+
+ var pencilBrush = new Pen(this.PencilBorderColor);
+
+
+ g.DrawPolygon(pencilBrush, arrowPoints);
+
+
+ }
+ else
+ {
+ if (_isMouseOver)
+ {
+ var brush = new SolidBrush(Color.FromArgb(10, 0xA0, 0xA0, 0xA0));
+
+ g.FillRectangle(brush, this.ClientRectangle);
+
+ var butPen = new Pen(PencilBorderColor);
+ g.DrawLine(butPen, 0, 0, Width, 0);
+ g.DrawLine(butPen, 0, Height - 1, Width, Height - 1);
+ }
+
+ g.DrawString(Text, new Font(FontFamily.GenericSansSerif, 10), new SolidBrush(this.UnSelectedTextColor), 20, 6);
+ }
+ }
+
+
+ protected override void OnMouseEnter(EventArgs e)
+ {
+ _isMouseOver = true;
+ base.OnMouseEnter(e);
+ InvalidateParentForBackground();
+ this.Invalidate();
+ }
+
+ protected override void OnMouseLeave(EventArgs e)
+ {
+ _isMouseOver = false;
+ base.OnMouseLeave(e);
+ InvalidateParentForBackground();
+ this.Invalidate();
+
+ }
+
+ // This IS necessary for transparency
+ protected override CreateParams CreateParams
+ {
+ get
+ {
+ const int WS_EX_TRANSPARENT = 0x20;
+ CreateParams cp = base.CreateParams;
+ cp.ExStyle |= WS_EX_TRANSPARENT;
+ return cp;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Terminal.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Terminal.cs
index b11ff009d1..2c4897acef 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/Terminal.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/Terminal.cs
@@ -201,9 +201,11 @@ namespace ArdupilotMega.GCSViews
}
catch { return; }
}
-
+ try
+ {
comPort.Write("\n\n\n");
-
+ }
+ catch { return; }
while (threadrun)
{
try
diff --git a/Tools/ArdupilotMegaPlanner/MAVLink.cs b/Tools/ArdupilotMegaPlanner/MAVLink.cs
index 15570796cc..8299c9e585 100644
--- a/Tools/ArdupilotMegaPlanner/MAVLink.cs
+++ b/Tools/ArdupilotMegaPlanner/MAVLink.cs
@@ -1162,6 +1162,8 @@ namespace ArdupilotMega
req.start_stop = 1; // start
req.req_stream_id = id; // id
+ // send each one twice.
+ generatePacket(MAVLINK_MSG_ID_REQUEST_DATA_STREAM, req);
generatePacket(MAVLINK_MSG_ID_REQUEST_DATA_STREAM, req);
}
diff --git a/Tools/ArdupilotMegaPlanner/MagCalib.cs b/Tools/ArdupilotMegaPlanner/MagCalib.cs
index 8e88536308..e94a639932 100644
--- a/Tools/ArdupilotMegaPlanner/MagCalib.cs
+++ b/Tools/ArdupilotMegaPlanner/MagCalib.cs
@@ -21,7 +21,7 @@ namespace ArdupilotMega
///
/// Self contained process tlog and save/display offsets
///
- public static void ProcessLog()
+ public static void ProcessLog(int throttleThreshold = 0)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "*.tlog|*.tlog";
@@ -40,7 +40,7 @@ namespace ArdupilotMega
{
try
{
- double[] ans = getOffsets(openFileDialog1.FileName);
+ double[] ans = getOffsets(openFileDialog1.FileName, throttleThreshold);
SaveOffsets(ans);
}
@@ -53,9 +53,9 @@ namespace ArdupilotMega
///
/// Filename
/// Offsets
- public static double[] getOffsets(string fn)
+ public static double[] getOffsets(string fn, int throttleThreshold = 0)
{
- // based of tridge's work
+ // based off tridge's work
string logfile = fn;
// old method
@@ -76,6 +76,9 @@ namespace ArdupilotMega
Hashtable filter = new Hashtable();
+ // track data to use
+ bool useData = false;
+
log.Info("Start log: " + DateTime.Now);
MAVLink mine = new MAVLink();
@@ -95,6 +98,19 @@ namespace ArdupilotMega
if (packet == null)
continue;
+ if (packet.GetType() == typeof(MAVLink.__mavlink_vfr_hud_t))
+ {
+ if (((MAVLink.__mavlink_vfr_hud_t)packet).throttle >= throttleThreshold)
+ {
+ useData = true;
+ }
+ else
+ {
+ useData = false;
+ }
+
+ }
+
if (packet.GetType() == typeof(MAVLink.__mavlink_sensor_offsets_t))
{
offset = new Tuple(
@@ -102,7 +118,7 @@ namespace ArdupilotMega
((MAVLink.__mavlink_sensor_offsets_t)packet).mag_ofs_y,
((MAVLink.__mavlink_sensor_offsets_t)packet).mag_ofs_z);
}
- else if (packet.GetType() == typeof(MAVLink.__mavlink_raw_imu_t))
+ else if (packet.GetType() == typeof(MAVLink.__mavlink_raw_imu_t) && useData)
{
int div = 20;
diff --git a/Tools/ArdupilotMegaPlanner/MainV2.cs b/Tools/ArdupilotMegaPlanner/MainV2.cs
index 4d70c588eb..ecf883be85 100644
--- a/Tools/ArdupilotMegaPlanner/MainV2.cs
+++ b/Tools/ArdupilotMegaPlanner/MainV2.cs
@@ -72,6 +72,7 @@ namespace ArdupilotMega
GCSViews.FlightData FlightData;
GCSViews.FlightPlanner FlightPlanner;
GCSViews.Configuration Configuration;
+ //GCSViews.ConfigurationView.Configuration Configuration;
GCSViews.Simulation Simulation;
GCSViews.Firmware Firmware;
GCSViews.Terminal Terminal;
@@ -188,14 +189,14 @@ namespace ArdupilotMega
if (config["CMB_rateattitude"] != null)
MainV2.cs.rateattitude = byte.Parse(config["CMB_rateattitude"].ToString());
- if (config["CMB_rateattitude"] != null)
+ if (config["rateposition"] != null)
MainV2.cs.rateposition = byte.Parse(config["CMB_rateposition"].ToString());
- if (config["CMB_rateattitude"] != null)
+ if (config["CMB_ratestatus"] != null)
MainV2.cs.ratestatus = byte.Parse(config["CMB_ratestatus"].ToString());
- if (config["CMB_rateattitude"] != null)
+ if (config["CMB_raterc"] != null)
MainV2.cs.raterc = byte.Parse(config["CMB_raterc"].ToString());
if (config["CMB_ratesensors"] != null)
- MainV2.cs.raterc = byte.Parse(config["CMB_ratesensors"].ToString());
+ MainV2.cs.ratesensors = byte.Parse(config["CMB_ratesensors"].ToString());
if (config["speechenable"] != null)
MainV2.speechEnable = bool.Parse(config["speechenable"].ToString());
@@ -339,6 +340,7 @@ namespace ArdupilotMega
}
Configuration = new GCSViews.Configuration();
+ //Configuration = new GCSViews.ConfigurationView.Configuration();
UserControl temp = Configuration;
diff --git a/Tools/ArdupilotMegaPlanner/MavlinkLog.cs b/Tools/ArdupilotMegaPlanner/MavlinkLog.cs
index 14543ae9fd..73f5cfac07 100644
--- a/Tools/ArdupilotMegaPlanner/MavlinkLog.cs
+++ b/Tools/ArdupilotMegaPlanner/MavlinkLog.cs
@@ -853,6 +853,14 @@ namespace ArdupilotMega
MavlinkInterface.logplaybackfile.Close();
MavlinkInterface.logplaybackfile = null;
+ try
+ {
+
+ addMagField(ref options);
+
+ }
+ catch (Exception ex) { log.Info(ex.ToString()); }
+
// custom sort based on packet name
//options.Sort(delegate(string c1, string c2) { return String.Compare(c1.Substring(0,c1.IndexOf('.')),c2.Substring(0,c2.IndexOf('.')));});
@@ -872,6 +880,33 @@ namespace ArdupilotMega
return selection;
}
+ void addMagField(ref List options)
+ {
+ string field = "mag_field Custom";
+
+ options.Add("Custom.mag_field");
+
+ this.data[field] = new PointPairList();
+
+ PointPairList list = ((PointPairList)this.data[field]);
+
+ PointPairList listx = ((PointPairList)this.data["xmag __mavlink_raw_imu_t"]);
+ PointPairList listy = ((PointPairList)this.data["ymag __mavlink_raw_imu_t"]);
+ PointPairList listz = ((PointPairList)this.data["zmag __mavlink_raw_imu_t"]);
+
+ //(float)Math.Sqrt(Math.Pow(mx, 2) + Math.Pow(my, 2) + Math.Pow(mz, 2));
+
+ for (int a = 0; a < listx.Count; a++)
+ {
+
+ double ans = Math.Sqrt(Math.Pow(listx[a].Y, 2) + Math.Pow(listy[a].Y, 2) + Math.Pow(listz[a].Y, 2));
+
+ //Console.WriteLine("{0} {1} {2} {3}", ans, listx[a].Y, listy[a].Y, listz[a].Y);
+
+ list.Add(listx[a].X, ans);
+ }
+ }
+
private void AddDataOption(Form selectform, string Name)
{
@@ -947,7 +982,7 @@ namespace ArdupilotMega
selection.Remove(((CheckBox)sender).Name);
foreach (var item in zg1.GraphPane.CurveList)
{
- if (item.Tag == ((CheckBox)sender).Name)
+ if (item.Tag.ToString() == ((CheckBox)sender).Name)
{
zg1.GraphPane.CurveList.Remove(item);
break;
diff --git a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs
index eb9a933587..f695ace3a6 100644
--- a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs
+++ b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs
@@ -34,5 +34,5 @@ using System.Resources;
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.1.58")]
+[assembly: AssemblyFileVersion("1.1.59")]
[assembly: NeutralResourcesLanguageAttribute("")]
diff --git a/Tools/ArdupilotMegaPlanner/Setup/Setup.Designer.cs b/Tools/ArdupilotMegaPlanner/Setup/Setup.Designer.cs
index d4389f234d..0adca95f80 100644
--- a/Tools/ArdupilotMegaPlanner/Setup/Setup.Designer.cs
+++ b/Tools/ArdupilotMegaPlanner/Setup/Setup.Designer.cs
@@ -30,7 +30,7 @@
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Setup));
- this.tabControl1 = new System.Windows.Forms.TabControl();
+ this.Tabs = new System.Windows.Forms.TabControl();
this.tabRadioIn = new System.Windows.Forms.TabPage();
this.groupBoxElevons = new System.Windows.Forms.GroupBox();
this.CHK_mixmode = new System.Windows.Forms.CheckBox();
@@ -116,6 +116,9 @@
this.TXT_battcapacity = new System.Windows.Forms.TextBox();
this.CMB_batmontype = new System.Windows.Forms.ComboBox();
this.pictureBox5 = new System.Windows.Forms.PictureBox();
+ this.tabArduplane = new System.Windows.Forms.TabPage();
+ this.label48 = new System.Windows.Forms.Label();
+ this.BUT_levelplane = new ArdupilotMega.MyButton();
this.tabArducopter = new System.Windows.Forms.TabPage();
this.label28 = new System.Windows.Forms.Label();
this.label16 = new System.Windows.Forms.Label();
@@ -180,7 +183,7 @@
this.tabReset = new System.Windows.Forms.TabPage();
this.BUT_reset = new ArdupilotMega.MyButton();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
- this.tabControl1.SuspendLayout();
+ this.Tabs.SuspendLayout();
this.tabRadioIn.SuspendLayout();
this.groupBoxElevons.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).BeginInit();
@@ -193,6 +196,7 @@
this.tabBattery.SuspendLayout();
this.groupBox4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit();
+ this.tabArduplane.SuspendLayout();
this.tabArducopter.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).BeginInit();
@@ -208,18 +212,19 @@
this.tabReset.SuspendLayout();
this.SuspendLayout();
//
- // tabControl1
+ // Tabs
//
- this.tabControl1.Controls.Add(this.tabRadioIn);
- this.tabControl1.Controls.Add(this.tabModes);
- this.tabControl1.Controls.Add(this.tabHardware);
- this.tabControl1.Controls.Add(this.tabBattery);
- this.tabControl1.Controls.Add(this.tabArducopter);
- this.tabControl1.Controls.Add(this.tabHeli);
- resources.ApplyResources(this.tabControl1, "tabControl1");
- this.tabControl1.Name = "tabControl1";
- this.tabControl1.SelectedIndex = 0;
- this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
+ this.Tabs.Controls.Add(this.tabRadioIn);
+ this.Tabs.Controls.Add(this.tabModes);
+ this.Tabs.Controls.Add(this.tabHardware);
+ this.Tabs.Controls.Add(this.tabBattery);
+ this.Tabs.Controls.Add(this.tabArduplane);
+ this.Tabs.Controls.Add(this.tabArducopter);
+ this.Tabs.Controls.Add(this.tabHeli);
+ resources.ApplyResources(this.Tabs, "Tabs");
+ this.Tabs.Name = "Tabs";
+ this.Tabs.SelectedIndex = 0;
+ this.Tabs.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
//
// tabRadioIn
//
@@ -931,6 +936,26 @@
this.pictureBox5.Name = "pictureBox5";
this.pictureBox5.TabStop = false;
//
+ // tabArduplane
+ //
+ this.tabArduplane.Controls.Add(this.label48);
+ this.tabArduplane.Controls.Add(this.BUT_levelplane);
+ resources.ApplyResources(this.tabArduplane, "tabArduplane");
+ this.tabArduplane.Name = "tabArduplane";
+ this.tabArduplane.UseVisualStyleBackColor = true;
+ //
+ // label48
+ //
+ resources.ApplyResources(this.label48, "label48");
+ this.label48.Name = "label48";
+ //
+ // BUT_levelplane
+ //
+ resources.ApplyResources(this.BUT_levelplane, "BUT_levelplane");
+ this.BUT_levelplane.Name = "BUT_levelplane";
+ this.BUT_levelplane.UseVisualStyleBackColor = true;
+ this.BUT_levelplane.Click += new System.EventHandler(this.BUT_levelplane_Click);
+ //
// tabArducopter
//
this.tabArducopter.Controls.Add(this.label28);
@@ -1595,12 +1620,12 @@
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.Controls.Add(this.tabControl1);
+ this.Controls.Add(this.Tabs);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
this.Name = "Setup";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Setup_FormClosing);
this.Load += new System.EventHandler(this.Setup_Load);
- this.tabControl1.ResumeLayout(false);
+ this.Tabs.ResumeLayout(false);
this.tabRadioIn.ResumeLayout(false);
this.tabRadioIn.PerformLayout();
this.groupBoxElevons.ResumeLayout(false);
@@ -1619,6 +1644,8 @@
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit();
+ this.tabArduplane.ResumeLayout(false);
+ this.tabArduplane.PerformLayout();
this.tabArducopter.ResumeLayout(false);
this.tabArducopter.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).EndInit();
@@ -1644,7 +1671,7 @@
#endregion
- private System.Windows.Forms.TabControl tabControl1;
+ private System.Windows.Forms.TabControl Tabs;
private System.Windows.Forms.TabPage tabRadioIn;
private HorizontalProgressBar2 BAR8;
private HorizontalProgressBar2 BAR7;
@@ -1794,6 +1821,9 @@
private System.Windows.Forms.RadioButton H1_ENABLE;
private System.Windows.Forms.RadioButton CCPM;
private MyButton BUT_MagCalibration;
+ private System.Windows.Forms.TabPage tabArduplane;
+ private System.Windows.Forms.Label label48;
+ private MyButton BUT_levelplane;
}
}
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/Setup/Setup.cs b/Tools/ArdupilotMegaPlanner/Setup/Setup.cs
index 0b71ca9ea9..1bb21aee79 100644
--- a/Tools/ArdupilotMegaPlanner/Setup/Setup.cs
+++ b/Tools/ArdupilotMegaPlanner/Setup/Setup.cs
@@ -100,7 +100,7 @@ namespace ArdupilotMega.Setup
fmodelist[no].BackColor = Color.Green;
- if (tabControl1.SelectedTab == tabHeli)
+ if (Tabs.SelectedTab == tabHeli)
{
if (MainV2.comPort.param["HSV_MAN"] == null || MainV2.comPort.param["HSV_MAN"].ToString() == "0")
return;
@@ -312,7 +312,7 @@ namespace ArdupilotMega.Setup
int monosux = 0;
monosux *= 5;
- if (tabControl1.SelectedTab == tabRadioIn)
+ if (Tabs.SelectedTab == tabRadioIn)
{
startup = true;
@@ -340,7 +340,7 @@ namespace ArdupilotMega.Setup
startup = false;
}
- if (tabControl1.SelectedTab == tabModes)
+ if (Tabs.SelectedTab == tabModes)
{
if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane) // APM
{
@@ -416,7 +416,7 @@ namespace ArdupilotMega.Setup
}
}
- if (tabControl1.SelectedTab == tabHardware)
+ if (Tabs.SelectedTab == tabHardware)
{
startup = true;
@@ -442,7 +442,7 @@ namespace ArdupilotMega.Setup
startup = false;
}
- if (tabControl1.SelectedTab == tabBattery)
+ if (Tabs.SelectedTab == tabBattery)
{
startup = true;
bool not_supported = false;
@@ -501,7 +501,7 @@ namespace ArdupilotMega.Setup
startup = false;
}
- if (tabControl1.SelectedTab == tabArducopter)
+ if (Tabs.SelectedTab == tabArducopter)
{
if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
{
@@ -510,7 +510,7 @@ namespace ArdupilotMega.Setup
}
}
- if (tabControl1.SelectedTab == tabHeli)
+ if (Tabs.SelectedTab == tabHeli)
{
if (MainV2.comPort.param["GYR_ENABLE"] == null)
{
@@ -1437,7 +1437,7 @@ namespace ArdupilotMega.Setup
timer.Stop();
timer.Dispose();
- tabControl1.SelectedIndex = 0;
+ Tabs.SelectedIndex = 0;
// mono runs validation on all controls on exit. try and skip it
startup = true;
@@ -1697,7 +1697,34 @@ namespace ArdupilotMega.Setup
}
else
{
- MagCalib.ProcessLog();
+ string minthro = "30";
+ Common.InputBox("Min Throttle", "Use only data above this throttle percent.", ref minthro);
+
+ int ans = 0;
+ int.TryParse(minthro, out ans);
+
+ MagCalib.ProcessLog(ans);
+ }
+ }
+
+ private void BUT_levelplane_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ MainV2.comPort.setParam("MANUAL_LEVEL",1);
+
+#if MAVLINK10
+ int fixme; // needs to be accel only
+ MainV2.comPort.doCommand(MAVLink.MAV_CMD.PREFLIGHT_CALIBRATION,1,1,1,1,1,1,1);
+#else
+ MainV2.comPort.doAction(MAVLink.MAV_ACTION.MAV_ACTION_CALIBRATE_ACC);
+#endif
+
+ BUT_levelac2.Text = "Complete";
+ }
+ catch
+ {
+ CustomMessageBox.Show("Failed to level : AP 2.32+ is required");
}
}
}
diff --git a/Tools/ArdupilotMegaPlanner/Setup/Setup.resx b/Tools/ArdupilotMegaPlanner/Setup/Setup.resx
index fb3d0b0e1e..0524d1cf2e 100644
--- a/Tools/ArdupilotMegaPlanner/Setup/Setup.resx
+++ b/Tools/ArdupilotMegaPlanner/Setup/Setup.resx
@@ -117,15 +117,1656 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ groupBoxElevons
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabRadioIn
+
+
+ 0
+
+
+ CHK_revch3
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabRadioIn
+
+
+ 1
+
+
+ CHK_revch4
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabRadioIn
+
+
+ 2
+
+
+ CHK_revch2
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabRadioIn
+
+
+ 3
+
+
+ CHK_revch1
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabRadioIn
+
+
+ 4
+
+
+ BUT_Calibrateradio
+
+
+ ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabRadioIn
+
+
+ 5
+
+
+ BAR8
+
+
+ ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabRadioIn
+
+
+ 6
+
+
+ BAR7
+
+
+ ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabRadioIn
+
+
+ 7
+
+
+ BAR6
+
+
+ ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabRadioIn
+
+
+ 8
+
+
+ BAR5
+
+
+ ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabRadioIn
+
+
+ 9
+
+
+ BARpitch
+
+
+ ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabRadioIn
+
+
+ 10
+
+
+ BARthrottle
+
+
+ ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabRadioIn
+
+
+ 11
+
+
+ BARyaw
+
+
+ ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabRadioIn
+
+
+ 12
+
+
+ BARroll
+
+
+ ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabRadioIn
+
+
+ 13
+
+
+
+ 4, 22
+
+
+
+ 3, 3, 3, 3
+
+
+ 666, 393
+
+
+ 0
+
+
+ Radio Input
+
+
+ tabRadioIn
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Tabs
+
+
+ 0
+
+
+ CB_simple6
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 0
+
+
+ CB_simple5
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 1
+
+
+ CB_simple4
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 2
+
+
+ CB_simple3
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 3
+
+
+ CB_simple2
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 4
+
+
+ CB_simple1
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 5
+
+
+ label14
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 6
+
+
+ LBL_flightmodepwm
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 7
+
+
+ label13
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 8
+
+
+ lbl_currentmode
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 9
+
+
+ label12
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 10
+
+
+ label11
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 11
+
+
+ label10
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 12
+
+
+ label9
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 13
+
+
+ label8
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 14
+
+
+ label7
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 15
+
+
+ label6
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 16
+
+
+ CMB_fmode6
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 17
+
+
+ label5
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 18
+
+
+ CMB_fmode5
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 19
+
+
+ label4
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 20
+
+
+ CMB_fmode4
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 21
+
+
+ label3
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 22
+
+
+ CMB_fmode3
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 23
+
+
+ label2
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 24
+
+
+ CMB_fmode2
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 25
+
+
+ label1
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 26
+
+
+ CMB_fmode1
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabModes
+
+
+ 27
+
+
+ BUT_SaveModes
+
+
+ ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabModes
+
+
+ 28
+
+
+ 4, 22
+
+
+ 666, 393
+
+
+ 3
+
+
+ Modes
+
+
+ tabModes
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Tabs
+
+
+ 1
+
+
+ BUT_MagCalibration
+
+
+ ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabHardware
+
+
+ 0
+
+
+ label27
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 1
+
+
+ CMB_sonartype
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 2
+
+
+ CHK_enableoptflow
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 3
+
+
+ pictureBox2
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 4
+
+
+ linkLabelmagdec
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 5
+
+
+ label100
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 6
+
+
+ TXT_declination
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 7
+
+
+ CHK_enableairspeed
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 8
+
+
+ CHK_enablesonar
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 9
+
+
+ CHK_enablecompass
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 10
+
+
+ pictureBox4
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 11
+
+
+ pictureBox3
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 12
+
+
+ pictureBox1
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHardware
+
+
+ 13
+
+
+ 4, 22
+
+
+ 3, 3, 3, 3
+
+
+ 666, 393
+
+
+ 1
+
+
+ Hardware
+
+
+ tabHardware
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Tabs
+
+
+ 2
+
+
+ groupBox4
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 0
+
+
+ label47
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 1
+
+
+ CMB_batmonsensortype
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 2
+
+
+ textBox3
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 3
+
+
+ label29
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 4
+
+
+ label30
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 5
+
+
+ TXT_battcapacity
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 6
+
+
+ CMB_batmontype
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 7
+
+
+ pictureBox5
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 8
+
+
+ 4, 22
+
+
+ 2, 2, 2, 2
+
+
+ 666, 393
+
+
+ 6
+
+
+ Battery
+
+
+ tabBattery
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Tabs
+
+
+ 3
+
+
+ True
+
+
+ NoControl
+
+
+ 228, 170
+
+
+ 212, 13
+
+
+ 11
+
+
+ Level your plane to set default accel offsets
+
+
+ label48
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabArduplane
+
+
+ 0
+
+
+ NoControl
+
+
+ 285, 199
+
+
+ 75, 23
+
+
+ 10
+
+
+ Level
+
+
+ BUT_levelplane
+
+
+ ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabArduplane
+
+
+ 1
+
+
+ 4, 22
+
+
+ 3, 3, 3, 3
+
+
+ 666, 393
+
+
+ 7
+
+
+ ArduPlane
+
+
+ tabArduplane
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Tabs
+
+
+ 4
+
+
+ label28
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabArducopter
+
+
+ 0
+
+
+ label16
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabArducopter
+
+
+ 1
+
+
+ label15
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabArducopter
+
+
+ 2
+
+
+ pictureBoxQuadX
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabArducopter
+
+
+ 3
+
+
+ pictureBoxQuad
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabArducopter
+
+
+ 4
+
+
+ BUT_levelac2
+
+
+ ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabArducopter
+
+
+ 5
+
+
+ 4, 22
+
+
+ 666, 393
+
+
+ 2
+
+
+ ArduCopter2
+
+
+ tabArducopter
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Tabs
+
+
+ 5
+
+
+ groupBox5
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 0
+
+
+ BUT_HS4save
+
+
+ ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabHeli
+
+
+ 1
+
+
+ BUT_swash_manual
+
+
+ ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabHeli
+
+
+ 2
+
+
+ groupBox3
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 3
+
+
+ label44
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 4
+
+
+ label43
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 5
+
+
+ label42
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 6
+
+
+ groupBox2
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 7
+
+
+ groupBox1
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 8
+
+
+ HS4_TRIM
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 9
+
+
+ HS3_TRIM
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 10
+
+
+ HS2_TRIM
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 11
+
+
+ HS1_TRIM
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 12
+
+
+ label39
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 13
+
+
+ label38
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 14
+
+
+ label37
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 15
+
+
+ label36
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 16
+
+
+ label26
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 17
+
+
+ PIT_MAX
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 18
+
+
+ label25
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 19
+
+
+ ROL_MAX
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 20
+
+
+ label23
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 21
+
+
+ label22
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 22
+
+
+ HS4_REV
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 23
+
+
+ label20
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 24
+
+
+ label19
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 25
+
+
+ label18
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 26
+
+
+ SV3_POS
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 27
+
+
+ SV2_POS
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 28
+
+
+ SV1_POS
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 29
+
+
+ HS3_REV
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 30
+
+
+ HS2_REV
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 31
+
+
+ HS1_REV
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 32
+
+
+ label17
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 33
+
+
+ HS4
+
+
+ ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabHeli
+
+
+ 34
+
+
+ HS3
+
+
+ ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabHeli
+
+
+ 35
+
+
+ Gservoloc
+
+
+ AGaugeApp.AGauge, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabHeli
+
+
+ 36
+
+
+ 4, 22
+
+
+ 666, 393
+
+
+ 5
+
+
+ AC2 Heli
+
+
+ tabHeli
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Tabs
+
+
+ 6
+
+
+ Fill
+
+
+ 0, 0
+
+
+ 674, 419
+
+
+ 93
+
+
+ Tabs
+
+
+ System.Windows.Forms.TabControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ CHK_mixmode
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBoxElevons
+
+
+ 0
+
+
+ CHK_elevonch2rev
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBoxElevons
+
+
+ 1
+
+
+ CHK_elevonrev
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBoxElevons
+
+
+ 2
+
+
+ CHK_elevonch1rev
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBoxElevons
+
+
+ 3
+
+
+ 21, 349
+
+
+ 409, 42
+
+
+ 111
+
+
+ Elevon Config
+
+
+ groupBoxElevons
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabRadioIn
+
+
+ 0
+
True
-
NoControl
-
13, 19
@@ -255,30 +1896,6 @@
3
-
- 21, 349
-
-
- 409, 42
-
-
- 111
-
-
- Elevon Config
-
-
- groupBoxElevons
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabRadioIn
-
-
- 0
-
True
@@ -450,6 +2067,9 @@
6
+
+ 17, 17
+
446, 185
@@ -597,33 +2217,6 @@
13
-
- 4, 22
-
-
- 3, 3, 3, 3
-
-
- 666, 393
-
-
- 0
-
-
- Radio Input
-
-
- tabRadioIn
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabControl1
-
-
- 0
-
True
@@ -1455,30 +3048,6 @@
28
-
- 4, 22
-
-
- 666, 393
-
-
- 3
-
-
- Modes
-
-
- tabModes
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabControl1
-
-
- 1
-
405, 25
@@ -1863,33 +3432,150 @@
13
-
- 4, 22
+
+ label31
-
- 3, 3, 3, 3
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 666, 393
+
+ groupBox4
-
+
+ 0
+
+
+ label32
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox4
+
+
1
-
- Hardware
+
+ label33
-
- tabHardware
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ groupBox4
-
- tabControl1
-
-
+
2
+
+ TXT_ampspervolt
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox4
+
+
+ 3
+
+
+ label34
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox4
+
+
+ 4
+
+
+ TXT_divider
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox4
+
+
+ 5
+
+
+ label35
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox4
+
+
+ 6
+
+
+ TXT_voltage
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox4
+
+
+ 7
+
+
+ TXT_inputvoltage
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox4
+
+
+ 8
+
+
+ TXT_measuredvoltage
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox4
+
+
+ 9
+
+
+ 31, 177
+
+
+ 238, 131
+
+
+ 41
+
+
+ Calibration
+
+
+ groupBox4
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabBattery
+
+
+ 0
+
True
@@ -2175,30 +3861,6 @@
9
-
- 31, 177
-
-
- 238, 131
-
-
- 41
-
-
- Calibration
-
-
- groupBox4
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabBattery
-
-
- 0
-
NoControl
@@ -2430,33 +4092,6 @@ Then subtract 0.3v from that value and enter it in field #1 at left.
8
-
- 4, 22
-
-
- 2, 2, 2, 2
-
-
- 666, 393
-
-
- 6
-
-
- Battery
-
-
- tabBattery
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabControl1
-
-
- 3
-
True
@@ -2629,29 +4264,53 @@ will work with hexa's etc
5
-
- 4, 22
+
+ H1_ENABLE
-
- 666, 393
+
+ System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 2
+
+ groupBox5
-
- ArduCopter2
+
+ 0
-
- tabArducopter
+
+ CCPM
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- tabControl1
+
+ groupBox5
-
- 4
+
+ 1
+
+
+ 253, 6
+
+
+ 120, 43
+
+
+ 137
+
+
+ Swash Type
+
+
+ groupBox5
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 0
True
@@ -2710,30 +4369,6 @@ will work with hexa's etc
1
-
- 253, 6
-
-
- 120, 43
-
-
- 137
-
-
- Swash Type
-
-
- groupBox5
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabHeli
-
-
- 0
-
NoControl
@@ -2788,6 +4423,78 @@ will work with hexa's etc
2
+
+ label46
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox3
+
+
+ 0
+
+
+ label45
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox3
+
+
+ 1
+
+
+ GYR_ENABLE
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox3
+
+
+ 2
+
+
+ GYR_GAIN
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox3
+
+
+ 3
+
+
+ 433, 309
+
+
+ 101, 63
+
+
+ 135
+
+
+ Gyro
+
+
+ groupBox3
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 3
+
True
@@ -2899,30 +4606,6 @@ will work with hexa's etc
3
-
- 433, 309
-
-
- 101, 63
-
-
- 135
-
-
- Gyro
-
-
- groupBox3
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabHeli
-
-
- 3
-
True
@@ -3013,6 +4696,75 @@ will work with hexa's etc
6
+
+ label24
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox2
+
+
+ 0
+
+
+ HS4_MIN
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox2
+
+
+ 1
+
+
+ HS4_MAX
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox2
+
+
+ 2
+
+
+ label40
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox2
+
+
+ 3
+
+
+ 433, 181
+
+
+ 169, 78
+
+
+ 130
+
+
+ groupBox2
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabHeli
+
+
+ 7
+
True
@@ -3127,26 +4879,98 @@ will work with hexa's etc
3
-
- 433, 181
+
+ label41
-
- 169, 78
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 130
+
+ groupBox1
-
- groupBox2
+
+ 0
-
+
+ label21
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 1
+
+
+ COL_MIN
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 2
+
+
+ COL_MID
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 3
+
+
+ COL_MAX
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 4
+
+
+ BUT_0collective
+
+
+ ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ groupBox1
+
+
+ 5
+
+
+ 293, 90
+
+
+ 80, 209
+
+
+ 129
+
+
+ groupBox1
+
+
System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
tabHeli
-
- 7
+
+ 8
True
@@ -3319,27 +5143,6 @@ will work with hexa's etc
5
-
- 293, 90
-
-
- 80, 209
-
-
- 129
-
-
- groupBox1
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabHeli
-
-
- 8
-
535, 279
@@ -4084,69 +5887,6 @@ will work with hexa's etc
36
-
- 4, 22
-
-
- 666, 393
-
-
- 5
-
-
- AC2 Heli
-
-
- tabHeli
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabControl1
-
-
- 5
-
-
- Fill
-
-
- 0, 0
-
-
- 674, 419
-
-
- 93
-
-
- tabControl1
-
-
- System.Windows.Forms.TabControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 0
-
-
- NoControl
-
-
- 214, 161
-
-
- 195, 23
-
-
- 0
-
-
- Reset APM Hardware to Default
-
BUT_reset
@@ -4177,6 +5917,33 @@ will work with hexa's etc
System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ NoControl
+
+
+ 214, 161
+
+
+ 195, 23
+
+
+ 0
+
+
+ Reset APM Hardware to Default
+
+
+ BUT_reset
+
+
+ ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabReset
+
+
+ 0
+
True
diff --git a/Tools/ArdupilotMegaPlanner/ThemeManager.cs b/Tools/ArdupilotMegaPlanner/ThemeManager.cs
index 75bbc0804c..859cd8e7d4 100644
--- a/Tools/ArdupilotMegaPlanner/ThemeManager.cs
+++ b/Tools/ArdupilotMegaPlanner/ThemeManager.cs
@@ -1,6 +1,7 @@
using System;
using System.Drawing;
using System.Windows.Forms;
+using ArdupilotMega.Controls.BackstageView;
using log4net;
namespace ArdupilotMega
@@ -225,6 +226,18 @@ namespace ArdupilotMega
LNK.VisitedLinkColor = TextColor;
}
+ else if (ctl.GetType() == typeof(BackstageView))
+ {
+ var bsv = ctl as BackstageView;
+
+ bsv.BackColor = BGColor;
+ bsv.ButtonsAreaBgColor = ControlBGColor;
+ bsv.HighlightColor2 = Color.FromArgb(0x94, 0xc1, 0x1f);
+ bsv.HighlightColor1 = Color.FromArgb(0x40, 0x57, 0x04);
+ bsv.SelectedTextColor = Color.White;
+ bsv.UnSelectedTextColor = Color.Gray;
+ bsv.ButtonsAreaPencilColor = Color.DarkGray;
+ }
else if (ctl.GetType() == typeof(HorizontalProgressBar2) || ctl.GetType() == typeof(VerticalProgressBar2))
{
((HorizontalProgressBar2)ctl).BackgroundColor = ControlBGColor;
diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb
index 9761640ef1..3a1d3667b7 100644
Binary files a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb and b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb differ