APM Planner 1.1.65

dataqflashlog Update
add new test config panel
This commit is contained in:
Michael Oborne 2012-04-12 21:39:51 +08:00
parent 64a1c45dcd
commit 213fd91930
17 changed files with 1184 additions and 197 deletions

View File

@ -0,0 +1,205 @@
<?xml version="1.0" encoding="utf-8" ?>
<AC>
<Item>
<HEAD>Stabilization:</HEAD>
<SUBHEAD>Angular Rate Control:</SUBHEAD>
<DESC>How much throttle is applied to rotate the copter at the desired speed.
Adjust P by motor size
Small: P = 0.145
Med: P = 0.110
Large: P = 0.090</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>RATE_RLL_P</PARAMNAME>
<PARAMNAME>RATE_PIT_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>RATE_RLL_I</PARAMNAME>
<PARAMNAME>RATE_PIT_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>D</NAME>
<PARAMNAME>RATE_RLL_D</PARAMNAME>
<PARAMNAME>RATE_PIT_D</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>RATE_RLL_IMAX</PARAMNAME>
<PARAMNAME>RATE_PIT_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>40</RANGEMAX>
<STEP>0.1</STEP>
</FIELD>
</FIELDS>
<SUBHEAD>Dampening:</SUBHEAD>
<DESC>Resistance to angular acceleration
A dynamic gain is applied so that the dampening only occurs at 100% when the control sticks are centered.
When the sticks are fully deflected:
1.0 = 0%
0.5 = 50%
0.0 = 100%</DESC>
<FIELDS>
<FIELD>
<NAME>Dampen</NAME>
<PARAMNAME>STAB_D</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>Dynamic</NAME>
<PARAMNAME>STAB_D_S</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>1</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
</FIELDS>
<SUBHEAD>Stabilize Control:</SUBHEAD>
<DESC>
How fast the copter reacts to user or autopilot input.
Higher = more aggressive control.
Too high = slow wobbles
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>STB_RLL_P</PARAMNAME>
<PARAMNAME>STB_PIT_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>STB_RLL_I</PARAMNAME>
<PARAMNAME>STB_PIT_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>STB_RLL_IMAX</PARAMNAME>
<PARAMNAME>STB_PIT_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
</FIELDS>
</Item>
<!-- Loiter -->
<Item>
<HEAD>Loiter:</HEAD>
<SUBHEAD>Angular Rate Control:</SUBHEAD>
<DESC>
How much angle is applied to make the copter accelerate to the desired speed.
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>LOITER_LAT_P</PARAMNAME>
<PARAMNAME>LOITER_LON_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>LOITER_LAT_I</PARAMNAME>
<PARAMNAME>LOITER_LON_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>D</NAME>
<PARAMNAME>LOITER_LAT_D</PARAMNAME>
<PARAMNAME>LOITER_LON_D</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>LOITER_LAT_IMAX</PARAMNAME>
<PARAMNAME>LOITER_LON_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>0.1</STEP>
</FIELD>
</FIELDS>
<SUBHEAD>Loiter Speed:</SUBHEAD>
<DESC>
How fast the copter should move towards the target. A larger value means a faster return to center, but can cause the copter to oscillate around the target.
A distance error of 100cm * P of .25 = 25 cm/s
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>HLD_LAT_P</PARAMNAME>
<PARAMNAME>HLD_LON_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
</FIELDS>
</Item>
<!-- WP Nav -->
<Item>
<HEAD>WP Navigation:</HEAD>
<SUBHEAD>Nav Rate Control:</SUBHEAD>
<DESC>
How much angle is applied to make the copter accelerate to the desired speed.
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>NAV_LAT_P</PARAMNAME>
<PARAMNAME>NAV_LON_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>NAV_LAT_I</PARAMNAME>
<PARAMNAME>NAV_LON_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>D</NAME>
<PARAMNAME>NAV_LAT_D</PARAMNAME>
<PARAMNAME>NAV_LON_D</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>NAV_LAT_IMAX</PARAMNAME>
<PARAMNAME>NAV_LON_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>0.1</STEP>
</FIELD>
</FIELDS>
</Item>
</AC>

View File

@ -238,7 +238,16 @@
<Compile Include="Controls\BackstageView\BackStageViewMenuPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\ConfigPanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\ConfigPanel.Designer.cs">
<DependentUpon>ConfigPanel.cs</DependentUpon>
</Compile>
<Compile Include="Controls\CustomMessageBox.cs" />
<Compile Include="Controls\LineSeparator.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\ProgressReporterDialogue.cs">
<SubType>Form</SubType>
</Compile>
@ -537,6 +546,9 @@
<EmbeddedResource Include="Controls\BackstageView\BackstageView.resx">
<DependentUpon>BackstageView.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\ConfigPanel.resx">
<DependentUpon>ConfigPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\ProgressReporterDialogue.resx">
<DependentUpon>ProgressReporterDialogue.cs</DependentUpon>
</EmbeddedResource>
@ -1047,6 +1059,9 @@
</ItemGroup>
<ItemGroup>
<Content Include="apm2.ico" />
<Content Include="ArduCopterConfig.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Driver\Arduino MEGA 2560.inf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>

View File

@ -0,0 +1,47 @@
namespace ArdupilotMega.Controls
{
partial class ConfigPanel
{
/// <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.SuspendLayout();
//
// ConfigPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoScroll = true;
this.ClientSize = new System.Drawing.Size(642, 454);
this.Name = "ConfigPanel";
this.Load += new System.EventHandler(this.ConfigPanel_Load);
this.ResumeLayout(false);
}
#endregion
}
}

View File

@ -0,0 +1,319 @@
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace ArdupilotMega.Controls
{
public partial class ConfigPanel : Form
{
/// <summary>
/// store tempory pending changes
/// </summary>
Hashtable _changed = new Hashtable();
// store linked param options
Hashtable _linkedParams = new Hashtable();
public ConfigPanel()
{
InitializeComponent();
}
/// <summary>
/// fill numeric up down boxs with there value
/// </summary>
public void PopulateData()
{
// process hashdefines and update display
foreach (string value in MainV2.comPort.param.Keys)
{
Control[] text = this.Controls.Find(value, true);
foreach (Control ctl in text)
{
try
{
NumericUpDown thisctl = ((NumericUpDown)ctl);
thisctl.Value = (decimal)(float)MainV2.comPort.param[value];
thisctl.Enabled = true;
thisctl.Validated += new EventHandler(thisctl_Validated);
}
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
}
}
}
void thisctl_Validated(object sender, EventArgs e)
{
string param = ((NumericUpDown)sender).Name;
((Control)sender).BackColor = Color.Green;
foreach (string item in (List<string>)_linkedParams[param])
{
_changed[item] = (float)((NumericUpDown)sender).Value;
}
}
/// <summary>
/// disables all NumericUpDown box's
/// </summary>
/// <param name="inctl"></param>
void disableNumericUpDownControls(Control inctl)
{
foreach (Control ctl in inctl.Controls)
{
if (ctl.Controls.Count > 0)
{
disableNumericUpDownControls(ctl);
}
if (ctl.GetType() == typeof(NumericUpDown))
{
ctl.Enabled = false;
}
}
}
/// <summary>
/// The template xml for the screen
/// </summary>
/// <param name="FileName"></param>
public void LoadXML(string FileName)
{
int x = 20;
int y = 0;
int optionx = 300;
int optiony = 0;
string name = "";
List<string> paramname = new List<string>();
double rangemin = 0;
double rangemax = 10;
double step = 0.001;
using (XmlReader reader = XmlReader.Create(FileName))
{
while (reader.Read())
{
switch (reader.Name.ToUpper())
{
case "ITEM":
break;
case "HEAD":
y += 30;
string heading = reader.ReadString();
Label lbl = new Label();
lbl.AutoSize = true;
lbl.Text = heading;
lbl.Location = new Point(x,y);
lbl.Font = new Font(FontFamily.GenericSansSerif, 15,FontStyle.Bold);
this.Controls.Add(lbl);
MyButton but = new MyButton();
but.Text = "Save";
but.Location = new Point(optionx + 100, y);
but.Click += new EventHandler(but_Click);
this.Controls.Add(but);
y = lbl.Location.Y + lbl.Height + 10;
LineSeparator ls = new LineSeparator();
ls.Width = this.Width - 40;
ls.Location = new Point(x,y);
ls.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
this.Controls.Add(ls);
y = ls.Location.Y + ls.Height;
break;
case "SUBHEAD":
y += 15;
optiony = y;
optionx = 300;
string subhead = reader.ReadString();
Label lbl2 = new Label();
lbl2.AutoSize = true;
lbl2.Text = subhead;
lbl2.Location = new Point(x,y);
lbl2.Font = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Bold);
this.Controls.Add(lbl2);
y = lbl2.Location.Y + lbl2.Height;
break;
case "DESC":
y += 2;
string desc = reader.ReadString();
Label lbl3 = new Label();
lbl3.AutoSize = true;
lbl3.Text = AddNewLinesToText(desc);
lbl3.Location = new Point(x,y);
lbl3.Font = new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold);
this.Controls.Add(lbl3);
y = lbl3.Location.Y + lbl3.Height;
break;
case "FIELDS":
if (reader.NodeType == XmlNodeType.EndElement)
{
if (optiony > y)
y = optiony;
}
break;
case "FIELD":
if (reader.NodeType == XmlNodeType.EndElement)
{
if (name == "" || paramname.Count == 0)
break;
Label lbl5 = new Label();
//lbl5.AutoSize = true;
lbl5.Text = name;
lbl5.Location = new Point(optionx, optiony);
lbl5.Size = new System.Drawing.Size(90,20);
lbl5.Font = new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold);
lbl5.TextAlign = ContentAlignment.MiddleRight;
this.Controls.Add(lbl5);
NumericUpDown nud = new NumericUpDown();
nud.Location = new Point(optionx + 100, optiony);
nud.Size = new System.Drawing.Size(78,20);
nud.Maximum = (decimal)rangemax;
nud.Minimum = (decimal)rangemin;
nud.Increment = (decimal)step;
nud.DecimalPlaces = (int)(step.ToString().Length - step.ToString(new System.Globalization.CultureInfo("en-US")).IndexOf('.') - 1);
nud.Name = paramname[0];
this.Controls.Add(nud);
optiony += nud.Height;
_linkedParams[paramname[0]] = paramname;
}
else
{
name = "";
paramname = new List<string>();
rangemax = 10;
rangemin = 0;
step = 0.001;
}
break;
case "NAME":
name = reader.ReadString();
break;
case "PARAMNAME":
paramname.Add(reader.ReadString());
break;
case "RANGEMIN":
rangemin = double.Parse(reader.ReadString(), new System.Globalization.CultureInfo("en-US"));
break;
case "RANGEMAX":
rangemax = double.Parse(reader.ReadString(), new System.Globalization.CultureInfo("en-US"));
break;
case "STEP":
step = double.Parse(reader.ReadString(), new System.Globalization.CultureInfo("en-US"));
break;
}
}
}
ThemeManager.ApplyThemeTo(this);
disableNumericUpDownControls(this);
}
void but_Click(object sender, EventArgs e)
{
Hashtable temp = (Hashtable)_changed.Clone();
foreach (string value in temp.Keys)
{
try
{
MainV2.comPort.setParam(value, (float)_changed[value]);
_changed.Remove(value);
try
{
// un green control as well
Control[] text = this.Controls.Find(value, true);
if (text.Length > 0)
{
((Control)text[0]).BackColor = Color.FromArgb(0x43, 0x44, 0x45);
}
}
catch { }
}
catch { CustomMessageBox.Show("Set " + value + " Failed"); }
}
}
// from http://stackoverflow.com/questions/2512781/winforms-big-paragraph-tooltip/2512895#2512895
private static int maximumSingleLineTooltipLength = 40;
private static string AddNewLinesToText(string text)
{
if (text.Length < maximumSingleLineTooltipLength)
return text;
int lineLength = maximumSingleLineTooltipLength;
StringBuilder sb = new StringBuilder();
int currentLinePosition = 0;
for (int textIndex = 0; textIndex < text.Length; textIndex++)
{
// If we have reached the target line length and the next
// character is whitespace then begin a new line.
if (currentLinePosition >= lineLength &&
char.IsWhiteSpace(text[textIndex]))
{
sb.Append(Environment.NewLine);
currentLinePosition = 0;
}
// reset line lnegth counter on existing new line
if (text[textIndex] == Environment.NewLine[Environment.NewLine.Length - 1])
{
currentLinePosition = 1;
// skip space at line start
if (textIndex == 0)
currentLinePosition = 0;
}
// If we have just started a new line, skip all the whitespace.
if (currentLinePosition == 0)
while (textIndex < text.Length && char.IsWhiteSpace(text[textIndex]))
textIndex++;
// Append the next character.
if (textIndex < text.Length) sb.Append(text[textIndex]);
currentLinePosition++;
}
return sb.ToString();
}
private void ConfigPanel_Load(object sender, EventArgs e)
{
PopulateData();
}
}
}

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

@ -144,7 +144,7 @@ namespace System.Windows.Forms
// reset line lnegth counter on existing new line
if (text[textIndex] == Environment.NewLine[Environment.NewLine.Length -1])
{
currentLinePosition = 0;
currentLinePosition = 1;
}
// If we have just started a new line, skip all the whitespace.
if (currentLinePosition == 0)

View File

@ -0,0 +1,52 @@
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;
public partial class LineSeparator : UserControl
{
public LineSeparator()
{
this.Height = 2;
this.Paint += new PaintEventHandler(LineSeparator_Paint);
this.MaximumSize = new Size(2000, 2);
this.MinimumSize = new Size(0, 2);
//this.Width = 350;
}
private void LineSeparator_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawLine(
Pens.DarkGray, new Point(0, 0), new Point(this.Width, 0));
g.DrawLine(
Pens.White, new Point(0, 1), new Point(this.Width, 1));
}
}

View File

@ -1071,6 +1071,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoScroll = true;
this.Controls.Add(this.myLabel3);
this.Controls.Add(this.TUNE_LOW);
this.Controls.Add(this.TUNE_HIGH);
@ -1091,7 +1092,7 @@
this.Controls.Add(this.groupBox24);
this.Controls.Add(this.groupBox25);
this.Name = "ConfigArducopter";
this.Size = new System.Drawing.Size(728, 393);
this.Size = new System.Drawing.Size(728, 529);
this.Load += new System.EventHandler(this.ConfigArducopter_Load);
((System.ComponentModel.ISupportInitialize)(this.TUNE_LOW)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.TUNE_HIGH)).EndInit();

View File

@ -1912,9 +1912,13 @@ namespace ArdupilotMega
}
if (keyData == (Keys.Control | Keys.W)) // test
{
Form frm = new GCSViews.ConfigurationView.Configuration();
ThemeManager.ApplyThemeTo(frm);
frm.Show();
Controls.ConfigPanel cfg = new Controls.ConfigPanel();
cfg.LoadXML("ArduCopterConfig.xml");
cfg.ShowDialog();
return true;
}
if (keyData == (Keys.Control | Keys.T)) // for override connect

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.63" Manufacturer="Michael Oborne" UpgradeCode="{625389D7-EB3C-4d77-A5F6-A285CF99437D}">
<Product Id="*" Name="APM Planner" Language="1033" Version="1.1.64" 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.63" Property="NEWERVERSIONDETECTED" IncludeMinimum="no" />
<UpgradeVersion OnlyDetect="no" Maximum="1.1.63" Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" />
<UpgradeVersion OnlyDetect="yes" Minimum="1.1.64" Property="NEWERVERSIONDETECTED" IncludeMinimum="no" />
<UpgradeVersion OnlyDetect="no" Maximum="1.1.64" Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" />
</Upgrade>
<InstallExecuteSequence>
@ -31,221 +31,224 @@
<Permission User="Everyone" GenericAll="yes" />
</CreateFolder>
</Component>
<Component Id="_comp1" Guid="a070a228-42fe-4bbc-a8f4-ca37bedc8aff">
<Component Id="_comp1" Guid="dba8d621-643a-42b5-a947-bf317799d98f">
<File Id="_2" Source="..\bin\release\AeroSimRCAPMHil.zip" />
<File Id="_3" Source="..\bin\release\alglibnet2.dll" />
<File Id="_4" Source="..\bin\release\ArduCopter-sitl.exe" />
<File Id="_5" Source="..\bin\release\arducopter-xplane.zip" />
<File Id="_6" Source="..\bin\release\ArduCopter.exe" />
<File Id="_7" Source="..\bin\release\ArdupilotMegaPlanner.exe" />
<File Id="_8" Source="..\bin\release\ArdupilotMegaPlanner.exe.config" />
<File Id="_9" Source="..\bin\release\ArdupilotMegaPlanner.pdb" />
<File Id="_10" Source="..\bin\release\ArduPlane-sitl.exe" />
<File Id="_11" Source="..\bin\release\ArduPlane.exe" />
<File Id="_12" Source="..\bin\release\block_plane_0.dae" />
<File Id="_13" Source="..\bin\release\BSE.Windows.Forms.dll" />
<File Id="_14" Source="..\bin\release\Core.dll" />
<File Id="_15" Source="..\bin\release\cygwin1.dll" />
<File Id="_16" Source="..\bin\release\dataflashlog.xml" />
<File Id="_17" Source="..\bin\release\DirectShowLib-2005.dll" />
<File Id="_18" Source="..\bin\release\eeprom.bin" />
<File Id="_19" Source="..\bin\release\GMap.NET.Core.dll" />
<File Id="_20" Source="..\bin\release\GMap.NET.WindowsForms.dll" />
<File Id="_21" Source="..\bin\release\hud.html" />
<File Id="_22" Source="..\bin\release\ICSharpCode.SharpZipLib.dll" />
<File Id="_23" Source="..\bin\release\Ionic.Zip.Reduced.dll" />
<File Id="_24" Source="..\bin\release\IronPython.dll" />
<File Id="_25" Source="..\bin\release\IronPython.Modules.dll" />
<File Id="_26" Source="..\bin\release\JSBSim.exe" />
<File Id="_27" Source="..\bin\release\KMLib.dll" />
<File Id="_28" Source="..\bin\release\log4net.dll" />
<File Id="_29" Source="..\bin\release\mavcmd.xml" />
<File Id="_30" Source="..\bin\release\MAVLink.xml" />
<File Id="_31" Source="..\bin\release\MetaDataExtractor.dll" />
<File Id="_32" Source="..\bin\release\Microsoft.DirectX.DirectInput.dll" />
<File Id="_33" Source="..\bin\release\Microsoft.DirectX.dll" />
<File Id="_34" Source="..\bin\release\Microsoft.Dynamic.dll" />
<File Id="_35" Source="..\bin\release\Microsoft.Scripting.Core.dll" />
<File Id="_36" Source="..\bin\release\Microsoft.Scripting.Debugging.dll" />
<File Id="_37" Source="..\bin\release\Microsoft.Scripting.dll" />
<File Id="_38" Source="..\bin\release\Microsoft.Scripting.ExtensionAttribute.dll" />
<File Id="_39" Source="..\bin\release\netDxf.dll" />
<File Id="_40" Source="..\bin\release\OpenTK.dll" />
<File Id="_41" Source="..\bin\release\OpenTK.GLControl.dll" />
<File Id="_42" Source="..\bin\release\quadhil.xml" />
<File Id="_43" Source="..\bin\release\serialsent.raw" />
<File Id="_44" Source="..\bin\release\SharpKml.dll" />
<File Id="_45" Source="..\bin\release\System.Data.SQLite.dll" />
<File Id="_46" Source="..\bin\release\System.Speech.dll" />
<File Id="_47" Source="..\bin\release\Updater.exe" />
<File Id="_48" Source="..\bin\release\Updater.exe.config" />
<File Id="_49" Source="..\bin\release\Updater.pdb" />
<File Id="_50" Source="..\bin\release\version.exe" />
<File Id="_51" Source="..\bin\release\version.txt" />
<File Id="_52" Source="..\bin\release\ZedGraph.dll" />
<File Id="_7" Source="..\bin\release\ArduinoCPP.exe" />
<File Id="_8" Source="..\bin\release\ArduinoCPP.exe.config" />
<File Id="_9" Source="..\bin\release\ArduinoCPP.pdb" />
<File Id="_10" Source="..\bin\release\ArdupilotMegaPlanner.exe" />
<File Id="_11" Source="..\bin\release\ArdupilotMegaPlanner.exe.config" />
<File Id="_12" Source="..\bin\release\ArdupilotMegaPlanner.pdb" />
<File Id="_13" Source="..\bin\release\ArduPlane-sitl.exe" />
<File Id="_14" Source="..\bin\release\ArduPlane.exe" />
<File Id="_15" Source="..\bin\release\block_plane_0.dae" />
<File Id="_16" Source="..\bin\release\BSE.Windows.Forms.dll" />
<File Id="_17" Source="..\bin\release\Core.dll" />
<File Id="_18" Source="..\bin\release\cygwin1.dll" />
<File Id="_19" Source="..\bin\release\dataflashlog.xml" />
<File Id="_20" Source="..\bin\release\DirectShowLib-2005.dll" />
<File Id="_21" Source="..\bin\release\eeprom.bin" />
<File Id="_22" Source="..\bin\release\GMap.NET.Core.dll" />
<File Id="_23" Source="..\bin\release\GMap.NET.WindowsForms.dll" />
<File Id="_24" Source="..\bin\release\hud.html" />
<File Id="_25" Source="..\bin\release\ICSharpCode.SharpZipLib.dll" />
<File Id="_26" Source="..\bin\release\Ionic.Zip.Reduced.dll" />
<File Id="_27" Source="..\bin\release\IronPython.dll" />
<File Id="_28" Source="..\bin\release\IronPython.Modules.dll" />
<File Id="_29" Source="..\bin\release\JSBSim.exe" />
<File Id="_30" Source="..\bin\release\KMLib.dll" />
<File Id="_31" Source="..\bin\release\log4net.dll" />
<File Id="_32" Source="..\bin\release\mavcmd.xml" />
<File Id="_33" Source="..\bin\release\MAVLink.xml" />
<File Id="_34" Source="..\bin\release\MetaDataExtractor.dll" />
<File Id="_35" Source="..\bin\release\Microsoft.DirectX.DirectInput.dll" />
<File Id="_36" Source="..\bin\release\Microsoft.DirectX.dll" />
<File Id="_37" Source="..\bin\release\Microsoft.Dynamic.dll" />
<File Id="_38" Source="..\bin\release\Microsoft.Scripting.Core.dll" />
<File Id="_39" Source="..\bin\release\Microsoft.Scripting.Debugging.dll" />
<File Id="_40" Source="..\bin\release\Microsoft.Scripting.dll" />
<File Id="_41" Source="..\bin\release\Microsoft.Scripting.ExtensionAttribute.dll" />
<File Id="_42" Source="..\bin\release\netDxf.dll" />
<File Id="_43" Source="..\bin\release\OpenTK.dll" />
<File Id="_44" Source="..\bin\release\OpenTK.GLControl.dll" />
<File Id="_45" Source="..\bin\release\quadhil.xml" />
<File Id="_46" Source="..\bin\release\serialsent.raw" />
<File Id="_47" Source="..\bin\release\SharpKml.dll" />
<File Id="_48" Source="..\bin\release\System.Data.SQLite.dll" />
<File Id="_49" Source="..\bin\release\System.Speech.dll" />
<File Id="_50" Source="..\bin\release\Updater.exe" />
<File Id="_51" Source="..\bin\release\Updater.exe.config" />
<File Id="_52" Source="..\bin\release\Updater.pdb" />
<File Id="_53" Source="..\bin\release\version.exe" />
<File Id="_54" Source="..\bin\release\version.txt" />
<File Id="_55" Source="..\bin\release\ZedGraph.dll" />
</Component>
<Directory Id="aircraft52" Name="aircraft">
<Component Id="_comp53" Guid="31143d1e-1968-4907-9471-4e01422f9e78">
<File Id="_54" Source="..\bin\release\aircraft\placeholder.txt" />
<Directory Id="aircraft55" Name="aircraft">
<Component Id="_comp56" Guid="45b138a8-2f48-4508-9edc-e6688532247a">
<File Id="_57" Source="..\bin\release\aircraft\placeholder.txt" />
</Component>
<Directory Id="arducopter54" Name="arducopter">
<Component Id="_comp55" Guid="fbb61931-3ae2-4df5-86ef-3468717fccbc">
<File Id="_56" Source="..\bin\release\aircraft\arducopter\arducopter-set.xml" />
<File Id="_57" Source="..\bin\release\aircraft\arducopter\arducopter.jpg" />
<File Id="_58" Source="..\bin\release\aircraft\arducopter\arducopter.xml" />
<File Id="_59" Source="..\bin\release\aircraft\arducopter\initfile.xml" />
<File Id="_60" Source="..\bin\release\aircraft\arducopter\plus_quad2-set.xml" />
<File Id="_61" Source="..\bin\release\aircraft\arducopter\plus_quad2.xml" />
<File Id="_62" Source="..\bin\release\aircraft\arducopter\quad.nas" />
<File Id="_63" Source="..\bin\release\aircraft\arducopter\README" />
<Directory Id="arducopter57" Name="arducopter">
<Component Id="_comp58" Guid="f084a180-18c9-41f6-8070-ae26bf831d1e">
<File Id="_59" Source="..\bin\release\aircraft\arducopter\arducopter-set.xml" />
<File Id="_60" Source="..\bin\release\aircraft\arducopter\arducopter.jpg" />
<File Id="_61" Source="..\bin\release\aircraft\arducopter\arducopter.xml" />
<File Id="_62" Source="..\bin\release\aircraft\arducopter\initfile.xml" />
<File Id="_63" Source="..\bin\release\aircraft\arducopter\plus_quad2-set.xml" />
<File Id="_64" Source="..\bin\release\aircraft\arducopter\plus_quad2.xml" />
<File Id="_65" Source="..\bin\release\aircraft\arducopter\quad.nas" />
<File Id="_66" Source="..\bin\release\aircraft\arducopter\README" />
</Component>
<Directory Id="data63" Name="data">
<Component Id="_comp64" Guid="183432fe-1b80-4bdc-bdba-e938d240dc25">
<File Id="_65" Source="..\bin\release\aircraft\arducopter\data\arducopter_half_step.txt" />
<File Id="_66" Source="..\bin\release\aircraft\arducopter\data\arducopter_step.txt" />
<File Id="_67" Source="..\bin\release\aircraft\arducopter\data\rw_generic_pylon.ac" />
<Directory Id="data66" Name="data">
<Component Id="_comp67" Guid="5dee70d9-d900-4409-bf27-2430cc6220d4">
<File Id="_68" Source="..\bin\release\aircraft\arducopter\data\arducopter_half_step.txt" />
<File Id="_69" Source="..\bin\release\aircraft\arducopter\data\arducopter_step.txt" />
<File Id="_70" Source="..\bin\release\aircraft\arducopter\data\rw_generic_pylon.ac" />
</Component>
</Directory>
<Directory Id="Engines67" Name="Engines">
<Component Id="_comp68" Guid="792df9a4-582f-47d9-b2b6-4115108c7a30">
<File Id="_69" Source="..\bin\release\aircraft\arducopter\Engines\a2830-12.xml" />
<File Id="_70" Source="..\bin\release\aircraft\arducopter\Engines\prop10x4.5.xml" />
<Directory Id="Engines70" Name="Engines">
<Component Id="_comp71" Guid="bac95eb2-9cf0-452b-8c29-a4ab162de973">
<File Id="_72" Source="..\bin\release\aircraft\arducopter\Engines\a2830-12.xml" />
<File Id="_73" Source="..\bin\release\aircraft\arducopter\Engines\prop10x4.5.xml" />
</Component>
</Directory>
<Directory Id="Models70" Name="Models">
<Component Id="_comp71" Guid="dc93e1a8-4de1-42c4-b1fd-0a672efa9915">
<File Id="_72" Source="..\bin\release\aircraft\arducopter\Models\arducopter.ac" />
<File Id="_73" Source="..\bin\release\aircraft\arducopter\Models\arducopter.xml" />
<File Id="_74" Source="..\bin\release\aircraft\arducopter\Models\plus_quad.ac" />
<File Id="_75" Source="..\bin\release\aircraft\arducopter\Models\plus_quad2.ac" />
<File Id="_76" Source="..\bin\release\aircraft\arducopter\Models\plus_quad2.xml" />
<File Id="_77" Source="..\bin\release\aircraft\arducopter\Models\quad.3ds" />
<File Id="_78" Source="..\bin\release\aircraft\arducopter\Models\shareware_output.3ds" />
<File Id="_79" Source="..\bin\release\aircraft\arducopter\Models\Untitled.ac" />
<File Id="_80" Source="..\bin\release\aircraft\arducopter\Models\Y6_test.ac" />
<Directory Id="Models73" Name="Models">
<Component Id="_comp74" Guid="14cf59a2-751c-4329-83f2-094a85d80f21">
<File Id="_75" Source="..\bin\release\aircraft\arducopter\Models\arducopter.ac" />
<File Id="_76" Source="..\bin\release\aircraft\arducopter\Models\arducopter.xml" />
<File Id="_77" Source="..\bin\release\aircraft\arducopter\Models\plus_quad.ac" />
<File Id="_78" Source="..\bin\release\aircraft\arducopter\Models\plus_quad2.ac" />
<File Id="_79" Source="..\bin\release\aircraft\arducopter\Models\plus_quad2.xml" />
<File Id="_80" Source="..\bin\release\aircraft\arducopter\Models\quad.3ds" />
<File Id="_81" Source="..\bin\release\aircraft\arducopter\Models\shareware_output.3ds" />
<File Id="_82" Source="..\bin\release\aircraft\arducopter\Models\Untitled.ac" />
<File Id="_83" Source="..\bin\release\aircraft\arducopter\Models\Y6_test.ac" />
</Component>
</Directory>
</Directory>
<Directory Id="Rascal80" Name="Rascal">
<Component Id="_comp81" Guid="0c6a286d-d878-41cd-9868-3e45a61f32d8">
<File Id="_82" Source="..\bin\release\aircraft\Rascal\Rascal-keyboard.xml" />
<File Id="_83" Source="..\bin\release\aircraft\Rascal\Rascal-submodels.xml" />
<File Id="_84" Source="..\bin\release\aircraft\Rascal\Rascal.xml" />
<File Id="_85" Source="..\bin\release\aircraft\Rascal\Rascal110-JSBSim-set.xml" />
<File Id="_86" Source="..\bin\release\aircraft\Rascal\Rascal110-JSBSim.xml" />
<File Id="_87" Source="..\bin\release\aircraft\Rascal\Rascal110-splash.rgb" />
<File Id="_88" Source="..\bin\release\aircraft\Rascal\README.Rascal" />
<File Id="_89" Source="..\bin\release\aircraft\Rascal\reset_CMAC.xml" />
<File Id="_90" Source="..\bin\release\aircraft\Rascal\thumbnail.jpg" />
<Directory Id="Rascal83" Name="Rascal">
<Component Id="_comp84" Guid="957d112f-a39e-4619-a8a1-e66281fe43b9">
<File Id="_85" Source="..\bin\release\aircraft\Rascal\Rascal-keyboard.xml" />
<File Id="_86" Source="..\bin\release\aircraft\Rascal\Rascal-submodels.xml" />
<File Id="_87" Source="..\bin\release\aircraft\Rascal\Rascal.xml" />
<File Id="_88" Source="..\bin\release\aircraft\Rascal\Rascal110-JSBSim-set.xml" />
<File Id="_89" Source="..\bin\release\aircraft\Rascal\Rascal110-JSBSim.xml" />
<File Id="_90" Source="..\bin\release\aircraft\Rascal\Rascal110-splash.rgb" />
<File Id="_91" Source="..\bin\release\aircraft\Rascal\README.Rascal" />
<File Id="_92" Source="..\bin\release\aircraft\Rascal\reset_CMAC.xml" />
<File Id="_93" Source="..\bin\release\aircraft\Rascal\thumbnail.jpg" />
</Component>
<Directory Id="Dialogs90" Name="Dialogs">
<Component Id="_comp91" Guid="e89bdaf0-fd13-447f-93a4-29ccdc33bf20">
<File Id="_92" Source="..\bin\release\aircraft\Rascal\Dialogs\config.xml" />
<File Id="_93" Source="..\bin\release\aircraft\Rascal\Dialogs\config.xml.new" />
<Directory Id="Dialogs93" Name="Dialogs">
<Component Id="_comp94" Guid="96a657ee-49de-494b-85d6-277b72a81d51">
<File Id="_95" Source="..\bin\release\aircraft\Rascal\Dialogs\config.xml" />
<File Id="_96" Source="..\bin\release\aircraft\Rascal\Dialogs\config.xml.new" />
</Component>
</Directory>
<Directory Id="Engines93" Name="Engines">
<Component Id="_comp94" Guid="97d5a6cb-c5ce-4821-b35e-4eed7f3ae541">
<File Id="_95" Source="..\bin\release\aircraft\Rascal\Engines\18x8.xml" />
<File Id="_96" Source="..\bin\release\aircraft\Rascal\Engines\18x8.xml.new" />
<File Id="_97" Source="..\bin\release\aircraft\Rascal\Engines\Zenoah_G-26A.xml" />
<File Id="_98" Source="..\bin\release\aircraft\Rascal\Engines\Zenoah_G-26A.xml.new" />
<Directory Id="Engines96" Name="Engines">
<Component Id="_comp97" Guid="f1772147-fde4-4591-a0a7-bd5fa600c67e">
<File Id="_98" Source="..\bin\release\aircraft\Rascal\Engines\18x8.xml" />
<File Id="_99" Source="..\bin\release\aircraft\Rascal\Engines\18x8.xml.new" />
<File Id="_100" Source="..\bin\release\aircraft\Rascal\Engines\Zenoah_G-26A.xml" />
<File Id="_101" Source="..\bin\release\aircraft\Rascal\Engines\Zenoah_G-26A.xml.new" />
</Component>
</Directory>
<Directory Id="Models98" Name="Models">
<Component Id="_comp99" Guid="28612f51-e4ed-44df-90be-6e0ae10c432d">
<File Id="_100" Source="..\bin\release\aircraft\Rascal\Models\Rascal.rgb" />
<File Id="_101" Source="..\bin\release\aircraft\Rascal\Models\Rascal.rgb.new" />
<File Id="_102" Source="..\bin\release\aircraft\Rascal\Models\Rascal110-000-013.ac" />
<File Id="_103" Source="..\bin\release\aircraft\Rascal\Models\Rascal110-000-013.ac.new" />
<File Id="_104" Source="..\bin\release\aircraft\Rascal\Models\Rascal110.xml" />
<File Id="_105" Source="..\bin\release\aircraft\Rascal\Models\Rascal110.xml.new" />
<File Id="_106" Source="..\bin\release\aircraft\Rascal\Models\smoke.png" />
<File Id="_107" Source="..\bin\release\aircraft\Rascal\Models\smoke.png.new" />
<File Id="_108" Source="..\bin\release\aircraft\Rascal\Models\smokeW.xml" />
<File Id="_109" Source="..\bin\release\aircraft\Rascal\Models\smokeW.xml.new" />
<File Id="_110" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.ac" />
<File Id="_111" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.ac.new" />
<File Id="_112" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.xml" />
<File Id="_113" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.xml.new" />
<Directory Id="Models101" Name="Models">
<Component Id="_comp102" Guid="b4f42a2c-ef80-4505-a614-1b6a2923feac">
<File Id="_103" Source="..\bin\release\aircraft\Rascal\Models\Rascal.rgb" />
<File Id="_104" Source="..\bin\release\aircraft\Rascal\Models\Rascal.rgb.new" />
<File Id="_105" Source="..\bin\release\aircraft\Rascal\Models\Rascal110-000-013.ac" />
<File Id="_106" Source="..\bin\release\aircraft\Rascal\Models\Rascal110-000-013.ac.new" />
<File Id="_107" Source="..\bin\release\aircraft\Rascal\Models\Rascal110.xml" />
<File Id="_108" Source="..\bin\release\aircraft\Rascal\Models\Rascal110.xml.new" />
<File Id="_109" Source="..\bin\release\aircraft\Rascal\Models\smoke.png" />
<File Id="_110" Source="..\bin\release\aircraft\Rascal\Models\smoke.png.new" />
<File Id="_111" Source="..\bin\release\aircraft\Rascal\Models\smokeW.xml" />
<File Id="_112" Source="..\bin\release\aircraft\Rascal\Models\smokeW.xml.new" />
<File Id="_113" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.ac" />
<File Id="_114" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.ac.new" />
<File Id="_115" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.xml" />
<File Id="_116" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.xml.new" />
</Component>
</Directory>
<Directory Id="Systems113" Name="Systems">
<Component Id="_comp114" Guid="492779e1-ac02-4e65-9ff4-5b70ec5f27f5">
<File Id="_115" Source="..\bin\release\aircraft\Rascal\Systems\110-autopilot.xml" />
<File Id="_116" Source="..\bin\release\aircraft\Rascal\Systems\110-autopilot.xml.new" />
<File Id="_117" Source="..\bin\release\aircraft\Rascal\Systems\airdata.nas" />
<File Id="_118" Source="..\bin\release\aircraft\Rascal\Systems\airdata.nas.new" />
<File Id="_119" Source="..\bin\release\aircraft\Rascal\Systems\electrical.xml" />
<File Id="_120" Source="..\bin\release\aircraft\Rascal\Systems\electrical.xml.new" />
<File Id="_121" Source="..\bin\release\aircraft\Rascal\Systems\main.nas" />
<File Id="_122" Source="..\bin\release\aircraft\Rascal\Systems\main.nas.new" />
<File Id="_123" Source="..\bin\release\aircraft\Rascal\Systems\ugear.nas" />
<Directory Id="Systems116" Name="Systems">
<Component Id="_comp117" Guid="59ed6ff3-352f-4846-b737-f5a37ae497ed">
<File Id="_118" Source="..\bin\release\aircraft\Rascal\Systems\110-autopilot.xml" />
<File Id="_119" Source="..\bin\release\aircraft\Rascal\Systems\110-autopilot.xml.new" />
<File Id="_120" Source="..\bin\release\aircraft\Rascal\Systems\airdata.nas" />
<File Id="_121" Source="..\bin\release\aircraft\Rascal\Systems\airdata.nas.new" />
<File Id="_122" Source="..\bin\release\aircraft\Rascal\Systems\electrical.xml" />
<File Id="_123" Source="..\bin\release\aircraft\Rascal\Systems\electrical.xml.new" />
<File Id="_124" Source="..\bin\release\aircraft\Rascal\Systems\main.nas" />
<File Id="_125" Source="..\bin\release\aircraft\Rascal\Systems\main.nas.new" />
<File Id="_126" Source="..\bin\release\aircraft\Rascal\Systems\ugear.nas" />
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="Driver123" Name="Driver">
<Component Id="_comp124" Guid="877cf72e-a33f-4606-a058-4d245ecb4dda">
<File Id="_125" Source="..\bin\release\Driver\Arduino MEGA 2560.inf" />
<File Id="_126" Source="..\bin\release\Driver\Arduino MEGA 2560.inf.new" />
<Directory Id="Driver126" Name="Driver">
<Component Id="_comp127" Guid="d9776466-be68-424f-b076-ef3fb4766362">
<File Id="_128" Source="..\bin\release\Driver\Arduino MEGA 2560.inf" />
<File Id="_129" Source="..\bin\release\Driver\Arduino MEGA 2560.inf.new" />
</Component>
</Directory>
<Directory Id="es_ES126" Name="es-ES">
<Component Id="_comp127" Guid="c2c961f8-e355-4c45-a3c0-374478237e52">
<File Id="_128" Source="..\bin\release\es-ES\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="es_ES129" Name="es-ES">
<Component Id="_comp130" Guid="1fb42ff8-9e61-49b3-a3c3-b3ecbfaf2d5f">
<File Id="_131" Source="..\bin\release\es-ES\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="fr128" Name="fr">
<Component Id="_comp129" Guid="965158a9-2fa2-4347-a19f-3f0a3559f9ac">
<File Id="_130" Source="..\bin\release\fr\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="fr131" Name="fr">
<Component Id="_comp132" Guid="aa277d0f-e449-4838-95a4-b8caba929e73">
<File Id="_133" Source="..\bin\release\fr\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="it_IT130" Name="it-IT">
<Component Id="_comp131" Guid="789eabcd-e833-4015-a7ea-ebc684256168">
<File Id="_132" Source="..\bin\release\it-IT\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="it_IT133" Name="it-IT">
<Component Id="_comp134" Guid="32fba21d-c610-4d07-8740-60a5956ed784">
<File Id="_135" Source="..\bin\release\it-IT\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="jsbsim132" Name="jsbsim">
<Component Id="_comp133" Guid="de7781b7-50cf-456e-964b-bbc104b784f8">
<File Id="_134" Source="..\bin\release\jsbsim\fgout.xml" />
<File Id="_135" Source="..\bin\release\jsbsim\rascal_test.xml" />
<Directory Id="jsbsim135" Name="jsbsim">
<Component Id="_comp136" Guid="d6eb33b4-51c0-4e8e-bcbd-b719ebade3f4">
<File Id="_137" Source="..\bin\release\jsbsim\fgout.xml" />
<File Id="_138" Source="..\bin\release\jsbsim\rascal_test.xml" />
</Component>
</Directory>
<Directory Id="m3u135" Name="m3u">
<Component Id="_comp136" Guid="fb23d848-2079-458e-bc11-b7f9c9ac8227">
<File Id="_137" Source="..\bin\release\m3u\both.m3u" />
<File Id="_138" Source="..\bin\release\m3u\hud.m3u" />
<File Id="_139" Source="..\bin\release\m3u\map.m3u" />
<File Id="_140" Source="..\bin\release\m3u\networklink.kml" />
<Directory Id="m3u138" Name="m3u">
<Component Id="_comp139" Guid="629b2aa0-faf6-4bba-81bc-a624c7b9b27b">
<File Id="_140" Source="..\bin\release\m3u\both.m3u" />
<File Id="_141" Source="..\bin\release\m3u\hud.m3u" />
<File Id="_142" Source="..\bin\release\m3u\map.m3u" />
<File Id="_143" Source="..\bin\release\m3u\networklink.kml" />
</Component>
</Directory>
<Directory Id="pl140" Name="pl">
<Component Id="_comp141" Guid="ed518a01-a47c-4632-afc1-bbf9e134228d">
<File Id="_142" Source="..\bin\release\pl\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="pl143" Name="pl">
<Component Id="_comp144" Guid="552d60e0-5755-49b4-bca3-73ff0a8f345a">
<File Id="_145" Source="..\bin\release\pl\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="Resources142" Name="Resources">
<Component Id="_comp143" Guid="d21a5a27-ddd7-4825-ae98-5792cc08710b">
<File Id="_144" Source="..\bin\release\Resources\MAVCmd.txt" />
<File Id="_145" Source="..\bin\release\Resources\MAVCmd.txt.new" />
<File Id="_146" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf" />
<File Id="_147" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf.new" />
<Directory Id="Resources145" Name="Resources">
<Component Id="_comp146" Guid="d0b46c4b-4222-441b-8c57-6dea9513559e">
<File Id="_147" Source="..\bin\release\Resources\MAVCmd.txt" />
<File Id="_148" Source="..\bin\release\Resources\MAVCmd.txt.new" />
<File Id="_149" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf" />
<File Id="_150" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf.new" />
</Component>
</Directory>
<Directory Id="ru_RU147" Name="ru-RU">
<Component Id="_comp148" Guid="4e5d3a70-4402-4105-9f33-327de86cce09">
<File Id="_149" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="ru_RU150" Name="ru-RU">
<Component Id="_comp151" Guid="964ca3d0-1802-4a4b-ba4b-2e6c1b1ab626">
<File Id="_152" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_Hans149" Name="zh-Hans">
<Component Id="_comp150" Guid="bccb1a8a-580a-421d-9e00-5db6aa4f12fe">
<File Id="_151" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="zh_Hans152" Name="zh-Hans">
<Component Id="_comp153" Guid="363b03dc-9b08-428c-80c9-711f08487df4">
<File Id="_154" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_TW151" Name="zh-TW">
<Component Id="_comp152" Guid="d7f3228d-4e9f-472c-8c74-0b0ccaed830a">
<File Id="_153" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="zh_TW154" Name="zh-TW">
<Component Id="_comp155" Guid="728fc93e-de0e-4229-94a7-672d48bfb8c2">
<File Id="_156" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
@ -287,27 +290,27 @@
<ComponentRef Id="InstallDirPermissions" />
<ComponentRef Id="_comp1" />
<ComponentRef Id="_comp53" />
<ComponentRef Id="_comp55" />
<ComponentRef Id="_comp64" />
<ComponentRef Id="_comp68" />
<ComponentRef Id="_comp56" />
<ComponentRef Id="_comp58" />
<ComponentRef Id="_comp67" />
<ComponentRef Id="_comp71" />
<ComponentRef Id="_comp81" />
<ComponentRef Id="_comp91" />
<ComponentRef Id="_comp74" />
<ComponentRef Id="_comp84" />
<ComponentRef Id="_comp94" />
<ComponentRef Id="_comp99" />
<ComponentRef Id="_comp114" />
<ComponentRef Id="_comp124" />
<ComponentRef Id="_comp97" />
<ComponentRef Id="_comp102" />
<ComponentRef Id="_comp117" />
<ComponentRef Id="_comp127" />
<ComponentRef Id="_comp129" />
<ComponentRef Id="_comp131" />
<ComponentRef Id="_comp133" />
<ComponentRef Id="_comp130" />
<ComponentRef Id="_comp132" />
<ComponentRef Id="_comp134" />
<ComponentRef Id="_comp136" />
<ComponentRef Id="_comp141" />
<ComponentRef Id="_comp143" />
<ComponentRef Id="_comp148" />
<ComponentRef Id="_comp150" />
<ComponentRef Id="_comp152" />
<ComponentRef Id="_comp139" />
<ComponentRef Id="_comp144" />
<ComponentRef Id="_comp146" />
<ComponentRef Id="_comp151" />
<ComponentRef Id="_comp153" />
<ComponentRef Id="_comp155" />
<ComponentRef Id="ApplicationShortcut" />
@ -328,7 +331,7 @@
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch APM Planner" />
<!-- Step 3: Include the custom action -->
<Property Id="WixShellExecTarget" Value="[#_7]" />
<Property Id="WixShellExecTarget" Value="[#_10]" />
<CustomAction Id="LaunchApplication"
BinaryKey="WixCA"
DllEntry="WixShellExec"

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.64")]
[assembly: AssemblyFileVersion("1.1.65")]
[assembly: NeutralResourcesLanguageAttribute("")]

View File

@ -0,0 +1,205 @@
<?xml version="1.0" encoding="utf-8" ?>
<AC>
<Item>
<HEAD>Stabilization:</HEAD>
<SUBHEAD>Angular Rate Control:</SUBHEAD>
<DESC>How much throttle is applied to rotate the copter at the desired speed.
Adjust P by motor size
Small: P = 0.145
Med: P = 0.110
Large: P = 0.090</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>RATE_RLL_P</PARAMNAME>
<PARAMNAME>RATE_PIT_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>RATE_RLL_I</PARAMNAME>
<PARAMNAME>RATE_PIT_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>D</NAME>
<PARAMNAME>RATE_RLL_D</PARAMNAME>
<PARAMNAME>RATE_PIT_D</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>RATE_RLL_IMAX</PARAMNAME>
<PARAMNAME>RATE_PIT_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>40</RANGEMAX>
<STEP>0.1</STEP>
</FIELD>
</FIELDS>
<SUBHEAD>Dampening:</SUBHEAD>
<DESC>Resistance to angular acceleration
A dynamic gain is applied so that the dampening only occurs at 100% when the control sticks are centered.
When the sticks are fully deflected:
1.0 = 0%
0.5 = 50%
0.0 = 100%</DESC>
<FIELDS>
<FIELD>
<NAME>Dampen</NAME>
<PARAMNAME>STAB_D</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>Dynamic</NAME>
<PARAMNAME>STAB_D_S</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>1</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
</FIELDS>
<SUBHEAD>Stabilize Control:</SUBHEAD>
<DESC>
How fast the copter reacts to user or autopilot input.
Higher = more aggressive control.
Too high = slow wobbles
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>STB_RLL_P</PARAMNAME>
<PARAMNAME>STB_PIT_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>STB_RLL_I</PARAMNAME>
<PARAMNAME>STB_PIT_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>STB_RLL_IMAX</PARAMNAME>
<PARAMNAME>STB_PIT_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
</FIELDS>
</Item>
<!-- Loiter -->
<Item>
<HEAD>Loiter:</HEAD>
<SUBHEAD>Angular Rate Control:</SUBHEAD>
<DESC>
How much angle is applied to make the copter accelerate to the desired speed.
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>LOITER_LAT_P</PARAMNAME>
<PARAMNAME>LOITER_LON_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>LOITER_LAT_I</PARAMNAME>
<PARAMNAME>LOITER_LON_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>D</NAME>
<PARAMNAME>LOITER_LAT_D</PARAMNAME>
<PARAMNAME>LOITER_LON_D</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>LOITER_LAT_IMAX</PARAMNAME>
<PARAMNAME>LOITER_LON_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>0.1</STEP>
</FIELD>
</FIELDS>
<SUBHEAD>Loiter Speed:</SUBHEAD>
<DESC>
How fast the copter should move towards the target. A larger value means a faster return to center, but can cause the copter to oscillate around the target.
A distance error of 100cm * P of .25 = 25 cm/s
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>HLD_LAT_P</PARAMNAME>
<PARAMNAME>HLD_LON_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
</FIELDS>
</Item>
<!-- WP Nav -->
<Item>
<HEAD>WP Navigation:</HEAD>
<SUBHEAD>Nav Rate Control:</SUBHEAD>
<DESC>
How much angle is applied to make the copter accelerate to the desired speed.
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>NAV_LAT_P</PARAMNAME>
<PARAMNAME>NAV_LON_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>NAV_LAT_I</PARAMNAME>
<PARAMNAME>NAV_LON_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>D</NAME>
<PARAMNAME>NAV_LAT_D</PARAMNAME>
<PARAMNAME>NAV_LON_D</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>NAV_LAT_IMAX</PARAMNAME>
<PARAMNAME>NAV_LON_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>0.1</STEP>
</FIELD>
</FIELDS>
</Item>
</AC>

View File

@ -293,6 +293,14 @@
<F5>Output</F5>
<F6>Gain</F6>
</PID-122>
<PID-104>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-104>
</AC2>
<!-- -->
<APM>

View File

@ -1 +1 @@
1.1.4485.13801
1.1.4485.38920

View File

@ -293,6 +293,14 @@
<F5>Output</F5>
<F6>Gain</F6>
</PID-122>
<PID-104>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-104>
</AC2>
<!-- -->
<APM>