missed files
+ cleanup old binarys
This commit is contained in:
Michael Oborne 2012-07-16 21:43:49 +08:00
parent f48e86747f
commit 2ccb6a281e
75 changed files with 1403 additions and 69059 deletions

View File

@ -0,0 +1,45 @@
namespace ArdupilotMega.Controls
{
partial class MainSwitcher
{
/// <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();
//
// MainSwitcher
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Name = "MainSwitcher";
this.Size = new System.Drawing.Size(778, 405);
this.ResumeLayout(false);
}
#endregion
}
}

View File

@ -0,0 +1,93 @@
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;
using ArdupilotMega.Utilities;
namespace ArdupilotMega.Controls
{
public partial class MainSwitcher : UserControl
{
List<Screen> screens = new List<Screen>();
Screen current;
public MainSwitcher()
{
InitializeComponent();
}
public void AddScreen(Screen Screen)
{
// add to list
screens.Add(Screen);
// hide it
Screen.Control.Visible = false;
}
public void ShowScreen(string name)
{
if (current != null)
{
// hide current screen
current.Visible = false;
// remove reference
this.Controls.Remove(current.Control);
// check if we need to remove the current control
if (!current.Persistent)
{
// cleanup
current.Control.Close();
current.Control.Dispose();
current.Control = (MyUserControl)Activator.CreateInstance(current.Control.GetType());
}
}
// find next screen
Screen nextscreen = screens.Single(s => s.Name == name);
nextscreen.Control.Location = new Point(0, 0);
nextscreen.Control.Dock = DockStyle.Fill;
nextscreen.Control.Size = this.Size;
nextscreen.Visible = true;
this.Controls.Add(nextscreen.Control);
ThemeManager.ApplyThemeTo(nextscreen.Control);
current = nextscreen;
}
protected override void OnPaintBackground(PaintEventArgs e)
{
base.OnPaintBackground(e);
}
public class Screen
{
public string Name;
public MyUserControl Control;
public bool Visible { get { return Control.Visible; } set { Control.Visible = value; } }
public bool Persistent;
public Screen(string Name, MyUserControl Control, bool Persistent = false)
{
this.Name = Name;
this.Control = Control;
this.Persistent = Persistent;
}
}
}
}

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

@ -0,0 +1,309 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigAP_Limits
{
/// <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()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigAP_Limits));
this.LNK_wiki = new System.Windows.Forms.LinkLabel();
this.LIM_ENABLED = new System.Windows.Forms.CheckBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.LIM_GPSLCK_REQ = new System.Windows.Forms.CheckBox();
this.LIM_FNC_REQ = new System.Windows.Forms.CheckBox();
this.LIM_ALT_REQ = new System.Windows.Forms.CheckBox();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.LIM_REQUIRED = new System.Windows.Forms.CheckBox();
this.myLabel4 = new ArdupilotMega.Controls.MyLabel();
this.LIM_CHANNEL = new System.Windows.Forms.NumericUpDown();
this.myLabel3 = new ArdupilotMega.Controls.MyLabel();
this.LIM_FNC_RAD = new System.Windows.Forms.NumericUpDown();
this.LIM_FNC_SMPL = new System.Windows.Forms.CheckBox();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.LIM_GPSLCK_ON = new System.Windows.Forms.CheckBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.LIM_ALT_ON = new System.Windows.Forms.CheckBox();
this.myLabel1 = new ArdupilotMega.Controls.MyLabel();
this.LIM_ALT_MAX = new System.Windows.Forms.NumericUpDown();
this.myLabel2 = new ArdupilotMega.Controls.MyLabel();
this.LIM_ALT_MIN = new System.Windows.Forms.NumericUpDown();
this.groupBox1.SuspendLayout();
this.groupBox5.SuspendLayout();
this.groupBox4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.LIM_CHANNEL)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.LIM_FNC_RAD)).BeginInit();
this.groupBox3.SuspendLayout();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.LIM_ALT_MAX)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.LIM_ALT_MIN)).BeginInit();
this.SuspendLayout();
//
// LNK_wiki
//
resources.ApplyResources(this.LNK_wiki, "LNK_wiki");
this.LNK_wiki.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.LNK_wiki.LinkColor = System.Drawing.Color.CornflowerBlue;
this.LNK_wiki.Name = "LNK_wiki";
this.LNK_wiki.TabStop = true;
this.LNK_wiki.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LNK_wiki_LinkClicked);
//
// LIM_ENABLED
//
resources.ApplyResources(this.LIM_ENABLED, "LIM_ENABLED");
this.LIM_ENABLED.Name = "LIM_ENABLED";
this.LIM_ENABLED.UseVisualStyleBackColor = true;
this.LIM_ENABLED.CheckedChanged += new System.EventHandler(this.LIM_ENABLED_CheckedChanged);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.textBox1);
this.groupBox1.Controls.Add(this.groupBox5);
this.groupBox1.Controls.Add(this.groupBox4);
this.groupBox1.Controls.Add(this.groupBox3);
this.groupBox1.Controls.Add(this.groupBox2);
resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false;
//
// textBox1
//
resources.ApplyResources(this.textBox1, "textBox1");
this.textBox1.Name = "textBox1";
//
// groupBox5
//
this.groupBox5.Controls.Add(this.LIM_GPSLCK_REQ);
this.groupBox5.Controls.Add(this.LIM_FNC_REQ);
this.groupBox5.Controls.Add(this.LIM_ALT_REQ);
resources.ApplyResources(this.groupBox5, "groupBox5");
this.groupBox5.Name = "groupBox5";
this.groupBox5.TabStop = false;
//
// LIM_GPSLCK_REQ
//
resources.ApplyResources(this.LIM_GPSLCK_REQ, "LIM_GPSLCK_REQ");
this.LIM_GPSLCK_REQ.Name = "LIM_GPSLCK_REQ";
this.LIM_GPSLCK_REQ.UseVisualStyleBackColor = true;
this.LIM_GPSLCK_REQ.CheckedChanged += new System.EventHandler(this.ProcessChange);
//
// LIM_FNC_REQ
//
resources.ApplyResources(this.LIM_FNC_REQ, "LIM_FNC_REQ");
this.LIM_FNC_REQ.Name = "LIM_FNC_REQ";
this.LIM_FNC_REQ.UseVisualStyleBackColor = true;
this.LIM_FNC_REQ.CheckedChanged += new System.EventHandler(this.ProcessChange);
//
// LIM_ALT_REQ
//
resources.ApplyResources(this.LIM_ALT_REQ, "LIM_ALT_REQ");
this.LIM_ALT_REQ.Name = "LIM_ALT_REQ";
this.LIM_ALT_REQ.UseVisualStyleBackColor = true;
this.LIM_ALT_REQ.CheckedChanged += new System.EventHandler(this.ProcessChange);
//
// groupBox4
//
this.groupBox4.Controls.Add(this.LIM_REQUIRED);
this.groupBox4.Controls.Add(this.myLabel4);
this.groupBox4.Controls.Add(this.LIM_CHANNEL);
this.groupBox4.Controls.Add(this.myLabel3);
this.groupBox4.Controls.Add(this.LIM_FNC_RAD);
this.groupBox4.Controls.Add(this.LIM_FNC_SMPL);
resources.ApplyResources(this.groupBox4, "groupBox4");
this.groupBox4.Name = "groupBox4";
this.groupBox4.TabStop = false;
//
// LIM_REQUIRED
//
resources.ApplyResources(this.LIM_REQUIRED, "LIM_REQUIRED");
this.LIM_REQUIRED.Name = "LIM_REQUIRED";
this.LIM_REQUIRED.UseVisualStyleBackColor = true;
this.LIM_REQUIRED.CheckedChanged += new System.EventHandler(this.LIM_REQUIRED_CheckedChanged);
//
// myLabel4
//
resources.ApplyResources(this.myLabel4, "myLabel4");
this.myLabel4.Name = "myLabel4";
this.myLabel4.resize = false;
//
// LIM_CHANNEL
//
resources.ApplyResources(this.LIM_CHANNEL, "LIM_CHANNEL");
this.LIM_CHANNEL.Maximum = new decimal(new int[] {
8,
0,
0,
0});
this.LIM_CHANNEL.Name = "LIM_CHANNEL";
this.LIM_CHANNEL.Value = new decimal(new int[] {
7,
0,
0,
0});
this.LIM_CHANNEL.ValueChanged += new System.EventHandler(this.ProcessChange);
//
// myLabel3
//
resources.ApplyResources(this.myLabel3, "myLabel3");
this.myLabel3.Name = "myLabel3";
this.myLabel3.resize = false;
//
// LIM_FNC_RAD
//
resources.ApplyResources(this.LIM_FNC_RAD, "LIM_FNC_RAD");
this.LIM_FNC_RAD.Name = "LIM_FNC_RAD";
this.LIM_FNC_RAD.Value = new decimal(new int[] {
30,
0,
0,
0});
this.LIM_FNC_RAD.ValueChanged += new System.EventHandler(this.ProcessChange);
//
// LIM_FNC_SMPL
//
resources.ApplyResources(this.LIM_FNC_SMPL, "LIM_FNC_SMPL");
this.LIM_FNC_SMPL.Name = "LIM_FNC_SMPL";
this.LIM_FNC_SMPL.UseVisualStyleBackColor = true;
this.LIM_FNC_SMPL.CheckedChanged += new System.EventHandler(this.ProcessChange);
//
// groupBox3
//
this.groupBox3.Controls.Add(this.LIM_GPSLCK_ON);
resources.ApplyResources(this.groupBox3, "groupBox3");
this.groupBox3.Name = "groupBox3";
this.groupBox3.TabStop = false;
//
// LIM_GPSLCK_ON
//
resources.ApplyResources(this.LIM_GPSLCK_ON, "LIM_GPSLCK_ON");
this.LIM_GPSLCK_ON.Name = "LIM_GPSLCK_ON";
this.LIM_GPSLCK_ON.UseVisualStyleBackColor = true;
this.LIM_GPSLCK_ON.CheckedChanged += new System.EventHandler(this.ProcessChange);
//
// groupBox2
//
this.groupBox2.Controls.Add(this.LIM_ALT_ON);
this.groupBox2.Controls.Add(this.myLabel1);
this.groupBox2.Controls.Add(this.LIM_ALT_MAX);
this.groupBox2.Controls.Add(this.myLabel2);
this.groupBox2.Controls.Add(this.LIM_ALT_MIN);
resources.ApplyResources(this.groupBox2, "groupBox2");
this.groupBox2.Name = "groupBox2";
this.groupBox2.TabStop = false;
//
// LIM_ALT_ON
//
resources.ApplyResources(this.LIM_ALT_ON, "LIM_ALT_ON");
this.LIM_ALT_ON.Name = "LIM_ALT_ON";
this.LIM_ALT_ON.UseVisualStyleBackColor = true;
this.LIM_ALT_ON.CheckedChanged += new System.EventHandler(this.ProcessChange);
//
// myLabel1
//
resources.ApplyResources(this.myLabel1, "myLabel1");
this.myLabel1.Name = "myLabel1";
this.myLabel1.resize = false;
//
// LIM_ALT_MAX
//
resources.ApplyResources(this.LIM_ALT_MAX, "LIM_ALT_MAX");
this.LIM_ALT_MAX.Name = "LIM_ALT_MAX";
this.LIM_ALT_MAX.Value = new decimal(new int[] {
30,
0,
0,
0});
this.LIM_ALT_MAX.ValueChanged += new System.EventHandler(this.ProcessChange);
//
// myLabel2
//
resources.ApplyResources(this.myLabel2, "myLabel2");
this.myLabel2.Name = "myLabel2";
this.myLabel2.resize = false;
//
// LIM_ALT_MIN
//
resources.ApplyResources(this.LIM_ALT_MIN, "LIM_ALT_MIN");
this.LIM_ALT_MIN.Name = "LIM_ALT_MIN";
this.LIM_ALT_MIN.ValueChanged += new System.EventHandler(this.ProcessChange);
//
// ConfigAP_Limits
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.LIM_ENABLED);
this.Controls.Add(this.LNK_wiki);
this.Name = "ConfigAP_Limits";
this.Load += new System.EventHandler(this.ConfigAP_Limits_Load);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox5.ResumeLayout(false);
this.groupBox5.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.LIM_CHANNEL)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.LIM_FNC_RAD)).EndInit();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.LIM_ALT_MAX)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.LIM_ALT_MIN)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.LinkLabel LNK_wiki;
private System.Windows.Forms.CheckBox LIM_ENABLED;
private System.Windows.Forms.GroupBox groupBox1;
private Controls.MyLabel myLabel2;
private Controls.MyLabel myLabel1;
private System.Windows.Forms.NumericUpDown LIM_ALT_MAX;
private System.Windows.Forms.NumericUpDown LIM_ALT_MIN;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.CheckBox LIM_ALT_ON;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.CheckBox LIM_GPSLCK_ON;
private System.Windows.Forms.GroupBox groupBox4;
private Controls.MyLabel myLabel3;
private System.Windows.Forms.NumericUpDown LIM_FNC_RAD;
private System.Windows.Forms.CheckBox LIM_FNC_SMPL;
private Controls.MyLabel myLabel4;
private System.Windows.Forms.NumericUpDown LIM_CHANNEL;
private System.Windows.Forms.CheckBox LIM_REQUIRED;
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.CheckBox LIM_FNC_REQ;
private System.Windows.Forms.CheckBox LIM_ALT_REQ;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.CheckBox LIM_GPSLCK_REQ;
}
}

View File

@ -0,0 +1,106 @@
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;
using ArdupilotMega.Controls.BackstageView;
using System.Collections;
using ArdupilotMega.Controls;
using System.Diagnostics;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigAP_Limits : BackStageViewContentPanel
{
public ConfigAP_Limits()
{
InitializeComponent();
}
private void LNK_wiki_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start(new ProcessStartInfo("https://code.google.com/p/ardupilot-mega/wiki/APLimitsLibrary"));
}
private void ProcessChange(object sender, EventArgs e)
{
if (sender.GetType() == typeof(CheckBox))
{
CheckBox chk = ((CheckBox)sender);
MainV2.comPort.setParam(chk.Name, chk.Checked ? 1 : 0);
}
else if (sender.GetType() == typeof(NumericUpDown))
{
NumericUpDown nud = ((NumericUpDown)sender);
MainV2.comPort.setParam(nud.Name, (float)nud.Value);
}
}
private void LIM_ENABLED_CheckedChanged(object sender, EventArgs e)
{
if (!MainV2.comPort.param.ContainsKey("LIM_ENABLED"))
{
CustomMessageBox.Show("This feature is not enabled in your firmware.");
return;
}
if (LIM_ENABLED.Checked)
{
groupBox1.Enabled = true;
}
else
{
groupBox1.Enabled = false;
}
ProcessChange(sender, e);
}
private void LIM_REQUIRED_CheckedChanged(object sender, EventArgs e)
{
if (LIM_REQUIRED.Checked)
{
groupBox5.Enabled = true;
}
else
{
groupBox5.Enabled = false;
}
ProcessChange(sender, e);
}
private void ConfigAP_Limits_Load(object sender, EventArgs e)
{
PopulateData();
}
void PopulateData()
{
Hashtable copy = new Hashtable(MainV2.comPort.param);
foreach (string key in copy.Keys)
{
Control[] ctls = this.Controls.Find(key, true);
if (ctls.Length > 0)
{
if (ctls[0].GetType() == typeof(CheckBox))
{
CheckBox chk = ((CheckBox)ctls[0]);
Console.WriteLine(chk.Name + " "+ copy[key]);
chk.Checked = (float)copy[key] == 1 ? true: false;
}
else if (ctls[0].GetType() == typeof(NumericUpDown))
{
NumericUpDown nud = ((NumericUpDown)ctls[0]);
nud.Value = (decimal)(float)copy[key];
}
}
}
}
}
}

View File

@ -0,0 +1,730 @@
<?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>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LNK_wiki.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LNK_wiki.Location" type="System.Drawing.Point, System.Drawing">
<value>590, 0</value>
</data>
<data name="LNK_wiki.Size" type="System.Drawing.Size, System.Drawing">
<value>28, 13</value>
</data>
<data name="LNK_wiki.TabIndex" type="System.Int32, mscorlib">
<value>78</value>
</data>
<data name="LNK_wiki.Text" xml:space="preserve">
<value>Wiki</value>
</data>
<data name="&gt;&gt;LNK_wiki.Name" xml:space="preserve">
<value>LNK_wiki</value>
</data>
<data name="&gt;&gt;LNK_wiki.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LNK_wiki.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;LNK_wiki.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="LIM_ENABLED.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LIM_ENABLED.Location" type="System.Drawing.Point, System.Drawing">
<value>247, 9</value>
</data>
<data name="LIM_ENABLED.Size" type="System.Drawing.Size, System.Drawing">
<value>112, 17</value>
</data>
<data name="LIM_ENABLED.TabIndex" type="System.Int32, mscorlib">
<value>79</value>
</data>
<data name="LIM_ENABLED.Text" xml:space="preserve">
<value>Enable GeoFence</value>
</data>
<data name="&gt;&gt;LIM_ENABLED.Name" xml:space="preserve">
<value>LIM_ENABLED</value>
</data>
<data name="&gt;&gt;LIM_ENABLED.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_ENABLED.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;LIM_ENABLED.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>388, 59</value>
</data>
<data name="textBox1.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 59</value>
</data>
<data name="textBox1.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="textBox1.Text" xml:space="preserve">
<value>Enable a simple Fixed Radius from home GeoFence, with the ability to specify Heights and fence arming options
</value>
</data>
<data name="&gt;&gt;textBox1.Name" xml:space="preserve">
<value>textBox1</value>
</data>
<data name="&gt;&gt;textBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textBox1.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;textBox1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="LIM_GPSLCK_REQ.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LIM_GPSLCK_REQ.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LIM_GPSLCK_REQ.Location" type="System.Drawing.Point, System.Drawing">
<value>29, 65</value>
</data>
<data name="LIM_GPSLCK_REQ.Size" type="System.Drawing.Size, System.Drawing">
<value>121, 17</value>
</data>
<data name="LIM_GPSLCK_REQ.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="LIM_GPSLCK_REQ.Text" xml:space="preserve">
<value>GPS Lock Required</value>
</data>
<data name="&gt;&gt;LIM_GPSLCK_REQ.Name" xml:space="preserve">
<value>LIM_GPSLCK_REQ</value>
</data>
<data name="&gt;&gt;LIM_GPSLCK_REQ.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_GPSLCK_REQ.Parent" xml:space="preserve">
<value>groupBox5</value>
</data>
<data name="&gt;&gt;LIM_GPSLCK_REQ.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="LIM_FNC_REQ.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LIM_FNC_REQ.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LIM_FNC_REQ.Location" type="System.Drawing.Point, System.Drawing">
<value>29, 42</value>
</data>
<data name="LIM_FNC_REQ.Size" type="System.Drawing.Size, System.Drawing">
<value>127, 17</value>
</data>
<data name="LIM_FNC_REQ.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="LIM_FNC_REQ.Text" xml:space="preserve">
<value>Require Inside Fence</value>
</data>
<data name="&gt;&gt;LIM_FNC_REQ.Name" xml:space="preserve">
<value>LIM_FNC_REQ</value>
</data>
<data name="&gt;&gt;LIM_FNC_REQ.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_FNC_REQ.Parent" xml:space="preserve">
<value>groupBox5</value>
</data>
<data name="&gt;&gt;LIM_FNC_REQ.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="LIM_ALT_REQ.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LIM_ALT_REQ.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LIM_ALT_REQ.Location" type="System.Drawing.Point, System.Drawing">
<value>29, 19</value>
</data>
<data name="LIM_ALT_REQ.Size" type="System.Drawing.Size, System.Drawing">
<value>111, 17</value>
</data>
<data name="LIM_ALT_REQ.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="LIM_ALT_REQ.Text" xml:space="preserve">
<value>Require Within Alt</value>
</data>
<data name="&gt;&gt;LIM_ALT_REQ.Name" xml:space="preserve">
<value>LIM_ALT_REQ</value>
</data>
<data name="&gt;&gt;LIM_ALT_REQ.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_ALT_REQ.Parent" xml:space="preserve">
<value>groupBox5</value>
</data>
<data name="&gt;&gt;LIM_ALT_REQ.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="groupBox5.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="groupBox5.Location" type="System.Drawing.Point, System.Drawing">
<value>204, 260</value>
</data>
<data name="groupBox5.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 88</value>
</data>
<data name="groupBox5.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="groupBox5.Text" xml:space="preserve">
<value>Required Limits - Before Arming</value>
</data>
<data name="&gt;&gt;groupBox5.Name" xml:space="preserve">
<value>groupBox5</value>
</data>
<data name="&gt;&gt;groupBox5.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBox5.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;groupBox5.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="LIM_REQUIRED.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LIM_REQUIRED.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LIM_REQUIRED.Location" type="System.Drawing.Point, System.Drawing">
<value>22, 42</value>
</data>
<data name="LIM_REQUIRED.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 17</value>
</data>
<data name="LIM_REQUIRED.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="LIM_REQUIRED.Text" xml:space="preserve">
<value>Enable Required Limits</value>
</data>
<data name="&gt;&gt;LIM_REQUIRED.Name" xml:space="preserve">
<value>LIM_REQUIRED</value>
</data>
<data name="&gt;&gt;LIM_REQUIRED.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_REQUIRED.Parent" xml:space="preserve">
<value>groupBox4</value>
</data>
<data name="&gt;&gt;LIM_REQUIRED.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="myLabel4.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 95</value>
</data>
<data name="myLabel4.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
</data>
<data name="myLabel4.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="myLabel4.Text" xml:space="preserve">
<value>RC Channel</value>
</data>
<data name="&gt;&gt;myLabel4.Name" xml:space="preserve">
<value>myLabel4</value>
</data>
<data name="&gt;&gt;myLabel4.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;myLabel4.Parent" xml:space="preserve">
<value>groupBox4</value>
</data>
<data name="&gt;&gt;myLabel4.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="LIM_CHANNEL.Location" type="System.Drawing.Point, System.Drawing">
<value>73, 96</value>
</data>
<data name="LIM_CHANNEL.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 20</value>
</data>
<data name="LIM_CHANNEL.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="&gt;&gt;LIM_CHANNEL.Name" xml:space="preserve">
<value>LIM_CHANNEL</value>
</data>
<data name="&gt;&gt;LIM_CHANNEL.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_CHANNEL.Parent" xml:space="preserve">
<value>groupBox4</value>
</data>
<data name="&gt;&gt;LIM_CHANNEL.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="myLabel3.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 69</value>
</data>
<data name="myLabel3.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
</data>
<data name="myLabel3.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="myLabel3.Text" xml:space="preserve">
<value>Radius</value>
</data>
<data name="&gt;&gt;myLabel3.Name" xml:space="preserve">
<value>myLabel3</value>
</data>
<data name="&gt;&gt;myLabel3.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;myLabel3.Parent" xml:space="preserve">
<value>groupBox4</value>
</data>
<data name="&gt;&gt;myLabel3.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="LIM_FNC_RAD.Location" type="System.Drawing.Point, System.Drawing">
<value>73, 70</value>
</data>
<data name="LIM_FNC_RAD.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 20</value>
</data>
<data name="LIM_FNC_RAD.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;LIM_FNC_RAD.Name" xml:space="preserve">
<value>LIM_FNC_RAD</value>
</data>
<data name="&gt;&gt;LIM_FNC_RAD.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_FNC_RAD.Parent" xml:space="preserve">
<value>groupBox4</value>
</data>
<data name="&gt;&gt;LIM_FNC_RAD.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="LIM_FNC_SMPL.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LIM_FNC_SMPL.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LIM_FNC_SMPL.Location" type="System.Drawing.Point, System.Drawing">
<value>63, 19</value>
</data>
<data name="LIM_FNC_SMPL.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 17</value>
</data>
<data name="LIM_FNC_SMPL.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="LIM_FNC_SMPL.Text" xml:space="preserve">
<value>On</value>
</data>
<data name="&gt;&gt;LIM_FNC_SMPL.Name" xml:space="preserve">
<value>LIM_FNC_SMPL</value>
</data>
<data name="&gt;&gt;LIM_FNC_SMPL.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_FNC_SMPL.Parent" xml:space="preserve">
<value>groupBox4</value>
</data>
<data name="&gt;&gt;LIM_FNC_SMPL.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="groupBox4.Location" type="System.Drawing.Point, System.Drawing">
<value>215, 19</value>
</data>
<data name="groupBox4.Size" type="System.Drawing.Size, System.Drawing">
<value>167, 129</value>
</data>
<data name="groupBox4.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="groupBox4.Text" xml:space="preserve">
<value>Simple Fence</value>
</data>
<data name="&gt;&gt;groupBox4.Name" xml:space="preserve">
<value>groupBox4</value>
</data>
<data name="&gt;&gt;groupBox4.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBox4.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;groupBox4.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="LIM_GPSLCK_ON.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LIM_GPSLCK_ON.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LIM_GPSLCK_ON.Location" type="System.Drawing.Point, System.Drawing">
<value>62, 19</value>
</data>
<data name="LIM_GPSLCK_ON.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 17</value>
</data>
<data name="LIM_GPSLCK_ON.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="LIM_GPSLCK_ON.Text" xml:space="preserve">
<value>On</value>
</data>
<data name="&gt;&gt;LIM_GPSLCK_ON.Name" xml:space="preserve">
<value>LIM_GPSLCK_ON</value>
</data>
<data name="&gt;&gt;LIM_GPSLCK_ON.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_GPSLCK_ON.Parent" xml:space="preserve">
<value>groupBox3</value>
</data>
<data name="&gt;&gt;LIM_GPSLCK_ON.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="groupBox3.Location" type="System.Drawing.Point, System.Drawing">
<value>300, 154</value>
</data>
<data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
<value>167, 104</value>
</data>
<data name="groupBox3.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="groupBox3.Text" xml:space="preserve">
<value>GPS Lock Limits</value>
</data>
<data name="&gt;&gt;groupBox3.Name" xml:space="preserve">
<value>groupBox3</value>
</data>
<data name="&gt;&gt;groupBox3.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBox3.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;groupBox3.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="LIM_ALT_ON.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LIM_ALT_ON.Location" type="System.Drawing.Point, System.Drawing">
<value>69, 19</value>
</data>
<data name="LIM_ALT_ON.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 17</value>
</data>
<data name="LIM_ALT_ON.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="LIM_ALT_ON.Text" xml:space="preserve">
<value>On</value>
</data>
<data name="&gt;&gt;LIM_ALT_ON.Name" xml:space="preserve">
<value>LIM_ALT_ON</value>
</data>
<data name="&gt;&gt;LIM_ALT_ON.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_ALT_ON.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;LIM_ALT_ON.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="myLabel1.Location" type="System.Drawing.Point, System.Drawing">
<value>5, 43</value>
</data>
<data name="myLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
</data>
<data name="myLabel1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="myLabel1.Text" xml:space="preserve">
<value>Min Alt</value>
</data>
<data name="&gt;&gt;myLabel1.Name" xml:space="preserve">
<value>myLabel1</value>
</data>
<data name="&gt;&gt;myLabel1.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;myLabel1.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;myLabel1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="LIM_ALT_MAX.Location" type="System.Drawing.Point, System.Drawing">
<value>72, 69</value>
</data>
<data name="LIM_ALT_MAX.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 20</value>
</data>
<data name="LIM_ALT_MAX.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;LIM_ALT_MAX.Name" xml:space="preserve">
<value>LIM_ALT_MAX</value>
</data>
<data name="&gt;&gt;LIM_ALT_MAX.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_ALT_MAX.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;LIM_ALT_MAX.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="myLabel2.Location" type="System.Drawing.Point, System.Drawing">
<value>5, 69</value>
</data>
<data name="myLabel2.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
</data>
<data name="myLabel2.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="myLabel2.Text" xml:space="preserve">
<value>Max Alt</value>
</data>
<data name="&gt;&gt;myLabel2.Name" xml:space="preserve">
<value>myLabel2</value>
</data>
<data name="&gt;&gt;myLabel2.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;myLabel2.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;myLabel2.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="LIM_ALT_MIN.Location" type="System.Drawing.Point, System.Drawing">
<value>72, 44</value>
</data>
<data name="LIM_ALT_MIN.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 20</value>
</data>
<data name="LIM_ALT_MIN.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="&gt;&gt;LIM_ALT_MIN.Name" xml:space="preserve">
<value>LIM_ALT_MIN</value>
</data>
<data name="&gt;&gt;LIM_ALT_MIN.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LIM_ALT_MIN.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;LIM_ALT_MIN.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>127, 154</value>
</data>
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>167, 104</value>
</data>
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="groupBox2.Text" xml:space="preserve">
<value>Alt Limits</value>
</data>
<data name="&gt;&gt;groupBox2.Name" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;groupBox2.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBox2.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="groupBox1.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 32</value>
</data>
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>614, 354</value>
</data>
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
<value>80</value>
</data>
<data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;groupBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBox1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>621, 389</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>ConfigAP_Limits</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
</data>
</root>

View File

@ -1,29 +0,0 @@
handle SIGXCPU SIG33 SIG35 SIGPWR nostop noprint
define mono_backtrace
select-frame 0
set $i = 0
while ($i < $arg0)
set $foo = (char*) mono_pmip ($pc)
if ($foo)
printf "#%d %p in %s\n", $i, $pc, $foo
else
frame
end
up-silently
set $i = $i + 1
end
end
define mono_stack
set $mono_thread = mono_thread_current ()
if ($mono_thread == 0x00)
printf "No mono thread associated with this thread\n"
else
set $ucp = malloc (sizeof (ucontext_t))
call (void) getcontext ($ucp)
call (void) mono_print_thread_dump ($ucp)
call (void) free ($ucp)
end
end

View File

@ -1,4 +0,0 @@
*.pdb
*.etag
*.new
*.log

View File

@ -1,351 +0,0 @@
<?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</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>Dynamic</NAME>
<PARAMNAME>STAB_D_S</PARAMNAME>
<RANGEMIN>0</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>
<SUBHEAD>Yaw Angular Rate Control:</SUBHEAD>
<DESC>How much throttle is applied to rotate the copter at the desired speed.
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>RATE_YAW_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>RATE_YAW_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>D</NAME>
<PARAMNAME>RATE_YAW_D</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>RATE_YAW_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>1</STEP>
</FIELD>
</FIELDS>
<SUBHEAD>Yaw 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_YAW_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>10</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>STB_YAW_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>STB_YAW_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>1</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>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>
<SUBHEAD>WP 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.
in m/s
</DESC>
<FIELDS>
<FIELD>
<NAME>Speed</NAME>
<PARAMNAME>WP_SPEED_MAX</PARAMNAME>
<RANGEMIN>1</RANGEMIN>
<RANGEMAX>30</RANGEMAX>
<STEP>1</STEP>
</FIELD>
</FIELDS>
</Item>
<!-- Alt Hold -->
<Item>
<HEAD>Altitude Hold:</HEAD>
<SUBHEAD>Altitude Error:</SUBHEAD>
<DESC>
How fast the copter should go to reach the correct altitude.
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>THR_ALT_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>THR_ALT_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>THR_ALT_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>0.1</STEP>
</FIELD>
</FIELDS>
<SUBHEAD>Thrust Rate:</SUBHEAD>
<DESC>
How much thrust to give us the desired rate.
This will change depending on the weight and thrust of your copter.
</DESC>
<FIELDS>
<FIELD>
<NAME>P</NAME>
<PARAMNAME>THR_RATE_P</PARAMNAME>
<RANGEMIN>0.001</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>I</NAME>
<PARAMNAME>THR_RATE_I</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>D</NAME>
<PARAMNAME>THR_RATE_D</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>5</RANGEMAX>
<STEP>0.001</STEP>
</FIELD>
<FIELD>
<NAME>IMAX</NAME>
<PARAMNAME>THR_RATE_IMAX</PARAMNAME>
<RANGEMIN>0</RANGEMIN>
<RANGEMAX>50</RANGEMAX>
<STEP>0.1</STEP>
</FIELD>
</FIELDS>
</Item>
</AC>

View File

@ -1,3 +0,0 @@
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

View File

@ -1,38 +0,0 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"/></startup>
<appSettings>
<add key="UpdateLocation"
value="http://meee146-planner.googlecode.com/git/Tools/ArdupilotMegaPlanner/bin/Release/"/>
<add key="ParameterLocations"
value="http://ardupilot-mega.googlecode.com/git/ArduCopter/Parameters.pde;http://ardupilot-mega.googlecode.com/git/ArduPlane/Parameters.pde"/>
<add key="ParameterMetaDataXMLFileName"
value="ParameterMetaData.xml"/>
</appSettings>
<log4net>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level %logger - %message%newline" />
</layout>
<threshold value="INFO"/>
</appender>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="ArdupilotPlanner.log" />
<appendToFile value="true" />
<maximumFileSize value="500KB" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %5level %logger - %message (%file:%line) [%thread]%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
</root>
</log4net>
</configuration>

View File

@ -1,106 +0,0 @@
;************************************************************
; Windows USB CDC ACM Setup File
; Copyright (c) 2000 Microsoft Corporation
[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%MFGNAME%
LayoutFile=layout.inf
CatalogFile=%MFGFILENAME%.cat
DriverVer=11/15/2007,5.1.2600.0
[Manufacturer]
%MFGNAME%=DeviceList, NTamd64
[DestinationDirs]
DefaultDestDir=12
;------------------------------------------------------------------------------
; Windows 2000/XP/Vista-32bit Sections
;------------------------------------------------------------------------------
[DriverInstall.nt]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.nt
AddReg=DriverInstall.nt.AddReg
[DriverCopyFiles.nt]
usbser.sys,,,0x20
[DriverInstall.nt.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.nt.Services]
AddService=usbser, 0x00000002, DriverService.nt
[DriverService.nt]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\%DRIVERFILENAME%.sys
;------------------------------------------------------------------------------
; Vista-64bit Sections
;------------------------------------------------------------------------------
[DriverInstall.NTamd64]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.NTamd64
AddReg=DriverInstall.NTamd64.AddReg
[DriverCopyFiles.NTamd64]
%DRIVERFILENAME%.sys,,,0x20
[DriverInstall.NTamd64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService.NTamd64
[DriverService.NTamd64]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\%DRIVERFILENAME%.sys
;------------------------------------------------------------------------------
; Vendor and Product ID Definitions
;------------------------------------------------------------------------------
; When developing your USB device, the VID and PID used in the PC side
; application program and the firmware on the microcontroller must match.
; Modify the below line to use your VID and PID. Use the format as shown below.
; Note: One INF file can be used for multiple devices with different VID and PIDs.
; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
;------------------------------------------------------------------------------
[SourceDisksFiles]
[SourceDisksNames]
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_2341&PID_0010
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall, USB\VID_2341&PID_0010
;------------------------------------------------------------------------------
; String Definitions
;------------------------------------------------------------------------------
;Modify these strings to customize your device
;------------------------------------------------------------------------------
[Strings]
MFGFILENAME="CDC_vista"
DRIVERFILENAME ="usbser"
MFGNAME="Arduino LLC (www.arduino.cc)"
INSTDISK="Arduino Mega 2560 Driver Installer"
DESCRIPTION="Arduino Mega 2560"
SERVICE="USB RS-232 Emulation Driver"

View File

@ -1,119 +0,0 @@
<?xml version="1.0"?>
<PropertyList>
<generic>
<!-- template
<chunk>
<name></name>
<type>double</type>
<node></node>
</chunk>
-->
<input>
<binary_mode>true</binary_mode>
<!-- ##### Flight Controls -->
<chunk>
<name>aileron</name>
<type>double</type>
<node>/controls/flight/aileron</node>
</chunk>
<chunk>
<name>elevator</name>
<type>double</type>
<node>/controls/flight/elevator</node>
</chunk>
<chunk>
<name>rudder</name>
<type>double</type>
<node>/controls/flight/rudder</node>
</chunk>
<chunk>
<name>throttle</name>
<type>double</type>
<node>/controls/engines/engine[0]/throttle</node>
</chunk>
</input>
<output>
<binary_mode>true</binary_mode>
<binary_footer>magic,0x4c56414d</binary_footer>
<!-- ##### GPS ##### -->
<chunk>
<name>latitude</name>
<type>double</type>
<node>/position/latitude-deg</node>
</chunk>
<chunk>
<name>longitude</name>
<type>double</type>
<node>/position/longitude-deg</node>
</chunk>
<chunk>
<name>altitude</name>
<type>double</type>
<node>/position/altitude-ft</node>
</chunk>
<chunk>
<name>heading</name>
<type>double</type>
<node>/orientation/heading-deg</node>
</chunk>
<!-- ground course = atan(ve/vn), speed = sqrt((ve*ve) + (vn*vn)) -->
<chunk>
<name>speed - north</name>
<type>double</type>
<node>/velocities/speed-north-fps</node>
</chunk>
<chunk>
<name>speed - east</name>
<type>double</type>
<node>/velocities/speed-east-fps</node>
</chunk>
<!-- ##### IMU ##### -->
<chunk>
<name>x-accel</name>
<type>double</type>
<node>/accelerations/pilot/x-accel-fps_sec</node>
</chunk>
<chunk>
<name>y-accel</name>
<type>double</type>
<node>/accelerations/pilot/y-accel-fps_sec</node>
</chunk>
<chunk>
<name>z-accel</name>
<type>double</type>
<node>/accelerations/pilot/z-accel-fps_sec</node>
</chunk>
<chunk>
<name>roll-rate</name>
<type>double</type>
<node>/orientation/roll-rate-degps</node>
</chunk>
<chunk>
<name>pitch-rate</name>
<type>double</type>
<node>/orientation/pitch-rate-degps</node>
</chunk>
<chunk>
<name>yaw-rate</name>
<type>double</type>
<node>/orientation/yaw-rate-degps</node>
</chunk>
</output>
</generic>
</PropertyList>

View File

@ -1,12 +0,0 @@
<configuration>
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1"/>
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1"/>
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1"/>
<dllmap os="linux" dll="alut.dll" target="libalut.so.0"/>
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so"/>
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL"/>
</configuration>

View File

@ -1,19 +0,0 @@
WAYPOINT;WAYPOINT;Delay;Alt;Lat;Long
LOITER_UNLIM;LOITER_UNLIM;N/A;Alt;Lat;Long
LOITER_TURNS;LOITER_TURNS;Turns;Alt;Lat;Long
LOITER_TIME;LOITER_TIME;Time s*10;Alt;Lat;Long
RETURN_TO_LAUNCH;RETURN_TO_LAUNCH;N/A;Alt;Lat;Long
LAND;LAND;N/A;Alt;Lat;Long
TAKEOFF;TAKEOFF;Angle;Alt;N/A;N/A
CONDITION_DELAY;CONDITION_DELAY;N/A;N/A;Time (sec);N/A
CONDITION_CHANGE_ALT;CONDITION_CHANGE_ALT;N/A;Alt;Rate (cm/sec);N/A
CONDITION_DISTANCE;CONDITION_DISTANCE;N/A;N/A;Dist (m);N/A
CONDITION_YAW;CONDITION_YAW;Angle;Speed(deg/sec);Direction (1/-1);Relateiv(1)/Absolute(0)
DO_JUMP;DO_JUMP;WP #;N/A;Repeat Count;N/A
DO_CHANGE_SPEED;DO_CHANGE_SPEED;Type (0=as 1=gs);Speed (m/s);Throttle(%);N/A
DO_SET_HOME;DO_SET_HOME;Current(1)/Spec(0);Alt (m);Lat;Long
DO_SET_PARAMETER;DO_SET_PARAMETER;Param Number;Param Value;N/A;N/A
DO_REPEAT_RELAY;DO_REPEAT_RELAY;N/A;Repeat#;Delay (sec);N/A
DO_SET_RELAY;DO_SET_RELAY;Off(0)/On(1);N/A;N/A;N/A
DO_SET_SERVO;DO_SET_SERVO;Servo No;PWM;N/A;N/A
DO_REPEAT_SERVO;DO_REPEAT_SERVO;Servo No;PWM;Repeat#;Delay (sec)

View File

@ -1,3 +0,0 @@
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

View File

@ -1,33 +0,0 @@
Search for differences
1. C:\Program Files (x86)\AeroSIM-RC\AeroSIM-RC.exe: 1,957,888 bytes
2. C:\Program Files (x86)\AeroSIM-RC\AeroSIM-RC3.91.exe: 1,957,888 bytes
Offsets: hexadec.
DD50C: 90 0F
DD50D: 90 8E
DD50E: 90 9A
DD50F: 90 00
DD510: 90 00
DD511: 90 00
DD531: 90 8B
DD532: 90 0D
DD533: 90 A8
DD534: 90 CF
DD535: 90 5D
DD536: 90 00
DD537: 90 40
DD538: 90 81
DD539: 90 C2
DD53A: 90 44
DD53B: 90 02
DD53C: 90 00
DD53D: 90 00
DD53E: 90 3B
DD53F: 90 C1
DD540: 90 7C
DD541: 90 D5
DD542: 90 EB
DD543: 90 68
25 difference(s) found.

View File

@ -1,92 +0,0 @@
<?xml version="1.0"?>
<PropertyList>
<name>rascal-config</name>
<layout>vbox</layout>
<x>40</x>
<y>40</y>
<group>
<layout>hbox</layout>
<empty><stretch>true</stretch></empty>
<text>
<label>Rascal Configuration</label>
</text>
<empty><stretch>true</stretch></empty>
<button>
<pref-width>16</pref-width>
<pref-height>16</pref-height>
<legend></legend>
<default>1</default>
<keynum>27</keynum>
<border>2</border>
<binding>
<command>nasal</command>
<script>rascal.dialog.close()</script>
</binding>
</button>
</group>
<hrule/>
<group>
<layout>table</layout>
<!-- row zero -->
<checkbox>
<row>0</row> <col>0</col>
<halign>left</halign>
<label>External Autopilot Enable</label>
<property>/ugear/settings/ap-enable</property>
<live>true</live>
<binding>
<command>dialog-apply</command>
</binding>
</checkbox>
<!-- row one -->
<checkbox>
<row>1</row> <col>0</col>
<halign>left</halign>
<label>External Turret Control Enable</label>
<property>/ugear/settings/turret-enable</property>
<live>true</live>
<binding>
<command>dialog-apply</command>
</binding>
</checkbox>
<!-- row two -->
<checkbox>
<row>2</row> <col>0</col>
<halign>left</halign>
<label>Smoke</label>
<property>/sim/multiplay/generic/int[0]</property>
<live>true</live>
<binding>
<command>dialog-apply</command>
</binding>
</checkbox>
<!-- row three -->
<checkbox>
<row>3</row> <col>0</col>
<halign>left</halign>
<label>Trajectory Markers</label>
<property>/sim/multiplay/generic/int[1]</property>
<live>true</live>
<binding>
<command>dialog-apply</command>
</binding>
</checkbox>
</group>
<hrule/>
</PropertyList>

View File

@ -1,51 +0,0 @@
<?xml version="1.0"?>
<!-- Generated by Aero-Matic v 0.7
Inputs:
horsepower: 3.8
pitch: fixed
Outputs:
linear-blade-inches: 10.331602005498
-->
<propeller name="Rascal Propeller">
<ixx> 0.00085 </ixx>
<diameter unit="IN"> 18.0 </diameter>
<numblades> 2 </numblades>
<minpitch> 30 </minpitch>
<maxpitch> 30 </maxpitch>
<table name="C_THRUST" type="internal">
<tableData>
0.0 0.0776
0.1 0.0744
0.2 0.0712
0.3 0.0655
0.4 0.0588
0.5 0.0518
0.6 0.0419
0.7 0.0318
0.8 0.0172
1.0 -0.0058
1.4 -0.0549
</tableData>
</table>
<table name="C_POWER" type = "internal">
<tableData>
0.0 0.0902
0.1 0.0893
0.2 0.0880
0.3 0.0860
0.4 0.0810
0.5 0.0742
0.6 0.0681
0.7 0.0572
0.8 0.0467
1.0 0.0167
1.4 -0.0803
</tableData>
</table>
</propeller>

View File

@ -1,8 +0,0 @@
<?xml version="1.0"?>
<!-- Zenoah G-26A -->
<!-- 2.96 hp engine -->
<!-- one horsepower equals 745.69987 Watts -->
<electric_engine name="electric_1mw">
<power unit="WATTS"> 2207.27 </power>
</electric_engine>

View File

@ -1,87 +0,0 @@
<?xml version="1.0"?>
<PropertyList>
<path>Rascal110-000-013.ac</path>
<model>
<path>Aircraft/Rascal/Models/smokeW.xml</path>
<offsets>
<x-m> 2.0</x-m>
<y-m> 0.0</y-m>
<z-m> 0.0</z-m>
<roll-deg> 0</roll-deg>
<pitch-deg> 0</pitch-deg>
<heading-deg>0</heading-deg>
</offsets>
</model>
<animation>
<type>rotate</type>
<object-name>L_Aileron</object-name>
<property>/surface-positions/left-aileron-pos-norm</property>
<factor>20.0</factor> <!-- fixme -->
<center>
<x-m>0.735</x-m>
<y-m>-0.450</y-m>
<z-m>0.139</z-m>
</center>
<axis>
<x>0.037</x>
<y>1.0</y>
<z>-0.029</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>R_Aileron</object-name>
<property>/surface-positions/right-aileron-pos-norm</property>
<factor>20.0</factor> <!-- fixme -->
<center>
<x-m>0.735</x-m>
<y-m>0.450</y-m>
<z-m>0.139</z-m>
</center>
<axis>
<x>-0.037</x>
<y>1.0</y>
<z>0.029</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Elevator</object-name>
<property>/surface-positions/elevator-pos-norm</property>
<factor>35.0</factor> <!-- fixme -->
<center>
<x-m>1.752</x-m>
<y-m>0.0</y-m>
<z-m>0.051</z-m>
</center>
<axis>
<x>0.0</x>
<y>1.0</y>
<z>0.0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Rudder</object-name>
<property>/surface-positions/rudder-pos-norm</property>
<factor>35.0</factor> <!-- fixme -->
<center>
<x-m>1.752</x-m>
<y-m>0.0</y-m>
<z-m>0.0</z-m>
</center>
<axis>
<x>0.0</x>
<y>0.0</y>
<z>1.0</z>
</axis>
</animation>
</PropertyList>

View File

@ -1,30 +0,0 @@
AC3Db
MATERIAL "ac3dmat9" rgb 0 0 1 amb 0 0 1 emis 0 0 1 spec 0 0 1 shi 0 trans 0
MATERIAL "ac3dmat3" rgb 1 0 0 amb 1 0 0 emis 1 0 0 spec 1 0 0 shi 0 trans 0
OBJECT world
kids 2
OBJECT poly
name "line"
loc 0 0.5 0
numvert 2
0 0.5 0
0 -0.5 0
numsurf 1
SURF 0x22
mat 0
refs 2
0 0 1
1 0 0
kids 0
OBJECT poly
name "line"
numvert 2
0 0 -3
0 0 3
numsurf 1
SURF 0x22
mat 1
refs 2
0 0 1
1 0 0
kids 0

View File

@ -1,9 +0,0 @@
<?xml version="1.0"?>
<!-- Trajectory Marker config file - Lee Elliott -->
<PropertyList>
<path>Trajectory-Marker.ac</path>
</PropertyList>

View File

@ -1,102 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- New version May, 07, 2009 by 102nd-YU-Nitro -->
<PropertyList>
<!-- OSG Particles -->
<particlesystem>
<name>smoke</name>
<offsets>
<x-m> 0.000 </x-m>
<y-m> 0.000 </y-m>
<z-m> -0.000 </z-m>
<roll-deg> 0.000 </roll-deg>
<pitch-deg> 0.000 </pitch-deg>
<heading-deg> 0.000 </heading-deg>
</offsets>
<texture>smoke.png</texture>
<condition>
<property>sim/multiplay/generic/int[0]</property>
</condition>
<emissive>false</emissive>
<lighting>false</lighting>
<align>billboard</align> <!-- billboard / fixed -->
<attach>world</attach> <!-- world / local-->
<placer>
<type>point</type> <!-- sector / segments / point -->
</placer>
<shooter>
<theta-min-deg>10</theta-min-deg>
<theta-max-deg>86</theta-max-deg>
<phi-min-deg>-1.5</phi-min-deg>
<phi-max-deg>8</phi-max-deg>
<speed-mps>
<value>10</value>
<spread>2.5</spread>
</speed-mps>
<rotation-speed>
<x-min-deg-sec>5</x-min-deg-sec>
<y-min-deg-sec>5</y-min-deg-sec>
<z-min-deg-sec>5</z-min-deg-sec>
<x-max-deg-sec>60</x-max-deg-sec>
<y-max-deg-sec>60</y-max-deg-sec>
<z-max-deg-sec>60</z-max-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<value>100</value>
<spread>1</spread>
</particles-per-sec>
</counter>
<particle>
<start>
<color>
<red><value> 0.9 </value></red>
<green><value> 0.9 </value></green>
<blue><value> 0.9 </value></blue>
<alpha><value> 0.3 </value></alpha>
</color>
<size>
<value>0.3</value>
</size>
</start>
<end>
<color>
<red><value> 0.900 </value></red>
<green><value> 0.900 </value></green>
<blue><value> 0.900 </value></blue>
<alpha><value> 0.001 </value></alpha>
</color>
<size>
<value>10.0</value>
</size>
</end>
<life-sec>
<value>60</value>
</life-sec>
<mass-kg>0.001</mass-kg>
<radius-m>1.0</radius-m>
</particle>
<program>
<fluid>air</fluid> <!-- air / water -->
<gravity>false</gravity>
<wind>true</wind>
</program>
</particlesystem>
</PropertyList>

View File

@ -1,244 +0,0 @@
This model is based on the Rascal110 from FlightGear, and adapted for
use in the ArduPilot test system. Many thanks to all who have
contributed!
This information has not been updated for the Rascal, please ignore, we
are still at pre-pre-pre-alpha with this model!
PIPER J3 CUB PERFORMANCE DATA
=============================
[This information is copied from the 1946 J3C-65 owner's handbook.]
FLYING HINTS
The Piper Cub Special represents more than 15 years of diligent
aircraft engineering and manufacturing experience. Its simplicity of
design and construction, its low operating and maintenance costs, its
inherent stability, ruggedness, and its outstanding safety and ease of
flying, have made it the most popular airplane in aviation history.
The Piper Cub Special is the time-tested product of millions of hours
of flying under all conceivable conditions both in the military and in
peace time.
There are hints on starting, flying, stopping, and other related
topics that are important to the owner who wants to conserve his
airplane -- keep it in maximum airworthy condition -- and enjoy a full
measure of flying satisfaction.
First, each pilot should become familiar enough with his Piper Cub
Special that he can accomplish a satisfactory pre-flight inspection.
This check is simple and requires only a few minutes. See Section IX
for check list. Daily check of airplane prior to flight should be the
first in a number of safe flying habits the pilot should acquire.
A. BEFORE STARTING ENGINE
(1) Make routine check of gasoline supply. Visible fuel gauge is
integral part of gas tank cap; it will not show number of gallons but
will show proportion of fuel in tank by length of rod which extends
upward from cap. A full tank of 12 U.S. gallons will be indicated by
11 inches of rod extending beyond cap. Keep gas gauge rod clean and
smooth with crocus cloth for accuracy and freedom of movement.
(2) Check oil level in engine sump by removing oil cap and gauge. Oil
stick should indicate oil level up to index mark of 4 quarts.
(3) Check freedom of movement of flight and engine controls.
B. STARTING ENGINE
(1) Chock wheels, or have occupant who is familiar with controls set
brakes in cabin.
(2) Ignition switch OFF. Verify.
(3) Set throttle approximately 1/10 open.
(4) Push fuel shut-off ON.
(5) Turn propeller through several times.
(6) Turn ignition switch ON.
(7) Start engine by pulling propeller through with a snap.
CAUTION -- Always handle propeller as if switch were "ON." Stand as
far in front of propeller as possible. Use both hands and grasp one
blad approximately midway from tip. Do not overgrasp blade. Do not
wear long, loose clothing. Make sure footing is sure to preclude
possibility of feet slipping.
(8) If engine does not start, turn switch OFF. Turn primer knob to
unlock, pull out, pump three or four times, then reseat primer and
lock by turning in opposite direction. In extremely cold weather a
few strokes of the primer as the engine starts will enable it to keep
running. NOTE -- Avoid excessive priming as it causes raw gasoline to
wash lubricating oil from engine cylinder walls. Do not prime warm
engine.
(9) Repeat starting procedures 6, 7.
(10) If engine loads up and refuses to start, turn ignition switch
"OFF,", open throttle wide and turn propeller through backwards
several times to unload excessive gas mixture in cylinders. Then
close throttle and repeat starting procedure.
C. ENGINE WARM-UP
(1) As soon as engine starts, advance throttle slightly to idle at 700
R.P.M. Check engine instruments. If oil pressure gauge does not
indicate pressure within 30 seconds, stop engine immediately, check
and correct trouble before any further operation. Oil temperature
during operating should not rise above 200° F. and oil pressure should
not fall below 30 pounds. With engine warm, idling speed should be
550-600 R.P.M.
(2) Rev engine up to 2100 R.P.M. on both magnetos. Switch to LEFT and
RIGHT magnetos. R.P.M. drop should not be over 75 R.P.M. CAUTION
--Do not operate engine on either single magneto for more than 30
seconds at a time, as this tends to foul the non-operating spark plugs
in the ignition circuit of the magneto that is switched off.
D. STOPPING ENGINE
(1) Never cut switch immediately after landing as this causes engine
to cool too rapidly.
(2) Idle engine, especially in high temperature operating conditions,
for several minutes. It is advisable to switch to each magneto for 30
second intervals to allow gradual cooling of engine. This helps to
prevent overheating of spark plug insulators and will lessen tendency
for "after-firing."
(3) Check for carburetor heat OFF during idling.
E. TAXIING
(1) Open throttle to start airplane in motion; then close throttle to
a setting sufficient to keep airplane rolling. Do not keep throttle
advanced so that it is necessary to control taxi speed of airplane
with brakes. This causes unnecessary wear and tear on brakes and
tires.
(2) Taxi slowly (speed of a fast walk) controlling direction with
rudder which is connected to a steerable tail wheel. Use brakes only
for positive, precision ground control when necessary.
(3) Taxi upwind with stick back; downwind with stick foreward. When
ground winds are in excess of 15 M.P.H., turn into wind using ailerons
in direction of turn; apply ailerons away from the turn when turning
downwind. This procedure helps to prevent the wind "picking up" a
wing during windy, gusty conditions. Always make ground turns slowly.
F. GENERAL FLYING
(1) For takeoff use full throttle, heading into wind. Airplane loaded
will become airborne at approximately 39 M.P.H. Best climb speed is
an indicated 55 M.P.H.
(2) Indicated R.P.M. for cruising speed of 73 M.P.H. is 2150.
Take-off R.P.M. is 2300. Do not fly at full throttle over 3 minutes.
(3) Use CARBURETOR AIR HEAT when engine runs "rough" and tachometer
shows drop in R.P.M. which may be due to ice forming in carburetor.
Tachometer should recover to within 50 R.P.M. below normal when using
carburetor heat. Push heater to "OFF" position, and if icing
condition has been cleared, R.P.M. should return to normal. Continued
use of carburetor heat will only cause increased fuel consumption and
loss of power.
(4) Maximum permissible diving speed is 122 M.P.H.
G. APPROACH AND LANDING
(1) Push carburetor heat ON prior to throttling back for glide, or for
any other flight maneuver.
(2) Glide between 50-60 M.P.H. depending upon loading of airplane and
gust conditions.
NOTE -- "Clear" engine by opening throttle gently, every 200-250 feet
of descent during a long glide so that engine temperature will be
maintained.
Throttle action on the part of the pilot should be smooth and gentle
at all times.
H. PARKING AND MOORING
(1) After termination of flight, enter flying time in aircraft and
engine log books.
(2) Turn ignition and fuel OFF.
(3) Chcok the wheels of airplane.
(4) If airplane is not to be flown for some time, it should be
hangared or tied down. Use good quality 1/2" - 5/8" diameter rope.
Secure to lift assist handle at aft end of fuselage; also at upper end
of both front wing lift struts where they attach to wing. Make sure
that rope passes between aileron cable and lift strut. Mooring ropes,
when airplane is tied down, should have no slack.
(5) Lock aileron and elevator controls by wrapping front seat belt
completely around rear control stick, tighten and buckle.
(6) Under excessively wind conditions, airplane should be tailed into
wind for mooring.
[Here is my older information.]
These are the only numbers I could find. They are for a J3 Cub with
an 85HP engine rather than 65 hp, so some adjustments may be
necessary. The source is
http://www.evergreenfs.com/planedata.htm
Speeds
------
Best rate of climb (Vy): 65 mph (57 kt)
Best angle of climb (Vx): 55 mph (48 kt)
Cruise: 70 mph (61 kt)
Never-exceed (Vne): 122 mph (106 kt)
Best Glide (Vglide): 60 mph (52 kt)
Stall (Vs): 38 mph (33 kt)
Maneuvering (Va): 70 mph (61 kt)
Approach: 50-60 mph (44-52 kt)
Power
-----
Take off: full
Climb: 50 rpm below full
Cruise: 2300 rpm
Approach: 1200 rpm
Practice stalls: 1200 rpm
Distances
---------
Take-off: 450-800 ft
Landing: 200-800 ft
Fuel
----
Total fuel: 12 gal US
Usable fuel: 12 gal US
Grade: 80/87
GPH: 5 gal US/hr

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<key n="9">
<name>Ctrl-I</name>
<desc>Show configuration dialog</desc>
<binding>
<command>nasal</command>
<script>rascal.dialog.toggle()</script>
</binding>
</key>
<key n="83">
<name>S</name>
<desc>Toggle smoke</desc>
<binding>
<command>property-toggle</command>
<property>sim/multiplay/generic/int[0]</property>
</binding>
</key>
</PropertyList>

View File

@ -1,25 +0,0 @@
<?xml version="1.0"?>
<PropertyList>
<submodel>
<name>trajectory marker</name>
<model>Aircraft/Rascal/Models/Trajectory-Marker.xml</model>
<trigger>/sim/multiplay/generic/int[1]</trigger>
<speed>0</speed>
<repeat>true</repeat>
<delay>0.75</delay>
<count>-1</count>
<x-offset>-0.5</x-offset>
<y-offset>0.0</y-offset>
<z-offset>-0.08</z-offset>
<yaw-offset>0.0</yaw-offset>
<pitch-offset>0.0</pitch-offset>
<eda>1000000000.00</eda>
<life>600</life>
<buoyancy>32</buoyancy>
<wind>false</wind>
<aero-stabilised>false</aero-stabilised>
</submodel>
</PropertyList>

View File

@ -1,522 +0,0 @@
<?xml version="1.0"?>
<?xml-stylesheet href="http://jsbsim.sourceforge.net/JSBSim.xsl" type="text/xsl"?>
<fdm_config name="rascal" version="2.0" release="BETA"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<fileheader>
<author> Author Name </author>
<filecreationdate> Creation Date </filecreationdate>
<version> Version </version>
<description> Models a rascal </description>
</fileheader>
<metrics>
<wingarea unit="FT2"> 10.57 </wingarea>
<wingspan unit="FT"> 9.17 </wingspan>
<chord unit="FT"> 1.15 </chord>
<htailarea unit="FT2"> 1.69 </htailarea>
<htailarm unit="FT"> 3.28 </htailarm>
<vtailarea unit="FT2"> 1.06 </vtailarea>
<vtailarm unit="FT"> 0 </vtailarm>
<location name="AERORP" unit="IN">
<x> 37.4 </x>
<y> 0 </y>
<z> 0 </z>
</location>
<location name="EYEPOINT" unit="IN">
<x> 20 </x>
<y> 0 </y>
<z> 5 </z>
</location>
<location name="VRP" unit="IN">
<x> 0 </x>
<y> 0 </y>
<z> 0 </z>
</location>
</metrics>
<mass_balance>
<ixx unit="SLUG*FT2"> 1.95 </ixx>
<iyy unit="SLUG*FT2"> 1.55 </iyy>
<izz unit="SLUG*FT2"> 1.91 </izz>
<ixy unit="SLUG*FT2"> 0 </ixy>
<ixz unit="SLUG*FT2"> 0 </ixz>
<iyz unit="SLUG*FT2"> 0 </iyz>
<emptywt unit="LBS"> 13 </emptywt>
<location name="CG" unit="IN">
<x> 36.4 </x>
<y> 0 </y>
<z> 4 </z>
</location>
</mass_balance>
<ground_reactions>
<contact type="BOGEY" name="LEFT_MLG">
<location unit="IN">
<x> 33.1 </x>
<y> -12.9 </y>
<z> -13.1 </z>
</location>
<static_friction> 0.8 </static_friction>
<dynamic_friction> 0.5 </dynamic_friction>
<rolling_friction> 0.1 </rolling_friction>
<spring_coeff unit="LBS/FT"> 480 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 100 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="RIGHT_MLG">
<location unit="IN">
<x> 33.1 </x>
<y> 12.9 </y>
<z> -13.1 </z>
</location>
<static_friction> 0.8 </static_friction>
<dynamic_friction> 0.5 </dynamic_friction>
<rolling_friction> 0.1 </rolling_friction>
<spring_coeff unit="LBS/FT"> 480 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 100 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="TAIL_LG">
<location unit="IN">
<x> 68.9 </x>
<y> 0 </y>
<z> -13.1 </z>
</location>
<static_friction> 8.0 </static_friction>
<dynamic_friction> 5.0 </dynamic_friction>
<rolling_friction> 0.1 </rolling_friction>
<spring_coeff unit="LBS/FT"> 480 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 100 </damping_coeff>
<max_steer unit="DEG"> 360.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
</ground_reactions>
<propulsion>
<engine file="Zenoah_G-26A">
<location unit="IN">
<x> 36 </x>
<y> 0 </y>
<z> 0 </z>
</location>
<orient unit="DEG">
<roll> 0.0 </roll>
<pitch> 0 </pitch>
<yaw> 0 </yaw>
</orient>
<feed>0</feed>
<thruster file="18x8">
<location unit="IN">
<x> 1 </x>
<y> 0 </y>
<z> 0 </z>
</location>
<orient unit="DEG">
<roll> 0.0 </roll>
<pitch> 0.0 </pitch>
<yaw> 0.0 </yaw>
</orient>
<p_factor>1.0</p_factor>
</thruster>
</engine>
<tank type="FUEL"> <!-- Tank number 0 -->
<location unit="IN">
<x> 36.36 </x>
<y> 0 </y>
<z> -1.89375 </z>
</location>
<capacity unit="LBS"> 1.5 </capacity>
<contents unit="LBS"> 1.5 </contents>
</tank>
</propulsion>
<flight_control name="FCS: rascal">
<channel name="All">
<summer name="Pitch Trim Sum">
<input>fcs/elevator-cmd-norm</input>
<input>fcs/pitch-trim-cmd-norm</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Elevator Control">
<input>fcs/pitch-trim-sum</input>
<range>
<min>-0.35</min>
<max>0.3</max>
</range>
<output>fcs/elevator-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Elevator Normalized">
<input>fcs/elevator-pos-rad</input>
<domain>
<min>-0.3</min>
<max> 0.3</max>
</domain>
<range>
<min>-1</min>
<max> 1</max>
</range>
<output>fcs/elevator-pos-norm</output>
</aerosurface_scale>
<summer name="Roll Trim Sum">
<input>fcs/aileron-cmd-norm</input>
<input>fcs/roll-trim-cmd-norm</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Left Aileron Control">
<input>fcs/roll-trim-sum</input>
<range>
<min>-0.35</min>
<max>0.35</max>
</range>
<output>fcs/left-aileron-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Right Aileron Control">
<input>-fcs/roll-trim-sum</input>
<range>
<min>-0.35</min>
<max>0.35</max>
</range>
<output>fcs/right-aileron-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Left aileron Normalized">
<input>fcs/left-aileron-pos-rad</input>
<domain>
<min>-0.35</min>
<max> 0.35</max>
</domain>
<range>
<min>-1</min>
<max> 1</max>
</range>
<output>fcs/left-aileron-pos-norm</output>
</aerosurface_scale>
<aerosurface_scale name="Right aileron Normalized">
<input>fcs/right-aileron-pos-rad</input>
<domain>
<min>-0.35</min>
<max> 0.35</max>
</domain>
<range>
<min>-1</min>
<max> 1</max>
</range>
<output>fcs/right-aileron-pos-norm</output>
</aerosurface_scale>
<summer name="Rudder Command Sum">
<input>fcs/rudder-cmd-norm</input>
<input>fcs/yaw-trim-cmd-norm</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Rudder Control">
<input>fcs/rudder-command-sum</input>
<range>
<min>-0.35</min>
<max>0.35</max>
</range>
<output>fcs/rudder-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Rudder Normalized">
<input>fcs/rudder-pos-rad</input>
<domain>
<min>-0.35</min>
<max> 0.35</max>
</domain>
<range>
<min>-1</min>
<max> 1</max>
</range>
<output>fcs/rudder-pos-norm</output>
</aerosurface_scale>
</channel>
</flight_control>
<aerodynamics>
<axis name="DRAG">
<function name="aero/coefficient/CD0">
<description>Drag_at_zero_lift</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar>aero/alpha-rad</independentVar>
<tableData>
-1.5700 1.5000
-0.2600 0.0560
0.0000 0.0280
0.2600 0.0560
1.5700 1.5000
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/CDi">
<description>Induced_drag</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>aero/cl-squared</property>
<value>0.0400</value>
</product>
</function>
<function name="aero/coefficient/CDbeta">
<description>Drag_due_to_sideslip</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar>aero/beta-rad</independentVar>
<tableData>
-1.5700 1.2300
-0.2600 0.0500
0.0000 0.0000
0.2600 0.0500
1.5700 1.2300
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/CDde">
<description>Drag_due_to_Elevator_Deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/elevator-pos-norm</property>
<value>0.0300</value>
</product>
</function>
</axis>
<axis name="SIDE">
<function name="aero/coefficient/CYb">
<description>Side_force_due_to_beta</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>aero/beta-rad</property>
<value>-1.0000</value>
</product>
</function>
</axis>
<axis name="LIFT">
<function name="aero/coefficient/CLalpha">
<description>Lift_due_to_alpha</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar>aero/alpha-rad</independentVar>
<tableData>
-0.2000 -0.7500
0.0000 0.2500
0.2300 1.4000
0.6000 0.7100
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/CLde">
<description>Lift_due_to_Elevator_Deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/elevator-pos-rad</property>
<value>0.2000</value>
</product>
</function>
</axis>
<axis name="ROLL">
<function name="aero/coefficient/Clb">
<description>Roll_moment_due_to_beta</description>
<!-- aka dihedral effect -->
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/beta-rad</property>
<value>-0.1000</value>
</product>
</function>
<function name="aero/coefficient/Clp">
<description>Roll_moment_due_to_roll_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/bi2vel</property>
<property>velocities/p-aero-rad_sec</property>
<value>-0.4000</value>
</product>
</function>
<function name="aero/coefficient/Clr">
<description>Roll_moment_due_to_yaw_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/bi2vel</property>
<property>velocities/r-aero-rad_sec</property>
<value>0.1500</value>
</product>
</function>
<function name="aero/coefficient/Clda">
<description>Roll_moment_due_to_aileron</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/left-aileron-pos-rad</property>
<table>
<independentVar>velocities/mach</independentVar>
<tableData>
0.0000 0.1300
2.0000 0.0570
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/Cldr">
<description>Roll_moment_due_to_rudder</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/rudder-pos-rad</property>
<value>0.0100</value>
</product>
</function>
</axis>
<axis name="PITCH">
<function name="aero/coefficient/Cmalpha">
<description>Pitch_moment_due_to_alpha</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>aero/alpha-rad</property>
<value>-0.5000</value>
</product>
</function>
<function name="aero/coefficient/Cmde">
<description>Pitch_moment_due_to_elevator</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>fcs/elevator-pos-rad</property>
<table>
<independentVar>velocities/mach</independentVar>
<tableData>
0.0000 -0.5000 <!-- was -1.1 -->
2.0000 -0.2750
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/Cmq">
<description>Pitch_moment_due_to_pitch_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>aero/ci2vel</property>
<property>velocities/q-aero-rad_sec</property>
<value>-12.0000</value>
</product>
</function>
<function name="aero/coefficient/Cmadot">
<description>Pitch_moment_due_to_alpha_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>aero/ci2vel</property>
<property>aero/alphadot-rad_sec</property>
<value>-7.0000</value>
</product>
</function>
</axis>
<axis name="YAW">
<function name="aero/coefficient/Cnb">
<description>Yaw_moment_due_to_beta</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/beta-rad</property>
<value>0.1200</value>
</product>
</function>
<function name="aero/coefficient/Cnr">
<description>Yaw_moment_due_to_yaw_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/bi2vel</property>
<property>velocities/r-aero-rad_sec</property>
<value>-0.1500</value>
</product>
</function>
<function name="aero/coefficient/Cndr">
<description>Yaw_moment_due_to_rudder</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/rudder-pos-rad</property>
<value>-0.0500</value>
</product>
</function>
<function name="aero/coefficient/Cnda">
<description>Adverse_yaw</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/left-aileron-pos-rad</property>
<value>-0.0300</value>
</product>
</function>
<function name="aero/coefficient/Cndi">
<description>Yaw_moment_due_to_tail_incidence</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<value>0.0007</value>
</product>
</function>
</axis>
</aerodynamics>
</fdm_config>

View File

@ -1,174 +0,0 @@
<?xml version="1.0"?>
<!--
************************************************************************
Rascal 110 R/C airplane config. This files ties together all the components
used by FGFS to represent the Rascal 110 (by Sig Mfg) including the flight
dynamics model, and external 3D model.
************************************************************************
-->
<PropertyList>
<sim>
<description>Rascal 110 (R/C)</description>
<author>Lee Elliot (3D) Dave Culp (JSBsim dynamics) and Curt Olson</author>
<aircraft-version>0.1</aircraft-version>
<model-hz>400</model-hz>
<startup>
<splash-texture>Aircraft/Rascal/Rascal110-splash.rgb</splash-texture>
</startup>
<flight-model>jsb</flight-model>
<aero>Rascal110-JSBSim</aero>
<fuel-fraction>0.8</fuel-fraction>
<systems>
<autopilot>
<path>Aircraft/Rascal/Systems/110-autopilot.xml</path>
</autopilot>
<electrical>
<path>Aircraft/Rascal/Systems/electrical.xml</path>
</electrical>
</systems>
<sound>
<path>Aircraft/Generic/generic-sound.xml</path>
</sound>
<panel>
<visibility archive="n">false</visibility>
</panel>
<model>
<path archive="y">Aircraft/Rascal/Models/Rascal110.xml</path>
</model>
<view>
<internal archive="y">true</internal>
<config>
<x-offset-m archive="y">0.0</x-offset-m>
<y-offset-m archive="y">-0.15</y-offset-m>
<z-offset-m archive="y">0.9</z-offset-m>
<pitch-offset-deg>0</pitch-offset-deg>
</config>
</view>
<submodels>
<serviceable type="bool">1</serviceable>
<path>Aircraft/Rascal/Rascal-submodels.xml</path>
</submodels>
<view n="1">
<config>
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
</config>
</view>
<view n="2">
<config>
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
</config>
</view>
<view n="3">
<config>
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
</config>
</view>
<view n="4">
<config>
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
</config>
</view>
<view n="5">
<config>
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
</config>
</view>
<view n="6">
<config>
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
</config>
</view>
<multiplay>
<chat_display>1</chat_display>
<generic>
<int type="bool">0</int> <!-- smoke -->
<int type="bool">0</int> <!-- trajectory markers -->
</generic>
</multiplay>
<help>
<title>Rascal 110 (Sig Mfg)</title>
<line>Cruise speed: 60 kts</line>
<line>Never-exceed (Vne): 85 kts</line>
<line>Best Glide (Vglide): 20 kts</line>
<line>Maneuvering (Va): 50 kts</line>
<line>Approach speed: 20-25 kts</line>
<line>Stall speed (Vs): 15 kts</line>
</help>
</sim>
<nasal>
<rascal>
<file>Aircraft/Rascal/Systems/main.nas</file>
<file>Aircraft/Rascal/Systems/airdata.nas</file>
<file>Aircraft/Rascal/Systems/ugear.nas</file>
<script>
setlistener("/sim/signals/fdm-initialized", func {
var left = screen.display.new(20, 10);
left.add("/apm/aileron");
left.add("/apm/elevator");
left.add("/apm/rudder");
left.add("/apm/throttle");
var right = screen.display.new(-250, 20);
right.add("/apm/pitch");
right.add("/apm/roll");
right.add("/apm/altitude");
right.add("/apm/heading");
right.add("/apm/airspeed");
right.add("/apm/groundspeed");
});
</script>
</rascal>
</nasal>
<yasim>
<Rascal110>
<pilot-lb>2</pilot-lb>
</Rascal110>
</yasim>
<input>
<keyboard include="Rascal-keyboard.xml"/>
</input>
<controls>
<flight>
<aileron-trim>-0.01</aileron-trim> <!-- fixed -->
<elevator-trim>0.00</elevator-trim> <!-- controllable -->
<rudder-trim>0.00</rudder-trim> <!-- fixed -->
</flight>
<engines>
<engine n="0">
<magnetos>3</magnetos>
</engine>
</engines>
<smoke alias="/sim/multiplay/generic/int[0]"/>
<trajectory-markers alias="/sim/multiplay/generic/int[1]"/>
</controls>
<engines>
<engine>
<rpm type="double">700</rpm>
</engine>
</engines>
</PropertyList>

View File

@ -1,522 +0,0 @@
<?xml version="1.0"?>
<?xml-stylesheet href="http://jsbsim.sourceforge.net/JSBSim.xsl" type="text/xsl"?>
<fdm_config name="rascal" version="2.0" release="BETA"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<fileheader>
<author> Author Name </author>
<filecreationdate> Creation Date </filecreationdate>
<version> Version </version>
<description> Models a rascal </description>
</fileheader>
<metrics>
<wingarea unit="FT2"> 10.57 </wingarea>
<wingspan unit="FT"> 9.17 </wingspan>
<chord unit="FT"> 1.15 </chord>
<htailarea unit="FT2"> 1.69 </htailarea>
<htailarm unit="FT"> 3.28 </htailarm>
<vtailarea unit="FT2"> 1.06 </vtailarea>
<vtailarm unit="FT"> 0 </vtailarm>
<location name="AERORP" unit="IN">
<x> 37.4 </x>
<y> 0 </y>
<z> 0 </z>
</location>
<location name="EYEPOINT" unit="IN">
<x> 20 </x>
<y> 0 </y>
<z> 5 </z>
</location>
<location name="VRP" unit="IN">
<x> 0 </x>
<y> 0 </y>
<z> 0 </z>
</location>
</metrics>
<mass_balance>
<ixx unit="SLUG*FT2"> 1.95 </ixx>
<iyy unit="SLUG*FT2"> 1.55 </iyy>
<izz unit="SLUG*FT2"> 1.91 </izz>
<ixy unit="SLUG*FT2"> 0 </ixy>
<ixz unit="SLUG*FT2"> 0 </ixz>
<iyz unit="SLUG*FT2"> 0 </iyz>
<emptywt unit="LBS"> 13 </emptywt>
<location name="CG" unit="IN">
<x> 36.4 </x>
<y> 0 </y>
<z> 4 </z>
</location>
</mass_balance>
<ground_reactions>
<contact type="BOGEY" name="LEFT_MLG">
<location unit="IN">
<x> 33.1 </x>
<y> -9.9 </y>
<z> -13.1 </z>
</location>
<static_friction> 0.8 </static_friction>
<dynamic_friction> 0.5 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 120 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 20 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> LEFT </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="RIGHT_MLG">
<location unit="IN">
<x> 33.1 </x>
<y> 9.9 </y>
<z> -13.1 </z>
</location>
<static_friction> 0.8 </static_friction>
<dynamic_friction> 0.5 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 120 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 20 </damping_coeff>
<max_steer unit="DEG"> 0.0 </max_steer>
<brake_group> RIGHT </brake_group>
<retractable>0</retractable>
</contact>
<contact type="BOGEY" name="TAIL_LG">
<location unit="IN">
<x> 68.9 </x>
<y> 0 </y>
<z> -3 </z>
</location>
<static_friction> 0.8 </static_friction>
<dynamic_friction> 0.5 </dynamic_friction>
<rolling_friction> 0.02 </rolling_friction>
<spring_coeff unit="LBS/FT"> 24 </spring_coeff>
<damping_coeff unit="LBS/FT/SEC"> 20 </damping_coeff>
<max_steer unit="DEG"> 360.0 </max_steer>
<brake_group> NONE </brake_group>
<retractable>0</retractable>
</contact>
</ground_reactions>
<propulsion>
<engine file="Zenoah_G-26A">
<location unit="IN">
<x> 36 </x>
<y> 0 </y>
<z> 0 </z>
</location>
<orient unit="DEG">
<roll> 0.0 </roll>
<pitch> 0 </pitch>
<yaw> 0 </yaw>
</orient>
<feed>0</feed>
<thruster file="18x8">
<location unit="IN">
<x> 1 </x>
<y> 0 </y>
<z> 0 </z>
</location>
<orient unit="DEG">
<roll> 0.0 </roll>
<pitch> 0.0 </pitch>
<yaw> 0.0 </yaw>
</orient>
<p_factor>1.0</p_factor>
</thruster>
</engine>
<tank type="FUEL"> <!-- Tank number 0 -->
<location unit="IN">
<x> 36.36 </x>
<y> 0 </y>
<z> -1.89375 </z>
</location>
<capacity unit="LBS"> 1.5 </capacity>
<contents unit="LBS"> 1.5 </contents>
</tank>
</propulsion>
<flight_control name="FCS: rascal">
<channel name="All">
<summer name="Pitch Trim Sum">
<input>fcs/elevator-cmd-norm</input>
<input>fcs/pitch-trim-cmd-norm</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Elevator Control">
<input>fcs/pitch-trim-sum</input>
<range>
<min>-0.35</min>
<max>0.3</max>
</range>
<output>fcs/elevator-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Elevator Normalized">
<input>fcs/elevator-pos-rad</input>
<domain>
<min>-0.3</min>
<max> 0.3</max>
</domain>
<range>
<min>-1</min>
<max> 1</max>
</range>
<output>fcs/elevator-pos-norm</output>
</aerosurface_scale>
<summer name="Roll Trim Sum">
<input>fcs/aileron-cmd-norm</input>
<input>fcs/roll-trim-cmd-norm</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Left Aileron Control">
<input>fcs/roll-trim-sum</input>
<range>
<min>-0.35</min>
<max>0.35</max>
</range>
<output>fcs/left-aileron-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Right Aileron Control">
<input>-fcs/roll-trim-sum</input>
<range>
<min>-0.35</min>
<max>0.35</max>
</range>
<output>fcs/right-aileron-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Left aileron Normalized">
<input>fcs/left-aileron-pos-rad</input>
<domain>
<min>-0.35</min>
<max> 0.35</max>
</domain>
<range>
<min>-1</min>
<max> 1</max>
</range>
<output>fcs/left-aileron-pos-norm</output>
</aerosurface_scale>
<aerosurface_scale name="Right aileron Normalized">
<input>fcs/right-aileron-pos-rad</input>
<domain>
<min>-0.35</min>
<max> 0.35</max>
</domain>
<range>
<min>-1</min>
<max> 1</max>
</range>
<output>fcs/right-aileron-pos-norm</output>
</aerosurface_scale>
<summer name="Rudder Command Sum">
<input>fcs/rudder-cmd-norm</input>
<input>fcs/yaw-trim-cmd-norm</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Rudder Control">
<input>fcs/rudder-command-sum</input>
<range>
<min>-0.35</min>
<max>0.35</max>
</range>
<output>fcs/rudder-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Rudder Normalized">
<input>fcs/rudder-pos-rad</input>
<domain>
<min>-0.35</min>
<max> 0.35</max>
</domain>
<range>
<min>-1</min>
<max> 1</max>
</range>
<output>fcs/rudder-pos-norm</output>
</aerosurface_scale>
</channel>
</flight_control>
<aerodynamics>
<axis name="DRAG">
<function name="aero/coefficient/CD0">
<description>Drag_at_zero_lift</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar>aero/alpha-rad</independentVar>
<tableData>
-1.5700 1.5000
-0.2600 0.0560
0.0000 0.0280
0.2600 0.0560
1.5700 1.5000
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/CDi">
<description>Induced_drag</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>aero/cl-squared</property>
<value>0.0400</value>
</product>
</function>
<function name="aero/coefficient/CDbeta">
<description>Drag_due_to_sideslip</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar>aero/beta-rad</independentVar>
<tableData>
-1.5700 1.2300
-0.2600 0.0500
0.0000 0.0000
0.2600 0.0500
1.5700 1.2300
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/CDde">
<description>Drag_due_to_Elevator_Deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/elevator-pos-norm</property>
<value>0.0300</value>
</product>
</function>
</axis>
<axis name="SIDE">
<function name="aero/coefficient/CYb">
<description>Side_force_due_to_beta</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>aero/beta-rad</property>
<value>-1.0000</value>
</product>
</function>
</axis>
<axis name="LIFT">
<function name="aero/coefficient/CLalpha">
<description>Lift_due_to_alpha</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar>aero/alpha-rad</independentVar>
<tableData>
-0.2000 -0.7500
0.0000 0.2500
0.2300 1.4000
0.6000 0.7100
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/CLde">
<description>Lift_due_to_Elevator_Deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/elevator-pos-rad</property>
<value>0.2000</value>
</product>
</function>
</axis>
<axis name="ROLL">
<function name="aero/coefficient/Clb">
<description>Roll_moment_due_to_beta</description>
<!-- aka dihedral effect -->
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/beta-rad</property>
<value>-0.1000</value>
</product>
</function>
<function name="aero/coefficient/Clp">
<description>Roll_moment_due_to_roll_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/bi2vel</property>
<property>velocities/p-aero-rad_sec</property>
<value>-0.4000</value>
</product>
</function>
<function name="aero/coefficient/Clr">
<description>Roll_moment_due_to_yaw_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/bi2vel</property>
<property>velocities/r-aero-rad_sec</property>
<value>0.1500</value>
</product>
</function>
<function name="aero/coefficient/Clda">
<description>Roll_moment_due_to_aileron</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/left-aileron-pos-rad</property>
<table>
<independentVar>velocities/mach</independentVar>
<tableData>
0.0000 0.1300
2.0000 0.0570
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/Cldr">
<description>Roll_moment_due_to_rudder</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/rudder-pos-rad</property>
<value>0.0100</value>
</product>
</function>
</axis>
<axis name="PITCH">
<function name="aero/coefficient/Cmalpha">
<description>Pitch_moment_due_to_alpha</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>aero/alpha-rad</property>
<value>-0.5000</value>
</product>
</function>
<function name="aero/coefficient/Cmde">
<description>Pitch_moment_due_to_elevator</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>fcs/elevator-pos-rad</property>
<table>
<independentVar>velocities/mach</independentVar>
<tableData>
0.0000 -0.5000 <!-- was -1.1 -->
2.0000 -0.2750
</tableData>
</table>
</product>
</function>
<function name="aero/coefficient/Cmq">
<description>Pitch_moment_due_to_pitch_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>aero/ci2vel</property>
<property>velocities/q-aero-rad_sec</property>
<value>-12.0000</value>
</product>
</function>
<function name="aero/coefficient/Cmadot">
<description>Pitch_moment_due_to_alpha_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>aero/ci2vel</property>
<property>aero/alphadot-rad_sec</property>
<value>-7.0000</value>
</product>
</function>
</axis>
<axis name="YAW">
<function name="aero/coefficient/Cnb">
<description>Yaw_moment_due_to_beta</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/beta-rad</property>
<value>0.1200</value>
</product>
</function>
<function name="aero/coefficient/Cnr">
<description>Yaw_moment_due_to_yaw_rate</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>aero/bi2vel</property>
<property>velocities/r-aero-rad_sec</property>
<value>-0.1500</value>
</product>
</function>
<function name="aero/coefficient/Cndr">
<description>Yaw_moment_due_to_rudder</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/rudder-pos-rad</property>
<value>-0.0500</value>
</product>
</function>
<function name="aero/coefficient/Cnda">
<description>Adverse_yaw</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/left-aileron-pos-rad</property>
<value>-0.0300</value>
</product>
</function>
<function name="aero/coefficient/Cndi">
<description>Yaw_moment_due_to_tail_incidence</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<value>0.0007</value>
</product>
</function>
</axis>
</aerodynamics>
</fdm_config>

View File

@ -1,767 +0,0 @@
<?xml version="1.0"?>
<!-- Generic Autopilot Configuration -->
<!-- Each component is evaluated in the order specified. You can make up -->
<!-- property names to pass the result of one component on to a subsequent -->
<!-- component. -->
<PropertyList>
<!-- =============================================================== -->
<!-- Roll Axis Modes -->
<!-- =============================================================== -->
<!-- Wing leveler -->
<pid-controller>
<name>Wing Leveler (Turn Coordinator based)</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/heading</prop>
<value>wing-leveler</value>
</enable>
<input>
<prop>/orientation/roll-deg</prop>
</input>
<reference>
<value>0.0</value>
</reference>
<output>
<prop>/controls/flight/aileron</prop>
</output>
<config>
<Kp>0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.01</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Bank hold -->
<pid-controller>
<name>Bank Hold</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/heading</prop>
<value>bank-hold</value>
</enable>
<input>
<prop>/orientation/roll-deg</prop>
</input>
<reference>
<prop>/autopilot/settings/target-bank-deg</prop>
</reference>
<output>
<prop>/controls/flight/aileron</prop>
</output>
<config>
<Kp>0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.01</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Heading Bug Hold. 2 stage cascade controller. -->
<!-- Stage #1 sets target roll based on diff between current heading -->
<!-- and heading bug. -->
<pid-controller>
<name>Heading Bug Hold (DG based) Stage 1</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/heading</prop>
<value>dg-heading-hold</value>
</enable>
<input>
<prop>/autopilot/internal/fdm-heading-bug-error-deg</prop>
</input>
<reference>
<value>0.0</value>
</reference>
<output>
<prop>/autopilot/internal/target-roll-deg</prop>
</output>
<config>
<Kp>-0.1</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>10.0</Ti> <!-- integrator time -->
<Td>0.00001</Td> <!-- derivator time -->
<u_min>-20.0</u_min> <!-- minimum output clamp -->
<u_max>20.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Stage #2 drives the ailerons to achieve the desired roll deg. -->
<pid-controller>
<name>Heading Bug Hold (DG based) Stage 2</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/heading</prop>
<value>dg-heading-hold</value>
</enable>
<input>
<prop>/orientation/roll-deg</prop>
</input>
<reference>
<prop>/autopilot/internal/target-roll-deg</prop>
</reference>
<output>
<prop>/controls/flight/aileron</prop>
</output>
<config>
<Kp>0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.01</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- True Heading hold. 2 stage cascade controller. -->
<!-- Stage #1 sets target roll based on diff between current heading -->
<!-- and target heading. -->
<pid-controller>
<name>True Heading Hold (DG based) Stage 1</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/heading</prop>
<value>true-heading-hold</value>
</enable>
<input>
<prop>/autopilot/internal/true-heading-error-deg</prop>
</input>
<reference>
<value>0.0</value>
</reference>
<output>
<prop>/autopilot/internal/target-roll-deg</prop>
</output>
<config>
<Kp>-1.0</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>10.0</Ti> <!-- integrator time -->
<Td>0.00001</Td> <!-- derivator time -->
<u_min>-20.0</u_min> <!-- minimum output clamp -->
<u_max>20.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Stage #2 drives the ailerons to achieve the desired roll deg. -->
<pid-controller>
<name>True Heading Hold (DG based) Stage 2</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/heading</prop>
<value>true-heading-hold</value>
</enable>
<input>
<prop>/orientation/roll-deg</prop>
</input>
<reference>
<prop>/autopilot/internal/target-roll-deg</prop>
</reference>
<output>
<prop>/controls/flight/aileron</prop>
</output>
<config>
<Kp>0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.01</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Nav1 hold. 2 stage cascade controller. -->
<!-- Stage #1 sets target roll based on diff between current heading -->
<!-- and target heading. -->
<pid-controller>
<name>Nav1 Hold Stage 1</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/heading</prop>
<value>nav1-hold</value>
</enable>
<input>
<prop>/autopilot/internal/nav1-heading-error-deg</prop>
</input>
<reference>
<value>0.0</value>
</reference>
<output>
<prop>/autopilot/internal/target-roll-deg</prop>
</output>
<config>
<Kp>-1.0</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>10.0</Ti> <!-- integrator time -->
<Td>0.00001</Td> <!-- derivator time -->
<u_min>-20.0</u_min> <!-- minimum output clamp -->
<u_max>20.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Stage #2 drives the ailerons to achieve the desired roll deg. -->
<pid-controller>
<name>Nav1 Hold Stage 2</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/heading</prop>
<value>nav1-hold</value>
</enable>
<input>
<prop>/orientation/roll-deg</prop>
</input>
<reference>
<prop>/autopilot/internal/target-roll-deg</prop>
</reference>
<output>
<prop>/controls/flight/aileron</prop>
</output>
<config>
<Kp>0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.01</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- =============================================================== -->
<!-- Pitch Axis Modes -->
<!-- =============================================================== -->
<!-- Simple pitch hold -->
<pid-controller>
<name>Pitch hold</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/altitude</prop>
<value>pitch-hold</value>
</enable>
<input>
<prop>/orientation/pitch-deg</prop>
</input>
<reference>
<prop>/autopilot/settings/target-pitch-deg</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Simple pitch hold with yoke -->
<pid-controller>
<name>Pitch hold w/ yoke</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/altitude</prop>
<value>pitch-hold-yoke</value>
</enable>
<input>
<prop>/orientation/pitch-deg</prop>
</input>
<reference>
<prop>/autopilot/settings/target-pitch-deg</prop>
</reference>
<output>
<prop>/controls/flight/elevator</prop>
</output>
<config>
<Kp>-0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Simple angle of attack hold -->
<pid-controller>
<name>AOA hold</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/altitude</prop>
<value>aoa-hold</value>
</enable>
<input>
<prop>/orientation/alpha-deg</prop>
</input>
<reference>
<prop>/autopilot/settings/target-aoa-deg</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Altitude hold. 3 stage cascade controller. -->
<!-- Stage #1 sets target rate of climb based on diff between current alt -->
<!-- and target altitude. -->
<pi-simple-controller>
<name>Altitude Hold (Altimeter based) Stage 1</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/altitude</prop>
<value>altitude-hold</value>
</enable>
<input>
<prop>/position/altitude-ft</prop>
</input>
<reference>
<prop>/autopilot/settings/target-altitude-ft</prop>
</reference>
<output>
<prop>/autopilot/internal/target-climb-rate-fps</prop>
</output>
<config>
<Kp>0.3</Kp> <!-- proportional gain -->
<Ki>0.0</Ki> <!-- integral gain -->
<u_min>-8.33</u_min> <!-- minimum output clamp -->
<u_max>8.33</u_max> <!-- maximum output clamp -->
</config>
</pi-simple-controller>
<!-- Stage #2 drives the target-pitch to achieve the desired climb -->
<!-- rate. -->
<pid-controller>
<name>Altitude Hold (Altimeter based) Stage 2</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/altitude</prop>
<value>altitude-hold</value>
</enable>
<input>
<prop>/velocities/vertical-speed-fps</prop>
</input>
<reference>
<prop>/autopilot/internal/target-climb-rate-fps</prop>
</reference>
<output>
<prop>/autopilot/settings/target-pitch-deg</prop>
</output>
<config>
<Kp>0.5</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>1.0</Ti> <!-- integrator time -->
<Td>0.00001</Td> <!-- derivator time -->
<u_min>-5.0</u_min> <!-- minimum output clamp -->
<u_max>5.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Stage #3 drives the elevator trim to achieve the desired pitch -->
<!-- angle -->
<pid-controller>
<name>Pitch hold</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/altitude</prop>
<value>altitude-hold</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/orientation/pitch-deg</prop>
</input>
<reference>
<prop>/autopilot/settings/target-pitch-deg</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- AGL hold. 2 stage cascade controller. -->
<!-- Stage #1 sets target rate of climb based on diff between current agl -->
<!-- and target agl. -->
<pid-controller>
<name>AGL Hold (Altimeter based) Stage 1</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/altitude</prop>
<value>agl-hold</value>
</enable>
<input>
<prop>/position/altitude-agl-ft</prop>
</input>
<reference>
<prop>/autopilot/settings/target-agl-ft</prop>
</reference>
<output>
<prop>/autopilot/internal/target-climb-rate-fps</prop>
</output>
<config>
<Kp>1.0</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>25.0</Ti> <!-- integrator time -->
<Td>0.000000001</Td> <!-- derivator time -->
<u_min>-16.67</u_min> <!-- minimum output clamp -->
<u_max>8.33</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Stage #2 drives the elevator-trim to achieve the desired climb rate. -->
<pid-controller>
<name>Altitude Hold (Altimeter based) Stage 2</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/altitude</prop>
<value>agl-hold</value>
</enable>
<input>
<prop>/velocities/vertical-speed-fps</prop>
</input>
<reference>
<prop>/autopilot/internal/target-climb-rate-fps</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Glideslope hold. -->
<!-- Stage #2 drives the elevator-trim to achieve the desired climb rate. -->
<pid-controller>
<name>Glideslop Hold</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/altitude</prop>
<value>gs1-hold</value>
</enable>
<input>
<prop>/velocities/vertical-speed-fps</prop>
</input>
<reference>
<prop>/instrumentation/nav[0]/gs-rate-of-climb</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- =============================================================== -->
<!-- Velocity Modes -->
<!-- =============================================================== -->
<!-- Auto throttle -->
<pid-controller>
<name>Auto Throttle (5 sec lookahead)</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/speed</prop>
<value>speed-with-throttle</value>
</enable>
<input>
<!-- <prop>/autopilot/internal/lookahead-5-sec-airspeed-kt</prop> -->
<prop>/velocities/airspeed-kt</prop>
</input>
<reference>
<prop>/autopilot/settings/target-speed-kt</prop>
</reference>
<output>
<prop>/controls/engines/engine[0]/throttle</prop>
<prop>/controls/engines/engine[1]/throttle</prop>
<prop>/controls/engines/engine[2]/throttle</prop>
<prop>/controls/engines/engine[3]/throttle</prop>
<prop>/controls/engines/engine[4]/throttle</prop>
<prop>/controls/engines/engine[5]/throttle</prop>
<prop>/controls/engines/engine[6]/throttle</prop>
<prop>/controls/engines/engine[7]/throttle</prop>
</output>
<config>
<Kp>0.1</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>1.0</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>0.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Hold speed by varying pitch trim (Two stage cascading controller) -->
<pid-controller>
<name>Speed hold (vary pitch trim) Stage #1</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/speed</prop>
<value>speed-with-pitch-trim</value>
</enable>
<input>
<!-- <prop>/autopilot/internal/lookahead-5-sec-airspeed-kt</prop> -->
<prop>/velocities/airspeed-kt</prop>
</input>
<reference>
<prop>/autopilot/settings/target-speed-kt</prop>
</reference>
<output>
<prop>/autopilot/settings/target-pitch-deg</prop>
</output>
<config>
<Kp>-1.0</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>2.0</Ti> <!-- integrator time -->
<Td>0.00001</Td> <!-- derivator time -->
<u_min>-15.0</u_min><!-- minimum output clamp -->
<u_max>15.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<pid-controller>
<name>Speed hold (vary pitch trim) Stage #2</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/speed</prop>
<value>speed-with-pitch-trim</value>
</enable>
<input>
<prop>/orientation/pitch-deg</prop>
</input>
<reference>
<prop>/autopilot/settings/target-pitch-deg</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Hold speed by varying elevator (2 stage cascading controller)-->
<!-- Stage 1, command a forward acceleration rate based on velocity error -->
<pi-simple-controller>
<name>Speed hold (vary elevator)</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/speed</prop>
<value>speed-with-pitch-yoke</value>
</enable>
<input>
<prop>/velocities/airspeed-kt</prop>
</input>
<reference>
<prop>/autopilot/settings/target-speed-kt</prop>
</reference>
<output>
<prop>/autopilot/settings/target-accel-ktps</prop>
</output>
<config>
<Kp>0.2</Kp> <!-- proportional gain -->
<Ki>0.0</Ki> <!-- integral gain -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pi-simple-controller>
<!-- Stage 2, command elevator to achieve target acceleration rate -->
<pid-controller>
<name>Speed hold (vary elevator)</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/speed</prop>
<value>speed-with-pitch-yoke</value>
</enable>
<input>
<prop>/accelerations/airspeed-ktps</prop>
</input>
<reference>
<prop>//autopilot/settings/target-accel-ktps</prop>
</reference>
<output>
<prop>/controls/flight/elevator</prop>
</output>
<config>
<Kp>0.02</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>8.0</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>-0.25</u_min> <!-- minimum output clamp -->
<u_max>0.25</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<!-- Hold speed by varying pitch via yoke (Two stage cascading controller) -->
<pid-controller>
<name>Speed hold (vary pitch via yoke) Stage #1</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/speed</prop>
<value>speed-with-pitch-yoke-pitch</value>
</enable>
<input>
<!-- <prop>/autopilot/internal/lookahead-5-sec-airspeed-kt</prop> -->
<prop>/velocities/airspeed-kt</prop>
</input>
<reference>
<prop>/autopilot/settings/target-speed-kt</prop>
</reference>
<output>
<prop>/autopilot/settings/target-pitch-deg</prop>
</output>
<config>
<Kp>-1.0</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>2.0</Ti> <!-- integrator time -->
<Td>0.00001</Td> <!-- derivator time -->
<u_min>-15.0</u_min><!-- minimum output clamp -->
<u_max>15.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
<pid-controller>
<name>Speed hold (vary pitch via yoke) Stage #2</name>
<debug>false</debug>
<enable>
<prop>/autopilot/locks/speed</prop>
<value>speed-with-pitch-yoke-pitch</value>
</enable>
<input>
<prop>/orientation/pitch-deg</prop>
</input>
<reference>
<prop>/autopilot/settings/target-pitch-deg</prop>
</reference>
<output>
<prop>/controls/flight/elevator</prop>
</output>
<config>
<Kp>-0.05</Kp> <!-- proportional gain -->
<beta>1.0</beta> <!-- input value weighing factor -->
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
<gamma>0.0</gamma> <!-- input value weighing factor for -->
<!-- unfiltered derivative error -->
<Ti>0.5</Ti> <!-- integrator time -->
<Td>0.001</Td> <!-- derivator time -->
<u_min>-1.0</u_min> <!-- minimum output clamp -->
<u_max>1.0</u_max> <!-- maximum output clamp -->
</config>
</pid-controller>
</PropertyList>

View File

@ -1,72 +0,0 @@
var last_time = 0.0;
var last_speed = 0.0;
var speed_sensed = 0.0;
var sensor_step = 1.0;
var speed_filt = 0.0;
var accel_filt = 0.0;
var compute_airspeed_accel = func( speed_filt, dt ) {
# print ( "computing forward acceleration ", dt );
var delta_speed = speed_filt - last_speed;
last_speed = speed_filt;
var accel = delta_speed / dt;
return accel;
}
var update_airdata = func( dt ) {
# crude model of a noisy electronic pitot tube
sensed_speed = getprop("/velocities/airspeed-kt");
var r = rand();
if ( r < 0.3333 ) {
sensed_speed = sensed_speed - sensor_step;
} elsif ( r > 0.6666 ) {
sensed_speed = sensed_speed + sensor_step;
}
speed_filt = 0.97 * speed_filt + 0.03 * sensed_speed;
var sensed_accel = 0.0;
if ( dt > 0 ) {
sensed_accel = compute_airspeed_accel( speed_filt, dt );
}
accel_filt = 0.97 * accel_filt + 0.03 * sensed_accel;
setprop("/accelerations/airspeed-ktps", accel_filt);
}
round10 = func(v) {
if (v == nil) return 0;
return 0.1*int(v*10);
}
round100 = func(v) {
if (v == nil) return 0;
return 0.01*int(v*100);
}
var update_vars = func( dt ) {
asl_ft = getprop("/position/altitude-ft");
ground = getprop("/position/ground-elev-ft");
agl_m = (asl_ft - ground) * 0.3048;
setprop("/apm/altitude", round10(agl_m));
setprop("/apm/pitch", round10(getprop("/orientation/pitch-deg")));
setprop("/apm/roll", round10(getprop("/orientation/roll-deg")));
setprop("/apm/heading", round10(getprop("/orientation/heading-deg")));
setprop("/apm/aileron", round100(getprop("/surface-positions/right-aileron-pos-norm")));
setprop("/apm/elevator", round100(getprop("/surface-positions/elevator-pos-norm")));
setprop("/apm/rudder", round100(getprop("/surface-positions/rudder-pos-norm")));
setprop("/apm/throttle", round10(getprop("/engines/engine/rpm")));
setprop("/apm/groundspeed", round10(0.514444444*getprop("/instrumentation/gps/indicated-ground-speed-kt")));
# airspeed-kt is actually in feet per second (FDM NET bug)
setprop("/apm/airspeed", round10(0.3048*getprop("/velocities/airspeed-kt")));
}

View File

@ -1,140 +0,0 @@
<?xml version="1.0"?>
<!-- The cub doesn't really have an electrical system but let's give -->
<!-- it a little bit of something since we don't have a virtual ground -->
<!-- crew to go out and flip the prop for us. -->
<PropertyList>
<!-- Supplier list -->
<supplier>
<name>Battery 1</name>
<prop>/systems/electrical/suppliers/battery[0]</prop>
<kind>battery</kind>
<volts>28</volts> <!-- needs to be > 24.5, but this is a guess -->
<amps>60</amps> <!-- I have no idea! -->
</supplier>
<supplier>
<name>Alternator 1</name>
<prop>/systems/electrical/suppliers/alternator[0]</prop>
<kind>alternator</kind>
<rpm-source>/engines/engine[0]/rpm</rpm-source>
<volts>28</volts> <!-- stubbed in -->
<amps>60</amps> <!-- from the 172S Skyhawk Information Manual -->
</supplier>
<!-- Bus list -->
<bus>
<name>Master Bus</name>
<prop>/systems/electrical/outputs/bus[0]</prop>
<prop>/systems/electrical/outputs/transponder</prop>
</bus>
<!-- Generic Outputs -->
<output>
<name>Starter 1 Power</name>
<prop>/systems/electrical/outputs/starter[0]</prop>
</output>
<output>
<name>Landing Light Power</name>
<prop>/systems/electrical/outputs/landing-light</prop>
</output>
<output>
<name>Beacon Power</name>
<prop>/systems/electrical/outputs/beacon</prop>
</output>
<output>
<name>Strobe Lights Power</name>
<prop>/systems/electrical/outputs/strobe-lights</prop>
</output>
<output>
<name>Taxi Lights Power</name>
<prop>/systems/electrical/outputs/taxi-lights</prop>
</output>
<output>
<name>Pitot Heat Power</name>
<prop>/systems/electrical/outputs/pitot-heat</prop>
</output>
<!-- connect in power sources -->
<connector>
<input>Alternator 1</input>
<output>Master Bus</output>
<switch>
<prop>/controls/engines/engine[0]/master-alt</prop>
</switch>
</connector>
<connector>
<input>Battery 1</input>
<output>Master Bus</output>
<switch>
<prop>/controls/engines/engine[0]/master-bat</prop>
</switch>
</connector>
<!-- connect starter output -->
<connector>
<input>Master Bus</input>
<output>Starter 1 Power</output>
<switch>
<prop>/controls/engines/engine[0]/starter</prop>
<initial-state>off</initial-state>
</switch>
</connector>
<!-- connect master bus outputs -->
<connector>
<input>Master Bus</input>
<output>Landing Light Power</output>
<switch>
<prop>/controls/switches/landing-light</prop>
</switch>
</connector>
<connector>
<input>Master Bus</input>
<output>Beacon Power</output>
<switch>
<prop>/controls/switches/flashing-beacon</prop>
</switch>
</connector>
<connector>
<input>Master Bus</input>
<output>Strobe Lights Power</output>
<switch>
<prop>/controls/switches/strobe-lights</prop>
</switch>
</connector>
<connector>
<input>Master Bus</input>
<output>Taxi Lights Power</output>
<switch>
<prop>/controls/switches/taxi-lights</prop>
</switch>
</connector>
<connector>
<input>Master Bus</input>
<output>Pitot Heat Power</output>
<switch>
<prop>/controls/switches/pitot-heat</prop>
</switch>
</connector>
</PropertyList>

View File

@ -1,23 +0,0 @@
var dialog = gui.Dialog.new("/sim/gui/dialogs/rascal/config/dialog",
"Aircraft/Rascal/Dialogs/config.xml");
var last_time = 0.0;
var main_loop = func {
var time = getprop("/sim/time/elapsed-sec");
var dt = time - last_time;
last_time = time;
update_airdata( dt );
update_vars( dt );
update_ugear( dt );
settimer(main_loop, 0);
}
setlistener("/sim/signals/fdm-initialized",
func {
main_loop();
});

View File

@ -1,54 +0,0 @@
var update_ugear = func( dt ) {
var max_zoom_rate = 10*dt;
var max_pan_rate = 30*dt;
var max_tilt_rate = 45*dt;
var ap_enable = props.globals.getNode("/ugear/settings/ap-enable");
if ( ap_enable == nil ) {
props.globals.initNode("/ugear/settings/ap-enable", 0, "BOOL", 1);
ap_enable = props.globals.getNode("/ugear/settings/ap-enable");
}
if ( ap_enable.getBoolValue() ) {
setprop( "/controls/flight/aileron", getprop("/ugear/act/aileron") );
setprop( "/controls/flight/elevator", getprop("/ugear/act/elevator") );
}
var turret_enable = props.globals.getNode("/ugear/settings/turret-enable");
if ( turret_enable == nil ) {
props.globals.initNode("/ugear/settings/turret-enable", 0, "BOOL", 1);
turret_enable = props.globals.getNode("/ugear/settings/turret-enable");
}
if ( (getprop("/sim/current-view/name") == "Camera View")
and turret_enable.getBoolValue() )
{
var target_zoom = getprop("/ugear/act/channel6");
var target_pan = -getprop("/ugear/act/channel7");
if ( target_pan < -180.0 ) { target_pan += 360.0; }
if ( target_pan > 180.0 ) { target_pan -= 360.0; }
var target_tilt = -getprop("/ugear/act/channel8");
var cur_zoom = getprop("/sim/current-view/field-of-view");
var cur_pan = getprop("/sim/current-view/heading-offset-deg");
var cur_tilt = getprop("/sim/current-view/pitch-offset-deg");
var diff = 0.0;
diff = target_zoom - cur_zoom;
if ( diff > max_zoom_rate ) { diff = max_zoom_rate; }
if ( diff < -max_zoom_rate ) { diff = -max_zoom_rate; }
setprop("/sim/current-view/field-of-view", cur_zoom + diff);
diff = target_pan - cur_pan;
if ( diff > 180 ) { diff -= 360; }
if ( diff < -180 ) { diff += 360; }
if ( diff > max_pan_rate ) { diff = max_pan_rate; }
if ( diff < -max_pan_rate ) { diff = -max_pan_rate; }
setprop("/sim/current-view/heading-offset-deg", cur_pan + diff);
diff = target_tilt - cur_tilt;
if ( diff > 90 ) { diff = 90; }
if ( diff < -90 ) { diff = -90; }
if ( diff > max_tilt_rate ) { diff = max_tilt_rate; }
if ( diff < -max_tilt_rate ) { diff = -max_tilt_rate; }
setprop("/sim/current-view/pitch-offset-deg", cur_tilt + diff);
}
}

View File

@ -1,11 +0,0 @@
<?xml version="1.0"?>
<initialize name="Start up at Canberra Model Aircraft Club">
<latitude unit="DEG"> -35.362851 </latitude>
<longitude unit="DEG"> 149.165223 </longitude>
<altitude unit="M"> 0 </altitude>
<vt unit="FT/SEC"> 0.0 </vt>
<gamma unit="DEG"> 0.0 </gamma>
<phi unit="DEG"> 0.0 </phi>
<theta unit="DEG"> 0.0 </theta>
<psi unit="DEG"> 0.0 </psi>
</initialize>

View File

@ -1,4 +0,0 @@
<?xml version="1.0"?>
<electric_engine name="a2830-12">
<power unit="WATTS"> 187 </power>
</electric_engine>

View File

@ -1,76 +0,0 @@
<?xml version="1.0"?>
<!-- Generated by Aero-Matic v 1.1
Inputs:
horsepower: 0.250767
pitch: fixed
max engine rpm: 9435
prop diameter (ft): 0.83333333333333
Outputs:
max prop rpm: 22515.60
gear ratio: 0.42
Cp0: 0.002731
Ct0: 0.003823
static thrust (lbs): 0.66
-->
<propeller name="prop">
<!--<ixx> 0.00 </ixx>-->
<ixx> 0.000041666666 </ixx>
<!--assuming solid rod of mass 8 g-->
<diameter unit="IN"> 10.0 </diameter>
<numblades> 2 </numblades>
<gearratio> 1.0 </gearratio>
<p_factor> 0.79 </p_factor>
<table name="C_THRUST" type="internal">
<tableData><!--experimentally measured-->
0.0 0.0054513
1.4 0.0054513
<!--aeromatic generated-->
<!--0.0 0.0042-->
<!--0.1 0.0040-->
<!--0.2 0.0038-->
<!--0.3 0.0035-->
<!--0.4 0.0032-->
<!--0.5 0.0028-->
<!--0.6 0.0023-->
<!--0.7 0.0017-->
<!--0.8 0.0009-->
<!--1.0 -0.0003-->
<!--1.2 -0.0016-->
<!--1.4 -0.0030-->
</tableData>
</table>
<table name="C_POWER" type="internal">
<tableData>
0.0 0.0028
0.1 0.0028
0.2 0.0027
0.3 0.0027
0.4 0.0025
0.5 0.0023
0.6 0.0021
0.7 0.0018
0.8 0.0015
1.0 0.0005
1.2 -0.0008
1.4 -0.0025
1.6 -0.0042
</tableData>
</table>
<!-- thrust effects of helical tip Mach -->
<table name="CT_MACH" type="internal">
<tableData>
0.85 1.0
1.05 0.8
</tableData>
</table>
<!-- power-required effects of helical tip Mach -->
<table name="CP_MACH" type="internal">
<tableData>
0.85 1.0
1.05 1.8
2.00 1.4
</tableData>
</table>
</propeller>

View File

@ -1,88 +0,0 @@
<?xml version="1.0"?>
<PropertyList>
<!--Airframe-->
<path>arducopter.ac</path>
<offsets>
<z-m>0.0</z-m>
<y-m>0</y-m>
<x-m>0.0</x-m>
<pitch-deg>0</pitch-deg>
<heading-deg>180</heading-deg>
</offsets>
<!--Propeller Right-->
<animation>
<type>noshadow</type>
<object-name>propeller0</object-name>
</animation>
<animation>
<type>spin</type>
<object-name>propeller0</object-name>
<property>/engines/engine[0]/rpm</property>
<factor>100</factor>
<axis>
<x1-m>0.000</x1-m>
<y1-m>-0.288</y1-m>
<z1-m>0.046</z1-m>
<x2-m>0.000</x2-m>
<y2-m>-0.288</y2-m>
<z2-m>0.012</z2-m>
</axis>
</animation>
<!--Propeller Left-->
<animation>
<type>noshadow</type>
<object-name>propeller1</object-name>
</animation>
<animation>
<type>spin</type>
<object-name>propeller1</object-name>
<property>/engines/engine[1]/rpm</property>
<factor>100</factor>
<axis>
<x1-m>0.000</x1-m>
<y1-m>0.288</y1-m>
<z1-m>0.046</z1-m>
<x2-m>0.000</x2-m>
<y2-m>0.288</y2-m>
<z2-m>0.012</z2-m>
</axis>
</animation>
<!--Propeller Front-->
<animation>
<type>noshadow</type>
<object-name>propeller2</object-name>
</animation>
<animation>
<type>spin</type>
<object-name>propeller2</object-name>
<property>/engines/engine[2]/rpm</property>
<factor>100</factor>
<axis>
<x1-m>0.288</x1-m>
<y1-m>0.000</y1-m>
<z1-m>0.046</z1-m>
<x2-m>0.288</x2-m>
<y2-m>0.000</y2-m>
<z2-m>0.012</z2-m>
</axis>
</animation>
<!--Propeller Back-->
<animation>
<type>noshadow</type>
<object-name>propeller3</object-name>
</animation>
<animation>
<type>spin</type>
<object-name>propeller3</object-name>
<property>/engines/engine[3]/rpm</property>
<factor>100</factor>
<axis>
<x1-m>-0.288</x1-m>
<y1-m>0.000</y1-m>
<z1-m>0.046</z1-m>
<x2-m>-0.288</x2-m>
<y2-m>0.000</y2-m>
<z2-m>0.012</z2-m>
</axis>
</animation>
</PropertyList>

View File

@ -1,88 +0,0 @@
<?xml version="1.0"?>
<PropertyList>
<!--Airframe-->
<path>plus_quad2.ac</path>
<offsets>
<z-m>0.0</z-m>
<y-m>0</y-m>
<x-m>0.0</x-m>
<pitch-deg>0</pitch-deg>
<heading-deg>180</heading-deg>
</offsets>
<!--Propeller Right-->
<animation>
<type>noshadow</type>
<object-name>prop0</object-name>
</animation>
<animation>
<type>spin</type>
<object-name>prop0</object-name>
<property>/controls/engines/engine[0]/throttle</property>
<factor>12000</factor>
<axis>
<x1-m>0.000</x1-m>
<y1-m>-0.288</y1-m>
<z1-m>0.046</z1-m>
<x2-m>0.000</x2-m>
<y2-m>-0.288</y2-m>
<z2-m>0.012</z2-m>
</axis>
</animation>
<!--Propeller Left-->
<animation>
<type>noshadow</type>
<object-name>prop1</object-name>
</animation>
<animation>
<type>spin</type>
<object-name>prop1</object-name>
<property>/controls/engines/engine[1]/throttle</property>
<factor>12000</factor>
<axis>
<x1-m>0.000</x1-m>
<y1-m>0.288</y1-m>
<z1-m>0.046</z1-m>
<x2-m>0.000</x2-m>
<y2-m>0.288</y2-m>
<z2-m>0.012</z2-m>
</axis>
</animation>
<!--Propeller Front-->
<animation>
<type>noshadow</type>
<object-name>prop2</object-name>
</animation>
<animation>
<type>spin</type>
<object-name>prop2</object-name>
<property>/controls/engines/engine[2]/throttle</property>
<factor>12000</factor>
<axis>
<x1-m>0.288</x1-m>
<y1-m>0.000</y1-m>
<z1-m>0.046</z1-m>
<x2-m>0.288</x2-m>
<y2-m>0.000</y2-m>
<z2-m>0.012</z2-m>
</axis>
</animation>
<!--Propeller Back-->
<animation>
<type>noshadow</type>
<object-name>prop3</object-name>
</animation>
<animation>
<type>spin</type>
<object-name>prop3</object-name>
<property>/controls/engines/engine[3]/throttle</property>
<factor>12000</factor>
<axis>
<x1-m>-0.288</x1-m>
<y1-m>0.000</y1-m>
<z1-m>0.046</z1-m>
<x2-m>-0.288</x2-m>
<y2-m>0.000</y2-m>
<z2-m>0.012</z2-m>
</axis>
</animation>
</PropertyList>

View File

@ -1,3 +0,0 @@
This model is based on the arducopter mode from James Goppert, and
adapted for use in the ArduPilot test system. Many thanks to all who
have contributed!

View File

@ -1,94 +0,0 @@
<?xml version="1.0"?>
<!--
************************************************************************
Arducotper UAV Model
************************************************************************
-->
<PropertyList>
<sim>
<description>Arducopter UAV (R/C)</description>
<author>James Goppert</author>
<aircraft-version>0.0</aircraft-version>
<status>experimental</status>
<flight-model>jsb</flight-model>
<aero>arducopter</aero>
<model-hz>50</model-hz>
<sound>
<path>Aircraft/Generic/generic-sound.xml</path>
</sound>
<panel>
<visibility archive="n">false</visibility>
</panel>
<model>
<path archive="y">Aircraft/arducopter/Models/arducopter.xml</path>
</model>
<view>
<internal archive="y">true</internal>
<config>
<x-offset-m archive="y">0.0</x-offset-m>
<y-offset-m archive="y">0.15</y-offset-m>
<z-offset-m archive="y">0.90</z-offset-m>
<pitch-offset-deg>0</pitch-offset-deg>
</config>
</view>
<chase-distance-m archive="y" type="double">-5.5</chase-distance-m>
<help>
<title>arducopter UAV</title>
<line>Cruise speed: ? mph</line>
<line>Never-exceed (Vne): ? mph</line>
<line>Best Glide (Vglide): ? mph</line>
<line>Maneuvering (Va): ? mph</line>
<line>Approach speed: ? mph</line>
<line>Stall speed (Vs): ? mph</line>
</help>
<startup>
<splash-title>Arducopter UAV DIY Drones/ OPENMAV</splash-title>
<splash-texture>Aircraft/arducopter/arducopter.jpg</splash-texture>
</startup>
</sim>
<controls>
<flight>
<aileron-trim>0.00</aileron-trim>
<!-- fixed -->
<elevator-trim>0.00</elevator-trim>
<!-- controllable -->
</flight>
</controls>
<consumables>
<fuel>
<tank n="0">
<level-gal_us>0</level-gal_us>
</tank>
</fuel>
</consumables>
<payload>
<weight>
<name type="string">Payload</name>
<weight-lb alias="/fdm/jsbsim/inertia/pointmass-weight-lbs[0]"/>
<min-lb type="double">0.0</min-lb>
<max-lb type="double">1.0</max-lb>
</weight>
</payload>
<nasal>
<arducopter>
<file>Aircraft/arducopter/quad.nas</file>
<script>
setlistener("/sim/signals/fdm-initialized", func {
var left = screen.display.new(20, 10);
left.add("/apm/motor_right");
left.add("/apm/motor_left");
left.add("/apm/motor_front");
left.add("/apm/motor_back");
var right = screen.display.new(-250, 20);
right.add("/apm/altitude");
right.add("/apm/roll");
right.add("/apm/pitch");
right.add("/apm/heading");
right.add("/apm/airspeed");
});
</script>
</arducopter>
</nasal>
</PropertyList>
<!-- vim:sw=4:ts=4:expandtab -->

View File

@ -1,248 +0,0 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="http://jsbsim.sourceforge.net/JSBSim.xsl"?>
<fdm_config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="dflyer" version="2.0" release="ALPHA" xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<fileheader>
<author> James Goppert </author>
<filecreationdate> 2010-03-11 </filecreationdate>
<version>0.0 </version>
<description> Arducopter DIY Drones UAV. </description>
</fileheader>
<metrics>
<wingarea unit="M2"> 0.017</wingarea>
<wingspan unit="M"> 0.13 </wingspan>
<chord unit="FT"> 0.0 </chord>
<htailarea unit="FT2"> 0.0 </htailarea>
<htailarm unit="FT"> 0.0 </htailarm>
<vtailarea unit="FT2"> 0.0 </vtailarea>
<vtailarm unit="FT"> 0.0 </vtailarm>
<location name="AERORP" unit="IN">
<x> 0.00 </x>
<y> 0.00 </y>
<z> 0.00 </z>
</location>
<location name="EYEPOINT" unit="IN">
<x> 0.0 </x>
<y> 0.0 </y>
<z> 0.0 </z>
</location>
<location name="VRP" unit="IN">
<x>0</x>
<y>0</y>
<z>0</z>
</location>
</metrics>
<mass_balance>
<!--roughtly approximating this as a solid sphere with correct mass-->
<ixx unit="KG*M2"> 0.036 </ixx>
<iyy unit="KG*M2"> 0.036 </iyy>
<izz unit="KG*M2"> 0.036 </izz>
<emptywt unit="KG"> 1.0 </emptywt>
<location name="CG" unit="IN">
<x> 0.0 </x>
<y> 0.0 </y>
<z> 0.0 </z>
</location>
<pointmass name="Payload">
<weight unit="KG"> 0.0 </weight>
<location unit="IN">
<x> 0.0 </x>
<y> 0.0 </y>
<z> 0.0 </z>
</location>
</pointmass>
</mass_balance>
<ground_reactions>
<contact type="BOGEY" name="frontbase">
<location unit="M">
<x> -0.283 </x>
<y> 0.00 </y>
<z> -0.033</z>
</location>
<static_friction> 0.80 </static_friction>
<dynamic_friction> 0.50 </dynamic_friction>
<spring_coeff unit="N/M"> 800 </spring_coeff>
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
</contact>
<contact type="BOGEY" name="rearbase">
<location unit="M">
<x> 0.283 </x>
<y> 0.00 </y>
<z> -0.033</z>
</location>
<static_friction> 0.80 </static_friction>
<dynamic_friction> 0.50 </dynamic_friction>
<spring_coeff unit="N/M"> 800 </spring_coeff>
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
</contact>
<contact type="BOGEY" name="leftbase">
<location unit="M">
<x> 0.00 </x>
<y> 0.283 </y>
<z> -0.033</z>
</location>
<static_friction> 0.80 </static_friction>
<dynamic_friction> 0.50 </dynamic_friction>
<spring_coeff unit="N/M"> 800 </spring_coeff>
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
</contact>
<contact type="BOGEY" name="rightbase">
<location unit="M">
<x> 0.00 </x>
<y> -0.283 </y>
<z> -0.033</z>
</location>
<static_friction> 0.80 </static_friction>
<dynamic_friction> 0.50 </dynamic_friction>
<spring_coeff unit="N/M"> 800 </spring_coeff>
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
</contact>
</ground_reactions>
<!-- the front and rear motors spin clockwise, and the left and right motors spin counter-clockwise. -->
<propulsion>
<engine file="a2830-12" name="front">
<location unit="M">
<x> -0.283 </x>
<y> 0.00 </y>
<z> 0.00 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<feed>0</feed>
<thruster file="prop10x4.5">
<location unit="M">
<x> -0.283 </x>
<y> 0.00 </y>
<z> 0.125 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<sense> 1 </sense>
<p_factor> 10 </p_factor>
</thruster>
</engine>
<engine file="a2830-12" name="rear">
<location unit="M">
<x> 0.283 </x>
<y> 0.000 </y>
<z> 0.000 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<feed>0</feed>
<thruster file="prop10x4.5">
<location unit="M">
<x> 0.283 </x>
<y> 0.000 </y>
<z> 0.125 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<sense> 1 </sense>
<p_factor> 10 </p_factor>
</thruster>
</engine>
<engine file="a2830-12" name="left">
<location unit="M">
<x> 0.00 </x>
<y> 0.283 </y>
<z> 0.00 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<feed>0</feed>
<thruster file="prop10x4.5">
<location unit="M">
<x> 0.00 </x>
<y> 0.283 </y>
<z> 0.125 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<sense> -1 </sense>
<p_factor> 10 </p_factor>
</thruster>
</engine>
<engine file="a2830-12" name="right">
<location unit="M">
<x> 0.000 </x>
<y> -0.283 </y>
<z> 0.000 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<feed>0</feed>
<thruster file="prop10x4.5">
<location unit="M">
<x> 0.000 </x>
<y> -0.283 </y>
<z> 0.125 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<sense> -1 </sense>
<p_factor> 10 </p_factor>
</thruster>
</engine>
<tank type="FUEL" number="0">
<location unit="M">
<x> 0.00 </x>
<y> 0.00 </y>
<z> -0.07 </z>
</location>
<!--have to have a fuel capacity, so setting it small-->
<capacity unit="KG"> 0.00000000001 </capacity>
<contents unit="KG"> 0.0 </contents>
</tank>
</propulsion>
<aerodynamics>
<axis name="LIFT">
</axis>
<axis name="DRAG">
<function name="aero/coefficient/CD0">
<description>Overall Drag</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<value>1</value>
</product>
</function>
</axis>
<axis name="SIDE">
</axis>
<axis name="ROLL">
</axis>
<axis name="PITCH">
</axis>
<axis name="YAW">
</axis>
</aerodynamics>
</fdm_config>
<!-- vim:ts=2:sw=2:expandtab -->

View File

@ -1,12 +0,0 @@
<?xml version="1.0"?>
<initialize name="reset00">
<ubody unit="M/SEC"> nan </ubody>
<vbody unit="M/SEC"> nan </vbody>
<wbody unit="M/SEC"> nan </wbody>
<phi unit="DEG"> nan </phi>
<theta unit="DEG"> -nan </theta>
<psi unit="DEG"> nan </psi>
<longitude unit="DEG"> nan </longitude>
<latitude unit="DEG"> nan </latitude>
<altitude unit="M"> nan </altitude>
</initialize>

View File

@ -1,93 +0,0 @@
<?xml version="1.0"?>
<!--
************************************************************************
Arducotper UAV Model
************************************************************************
-->
<PropertyList>
<sim>
<description>Arducopter UAV (R/C) (plus quad)</description>
<author>James Goppert</author>
<aircraft-version>0.0</aircraft-version>
<status>experimental</status>
<flight-model>jsb</flight-model>
<aero>plus_quad2</aero>
<model-hz>50</model-hz>
<sound>
<path>Aircraft/Generic/generic-sound.xml</path>
</sound>
<panel>
<visibility archive="n">false</visibility>
</panel>
<model>
<path archive="y">Aircraft/arducopter/Models/plus_quad2.xml</path>
</model>
<view>
<internal archive="y">true</internal>
<config>
<x-offset-m archive="y">0.0</x-offset-m>
<y-offset-m archive="y">0.15</y-offset-m>
<z-offset-m archive="y">0.90</z-offset-m>
<pitch-offset-deg>0</pitch-offset-deg>
</config>
</view>
<chase-distance-m archive="y" type="double">-5.5</chase-distance-m>
<help>
<title>plus_quad UAV</title>
<line>Cruise speed: ? mph</line>
<line>Never-exceed (Vne): ? mph</line>
<line>Best Glide (Vglide): ? mph</line>
<line>Maneuvering (Va): ? mph</line>
<line>Approach speed: ? mph</line>
<line>Stall speed (Vs): ? mph</line>
</help>
<startup>
<splash-title>Arducopter UAV DIY Drones/ OPENMAV</splash-title>
<splash-texture>Aircraft/arducopter/arducopter.jpg</splash-texture>
</startup>
</sim>
<controls>
<flight>
<aileron-trim>0.00</aileron-trim>
<!-- fixed -->
<elevator-trim>0.00</elevator-trim>
<!-- controllable -->
</flight>
</controls>
<consumables>
<fuel>
<tank n="0">
<level-gal_us>0</level-gal_us>
</tank>
</fuel>
</consumables>
<payload>
<weight>
<name type="string">Payload</name>
<weight-lb alias="/fdm/jsbsim/inertia/pointmass-weight-lbs[0]"/>
<min-lb type="double">0.0</min-lb>
<max-lb type="double">1.0</max-lb>
</weight>
</payload>
<nasal>
<plus_quad2>
<script>
setlistener("/sim/signals/fdm-initialized", func {
var left = screen.display.new(20, 10);
left.add("/controls/engines/engine[0]/throttle");
left.add("/controls/engines/engine[1]/throttle");
left.add("/controls/engines/engine[2]/throttle");
left.add("/controls/engines/engine[3]/throttle");
var right = screen.display.new(-250, 20);
right.add("/position/altitude-agl-ft");
right.add("/orientation/roll-deg");
right.add("/orientation/pitch-deg");
right.add("/orientation/heading-deg");
right.add("/instrumentation/gps/indicated-ground-speed-kt");
});
</script>
</plus_quad2>
</nasal>
</PropertyList>
<!-- vim:sw=4:ts=4:expandtab -->

View File

@ -1,248 +0,0 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="http://jsbsim.sourceforge.net/JSBSim.xsl"?>
<fdm_config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="dflyer" version="2.0" release="ALPHA" xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<fileheader>
<author> James Goppert </author>
<filecreationdate> 2010-03-11 </filecreationdate>
<version>0.0 </version>
<description> Arducopter DIY Drones UAV. </description>
</fileheader>
<metrics>
<wingarea unit="M2"> 0.017</wingarea>
<wingspan unit="M"> 0.13 </wingspan>
<chord unit="FT"> 0.0 </chord>
<htailarea unit="FT2"> 0.0 </htailarea>
<htailarm unit="FT"> 0.0 </htailarm>
<vtailarea unit="FT2"> 0.0 </vtailarea>
<vtailarm unit="FT"> 0.0 </vtailarm>
<location name="AERORP" unit="IN">
<x> 0.00 </x>
<y> 0.00 </y>
<z> 0.00 </z>
</location>
<location name="EYEPOINT" unit="IN">
<x> 0.0 </x>
<y> 0.0 </y>
<z> 0.0 </z>
</location>
<location name="VRP" unit="IN">
<x>0</x>
<y>0</y>
<z>0</z>
</location>
</metrics>
<mass_balance>
<!--roughtly approximating this as a solid sphere with correct mass-->
<ixx unit="KG*M2"> 0.036 </ixx>
<iyy unit="KG*M2"> 0.036 </iyy>
<izz unit="KG*M2"> 0.036 </izz>
<emptywt unit="KG"> 1.0 </emptywt>
<location name="CG" unit="IN">
<x> 0.0 </x>
<y> 0.0 </y>
<z> 0.0 </z>
</location>
<pointmass name="Payload">
<weight unit="KG"> 0.0 </weight>
<location unit="IN">
<x> 0.0 </x>
<y> 0.0 </y>
<z> 0.0 </z>
</location>
</pointmass>
</mass_balance>
<ground_reactions>
<contact type="BOGEY" name="frontbase">
<location unit="M">
<x> -0.283 </x>
<y> 0.00 </y>
<z> -0.033</z>
</location>
<static_friction> 0.80 </static_friction>
<dynamic_friction> 0.50 </dynamic_friction>
<spring_coeff unit="N/M"> 800 </spring_coeff>
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
</contact>
<contact type="BOGEY" name="rearbase">
<location unit="M">
<x> 0.283 </x>
<y> 0.00 </y>
<z> -0.033</z>
</location>
<static_friction> 0.80 </static_friction>
<dynamic_friction> 0.50 </dynamic_friction>
<spring_coeff unit="N/M"> 800 </spring_coeff>
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
</contact>
<contact type="BOGEY" name="leftbase">
<location unit="M">
<x> 0.00 </x>
<y> 0.283 </y>
<z> -0.033</z>
</location>
<static_friction> 0.80 </static_friction>
<dynamic_friction> 0.50 </dynamic_friction>
<spring_coeff unit="N/M"> 800 </spring_coeff>
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
</contact>
<contact type="BOGEY" name="rightbase">
<location unit="M">
<x> 0.00 </x>
<y> -0.283 </y>
<z> -0.033</z>
</location>
<static_friction> 0.80 </static_friction>
<dynamic_friction> 0.50 </dynamic_friction>
<spring_coeff unit="N/M"> 800 </spring_coeff>
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
</contact>
</ground_reactions>
<!-- the front and rear motors spin clockwise, and the left and right motors spin counter-clockwise. -->
<propulsion>
<engine file="a2830-12" name="front">
<location unit="M">
<x> -0.283 </x>
<y> 0.00 </y>
<z> 0.00 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<feed>0</feed>
<thruster file="prop10x4.5">
<location unit="M">
<x> -0.283 </x>
<y> 0.00 </y>
<z> 0.125 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<sense> 1 </sense>
<p_factor> 10 </p_factor>
</thruster>
</engine>
<engine file="a2830-12" name="rear">
<location unit="M">
<x> 0.283 </x>
<y> 0.000 </y>
<z> 0.000 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<feed>0</feed>
<thruster file="prop10x4.5">
<location unit="M">
<x> 0.283 </x>
<y> 0.000 </y>
<z> 0.125 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<sense> 1 </sense>
<p_factor> 10 </p_factor>
</thruster>
</engine>
<engine file="a2830-12" name="left">
<location unit="M">
<x> 0.00 </x>
<y> 0.283 </y>
<z> 0.00 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<feed>0</feed>
<thruster file="prop10x4.5">
<location unit="M">
<x> 0.00 </x>
<y> 0.283 </y>
<z> 0.125 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<sense> -1 </sense>
<p_factor> 10 </p_factor>
</thruster>
</engine>
<engine file="a2830-12" name="right">
<location unit="M">
<x> 0.000 </x>
<y> -0.283 </y>
<z> 0.000 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<feed>0</feed>
<thruster file="prop10x4.5">
<location unit="M">
<x> 0.000 </x>
<y> -0.283 </y>
<z> 0.125 </z>
</location>
<orient unit="DEG">
<pitch> 90.00 </pitch>
<roll> 0.00 </roll>
<yaw> 0.00 </yaw>
</orient>
<sense> -1 </sense>
<p_factor> 10 </p_factor>
</thruster>
</engine>
<tank type="FUEL" number="0">
<location unit="M">
<x> 0.00 </x>
<y> 0.00 </y>
<z> -0.07 </z>
</location>
<!--have to have a fuel capacity, so setting it small-->
<capacity unit="KG"> 0.00000000001 </capacity>
<contents unit="KG"> 0.0 </contents>
</tank>
</propulsion>
<aerodynamics>
<axis name="LIFT">
</axis>
<axis name="DRAG">
<function name="aero/coefficient/CD0">
<description>Overall Drag</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<value>1</value>
</product>
</function>
</axis>
<axis name="SIDE">
</axis>
<axis name="ROLL">
</axis>
<axis name="PITCH">
</axis>
<axis name="YAW">
</axis>
</aerodynamics>
</fdm_config>
<!-- vim:ts=2:sw=2:expandtab -->

View File

@ -1,40 +0,0 @@
round10 = func(v) {
if (v == nil) return 0;
return 0.1*int(v*10);
}
round100 = func(v) {
if (v == nil) return 0;
return 0.01*int(v*100);
}
var update_quad = func( ) {
asl_ft = getprop("/position/altitude-ft");
ground = getprop("/position/ground-elev-ft");
agl_m = (asl_ft - ground) * 0.3048;
setprop("/apm/altitude", round10(agl_m));
setprop("/apm/pitch", round10(getprop("/orientation/pitch-deg")));
setprop("/apm/roll", round10(getprop("/orientation/roll-deg")));
setprop("/apm/heading", round10(getprop("/orientation/heading-deg")));
# airspeed-kt is actually in feet per second (FDM NET bug)
setprop("/apm/airspeed", round10(0.3048*getprop("/velocities/airspeed-kt")));
setprop("/apm/motor_right", round10(getprop("/engines/engine[0]/rpm")/10.0));
setprop("/apm/motor_left", round10(getprop("/engines/engine[1]/rpm")/10.0));
setprop("/apm/motor_front", round10(getprop("/engines/engine[2]/rpm")/10.0));
setprop("/apm/motor_back", round10(getprop("/engines/engine[3]/rpm")/10.0));
}
var main_loop = func {
update_quad();
settimer(main_loop, 0);
}
setlistener("/sim/signals/fdm-initialized",
func {
main_loop();
});

View File

@ -1,761 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<authoring_tool>Google SketchUp 7.1.4871</authoring_tool>
</contributor>
<created>2009-10-17T10:23:04Z</created>
<modified>2009-10-17T10:23:04Z</modified>
<unit meter="0.0254" name="inch" />
<up_axis>Z_UP</up_axis>
</asset>
<library_visual_scenes>
<visual_scene id="ID1">
<node name="SketchUp">
<node id="ID2" name="instance_0">
<matrix>0 1 0 0.851428 -1 0 0 0.8320829 0 -0 1 11.02362 0 0 0 1</matrix>
<instance_node url="#ID3" />
</node>
</node>
</visual_scene>
</library_visual_scenes>
<library_nodes>
<node id="ID3" name="component_0">
<instance_geometry url="#ID4">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID5">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID12">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID5">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID18">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID20">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID26">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID27">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID34">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID35">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID42">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID27">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID48">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID20">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID54">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID27">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID60">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID20">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID66">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID35">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID72">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID73">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID80">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID35">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID86">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID35">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID92">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID73">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID98">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID73">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID104">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID73">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</library_nodes>
<library_geometries>
<geometry id="ID4">
<mesh>
<source id="ID7">
<float_array id="ID10" count="429">12.05563 -8.725444 -1.574803 53.64008 2.464886 -1.574803 12.05563 7.022588 -1.574803 53.64008 -4.167742 -1.574803 83.89811 -0.851428 -1.574803 12.05563 -8.725444 -4.724409 83.89811 -0.851428 -4.724409 12.05563 -8.725444 -1.968504 12.05563 -8.725444 -1.574803 75.6858 -1.751507 -1.574803 53.64008 -4.167742 -1.574803 72.36054 -2.115958 -1.574803 72.7661 -2.071509 -1.574803 53.64008 -4.167742 -1.574803 55.28615 -2.115958 -1.574803 53.64008 2.464886 -1.574803 72.36054 -2.115958 -1.574803 55.28615 0.3686533 -1.574803 72.7661 0.3686533 -1.574803 56.34146 0.3686533 -1.574803 12.05563 7.022588 -4.724409 83.89811 -0.851428 -1.574803 83.89811 -0.851428 -4.724409 12.05563 7.022588 -1.968504 12.05563 7.022588 -1.574803 75.6858 0.04865095 -1.574803 53.64008 2.464886 -1.574803 72.7661 0.3686533 -1.574803 12.05563 7.022588 -1.574803 12.05563 -8.725444 -3.552714e-015 12.05563 -8.725444 -1.574803 12.05563 7.022588 -3.552714e-015 12.05563 -8.725444 -1.574803 -10.77901 -8.725444 -1.968504 12.05563 -8.725444 -1.968504 -26.82628 -8.725444 -1.574803 -10.77901 -8.725444 -1.574803 -10.77901 -8.725444 -5.905512 -26.82628 -8.725444 -5.905512 12.05563 -8.725444 -4.724409 -10.77901 -8.725444 -7.480315 12.05563 -8.725444 -7.480315 -10.77901 -8.725444 -5.905512 -10.77901 -8.725444 -1.968504 12.05563 -8.725444 -1.968504 83.89811 -0.851428 -4.724409 12.05563 -8.725444 -4.724409 12.05563 7.022588 -4.724409 83.89811 -0.851428 -1.574803 75.6858 0.04865095 -1.574803 75.6858 -1.751507 -1.574803 75.6858 -1.751507 -1.574803 72.7661 -1.751507 -1.574803 72.7661 -2.071509 -1.574803 55.28615 -2.115958 -1.574803 56.34146 -1.751507 -1.574803 55.28615 0.3686533 -1.574803 72.36054 -2.115958 -1.574803 72.7661 -1.751507 -1.574803 72.7661 -2.071509 -1.574803 56.34146 0.3686533 -1.574803 56.34146 0.3686533 -1.574803 72.7661 0.3686533 10.32715 72.7661 0.3686533 -1.574803 56.34146 0.3686533 10.32715 56.94848 0.3686533 10.32715 -10.77901 7.022588 -5.905512 12.05563 7.022588 -7.480315 -10.77901 7.022588 -7.480315 12.05563 7.022588 -4.724409 -10.77901 7.022588 -1.968504 12.05563 7.022588 -1.968504 -26.82628 7.022588 -1.574803 -10.77901 7.022588 -5.905512 -26.82628 7.022588 -5.905512 -10.77901 7.022588 -1.968504 12.05563 7.022588 -1.968504 12.05563 7.022588 -1.574803 -10.77901 7.022588 -1.574803 75.6858 -1.751507 -1.574803 72.7661 0.3686533 -1.574803 72.7661 -1.751507 -1.574803 75.6858 0.04865095 -1.574803 -10.77901 7.022588 -3.552714e-015 12.05563 7.022588 -1.574803 -10.77901 7.022588 -1.574803 12.05563 7.022588 -3.552714e-015 12.05563 -8.725444 -3.552714e-015 -10.77901 -8.725444 -1.574803 12.05563 -8.725444 -1.574803 -10.77901 -8.725444 -3.552714e-015 -10.77901 -8.725444 -3.552714e-015 -26.82628 -8.725444 -1.574803 -10.77901 -8.725444 -1.574803 -26.82628 -8.725444 -5.905512 -42.87354 -0.851428 -1.574803 -42.87354 -0.851428 -5.905512 -26.82628 -8.725444 -1.574803 -26.82628 7.022588 -5.905512 -26.82628 -8.725444 -5.905512 -42.87354 -0.851428 -5.905512 -10.77901 7.022588 -5.905512 -10.77901 -8.725444 -5.905512 12.05563 7.022588 -7.480315 -10.77901 -8.725444 -7.480315 -10.77901 7.022588 -7.480315 12.05563 -8.725444 -7.480315 12.05563 -8.725444 -7.480315 12.05563 7.022588 -4.724409 12.05563 -8.725444 -4.724409 12.05563 7.022588 -7.480315 -10.77901 7.022588 -5.905512 -10.77901 -8.725444 -7.480315 -10.77901 -8.725444 -5.905512 -10.77901 7.022588 -7.480315 72.7661 -1.751507 10.32715 56.34146 -1.751507 -1.574803 72.7661 -1.751507 -1.574803 56.34146 -1.751507 10.32715 56.75835 -1.751507 10.32715 56.34146 -1.751507 10.32715 56.34146 0.3686533 -1.574803 56.34146 -1.751507 -1.574803 56.34146 -0.8882772 10.32715 56.34146 0.3686533 10.32715 72.7661 0.3686533 -1.574803 72.7661 -1.751507 10.32715 72.7661 -1.751507 -1.574803 72.7661 0.3686533 10.32715 -42.87354 -0.851428 -1.574803 -26.82628 7.022588 -5.905512 -42.87354 -0.851428 -5.905512 -26.82628 7.022588 -1.574803 -10.77901 7.022588 -3.552714e-015 -10.77901 7.022588 -1.574803 -26.82628 7.022588 -1.574803 -26.82628 -8.725444 -1.574803 -10.77901 7.022588 -3.552714e-015 -26.82628 7.022588 -1.574803 -10.77901 -8.725444 -3.552714e-015 -26.82628 -8.725444 -1.574803 -26.82628 7.022588 -1.574803 -42.87354 -0.851428 -1.574803</float_array>
<technique_common>
<accessor count="143" source="#ID10" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID8">
<float_array id="ID11" count="429">-1.708674e-016 -3.074232e-031 1 -1.708674e-016 -3.074232e-031 1 -1.708674e-016 -3.074232e-031 1 -1.708674e-016 -3.074232e-031 1 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 1 2.026823e-015 0 1 2.026823e-015 0 1 2.026823e-015 0 1 2.026823e-015 0 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 -9.148516e-017 2.255973e-017 -1 -9.148516e-017 2.255973e-017 -1 -9.148516e-017 2.255973e-017 -1 2.16304e-015 2.318198e-031 1 2.16304e-015 2.318198e-031 1 2.16304e-015 2.318198e-031 1 2.433616e-015 5.403713e-031 1 2.433616e-015 5.403713e-031 1 2.433616e-015 5.403713e-031 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 -2.305222e-016 1 -5.690139e-016 -2.305222e-016 1 -5.690139e-016 -2.305222e-016 1 -5.690139e-016 -2.305222e-016 1 -5.690139e-016 -2.305222e-016 1 -5.690139e-016 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 1.878572e-015 9.737157e-016 1 1.878572e-015 9.737157e-016 1 1.878572e-015 9.737157e-016 1 1.878572e-015 9.737157e-016 1 -6.646025e-017 1 0 -6.646025e-017 1 0 -6.646025e-017 1 0 -6.646025e-017 1 0 3.77629e-016 -1 0 3.77629e-016 -1 0 3.77629e-016 -1 0 3.77629e-016 -1 0 2.220446e-016 -1 0 2.220446e-016 -1 0 2.220446e-016 -1 0 -0.4405049 -0.8977502 -2.536866e-017 -0.4405049 -0.8977502 -2.536866e-017 -0.4405049 -0.8977502 -2.536866e-017 -0.4405049 -0.8977502 -2.536866e-017 1.891883e-016 3.691592e-017 -1 1.891883e-016 3.691592e-017 -1 1.891883e-016 3.691592e-017 -1 1.891883e-016 3.691592e-017 -1 1.891883e-016 3.691592e-017 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 1 2.026823e-015 6.618682e-030 1 2.026823e-015 6.618682e-030 1 2.026823e-015 6.618682e-030 1 2.026823e-015 6.618682e-030 -1 -3.831602e-015 0 -1 -3.831602e-015 0 -1 -3.831602e-015 0 -1 -3.831602e-015 0 2.317898e-016 -1 8.54092e-016 2.317898e-016 -1 8.54092e-016 2.317898e-016 -1 8.54092e-016 2.317898e-016 -1 8.54092e-016 2.317898e-016 -1 8.54092e-016 -1 -2.220446e-016 0 -1 -2.220446e-016 0 -1 -2.220446e-016 0 -1 -2.220446e-016 0 -1 -2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 -0.4405049 0.8977502 -2.536866e-017 -0.4405049 0.8977502 -2.536866e-017 -0.4405049 0.8977502 -2.536866e-017 -0.4405049 0.8977502 -2.536866e-017 -3.327399e-016 1 1.185815e-031 -3.327399e-016 1 1.185815e-031 -3.327399e-016 1 1.185815e-031 -0.09766613 -2.826866e-016 0.9952192 -0.09766613 -2.826866e-016 0.9952192 -0.09766613 -2.826866e-016 0.9952192 -0.09766613 -2.826866e-016 0.9952192 -2.213906e-016 -4.551875e-031 1 -2.213906e-016 -4.551875e-031 1 -2.213906e-016 -4.551875e-031 1</float_array>
<technique_common>
<accessor count="143" source="#ID11" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID9">
<input semantic="POSITION" source="#ID7" />
<input semantic="NORMAL" source="#ID8" />
</vertices>
<triangles count="83" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID9" />
<p>0 1 2 1 0 3 4 5 6 5 4 7 7 4 8 8 4 9 8 9 10 10 9 11 11 9 12 13 14 15 14 13 16 15 17 18 17 15 14 18 17 19 20 21 22 21 20 23 21 23 24 21 24 25 25 24 26 25 26 27 28 29 30 29 28 31 32 33 34 33 32 35 35 32 36 37 35 38 35 37 33 39 40 41 40 39 42 42 39 43 43 39 44 45 46 47 48 49 50 51 52 53 54 55 56 55 54 57 55 57 58 58 57 59 60 56 55 61 62 63 62 61 64 62 64 65 66 67 68 67 66 69 69 66 70 69 70 71 72 73 74 73 72 75 75 72 76 76 72 77 77 72 78 79 80 81 80 79 82 83 84 85 84 83 86 87 88 89 88 87 90 91 92 93 94 95 96 95 94 97 98 99 100 99 98 101 99 101 102 103 104 105 104 103 106 107 108 109 108 107 110 111 112 113 112 111 114 115 116 117 116 115 118 118 115 119 120 121 122 121 120 123 121 123 124 125 126 127 126 125 128 129 130 131 130 129 132 133 134 135 136 137 138 137 136 139 140 141 142</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID12">
<mesh>
<source id="ID13">
<float_array id="ID16" count="12">0.6383115 46.7127 -1.574803 12.05563 46.7127 -1.968504 0.6383115 46.7127 -1.968504 12.05563 46.7127 -1.574803</float_array>
<technique_common>
<accessor count="4" source="#ID16" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID14">
<float_array id="ID17" count="12">-1.017944e-014 1 4.717361e-030 -1.017944e-014 1 4.717361e-030 -1.017944e-014 1 4.717361e-030 -1.017944e-014 1 4.717361e-030</float_array>
<technique_common>
<accessor count="4" source="#ID17" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID15">
<input semantic="POSITION" source="#ID13" />
<input semantic="NORMAL" source="#ID14" />
</vertices>
<triangles count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID15" />
<p>0 1 2 1 0 3</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID18">
<mesh>
<source id="ID21">
<float_array id="ID24" count="42">-10.77901 7.022588 -1.574803 -26.82628 -8.725444 -1.574803 -26.82628 7.022588 -1.574803 -10.77901 -8.725444 -1.574803 -10.77901 7.022588 -1.574803 -10.77901 -8.725444 -3.552714e-015 -10.77901 -8.725444 -1.574803 -10.77901 7.022588 -3.552714e-015 -10.77901 7.022588 -1.574803 -10.77901 -8.725444 -1.968504 -10.77901 -8.725444 -1.574803 -10.77901 -8.725444 -5.905512 -10.77901 7.022588 -5.905512 -10.77901 7.022588 -1.968504</float_array>
<technique_common>
<accessor count="14" source="#ID24" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID22">
<float_array id="ID25" count="42">2.213906e-016 6.45441e-031 -1 2.213906e-016 6.45441e-031 -1 2.213906e-016 6.45441e-031 -1 2.213906e-016 6.45441e-031 -1 1 3.831602e-015 0 1 3.831602e-015 0 1 3.831602e-015 0 1 3.831602e-015 0 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030</float_array>
<technique_common>
<accessor count="14" source="#ID25" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID23">
<input semantic="POSITION" source="#ID21" />
<input semantic="NORMAL" source="#ID22" />
</vertices>
<triangles count="8" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID23" />
<p>0 1 2 1 0 3 4 5 6 5 4 7 8 9 10 9 8 11 11 8 12 12 8 13</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID26">
<mesh>
<source id="ID29">
<float_array id="ID32" count="54">-10.77901 -8.725444 -1.574803 0.6383115 -46.59439 -1.968504 0.6383115 -46.59439 -1.574803 -10.77901 -8.725444 -1.968504 12.05563 -46.59439 -1.574803 0.6383115 -46.59439 -1.968504 12.05563 -46.59439 -1.968504 0.6383115 -46.59439 -1.574803 12.05563 7.022588 -4.724409 12.05563 -8.725444 -1.968504 12.05563 -8.725444 -4.724409 12.05563 -46.59439 -1.574803 12.05563 -46.59439 -1.968504 12.05563 -8.725444 -1.574803 12.05563 7.022588 -1.574803 12.05563 7.022588 -1.968504 12.05563 46.7127 -1.968504 12.05563 46.7127 -1.574803</float_array>
<technique_common>
<accessor count="18" source="#ID32" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID30">
<float_array id="ID33" count="54">-0.9574313 -0.2886614 -4.227722e-015 -0.9574313 -0.2886614 -4.227722e-015 -0.9574313 -0.2886614 -4.227722e-015 -0.9574313 -0.2886614 -4.227722e-015 -1.02263e-015 -1 6.037099e-031 -1.02263e-015 -1 6.037099e-031 -1.02263e-015 -1 6.037099e-031 -1.02263e-015 -1 6.037099e-031 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014</float_array>
<technique_common>
<accessor count="18" source="#ID33" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID31">
<input semantic="POSITION" source="#ID29" />
<input semantic="NORMAL" source="#ID30" />
</vertices>
<triangles count="12" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID31" />
<p>0 1 2 1 0 3 4 5 6 5 4 7 8 9 10 9 11 12 11 9 13 13 9 14 14 9 8 14 8 15 14 15 16 14 16 17</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID34">
<mesh>
<source id="ID37">
<float_array id="ID40" count="12">12.05563 7.022588 -1.574803 0.6383115 46.7127 -1.574803 -10.77901 7.022588 -1.574803 12.05563 46.7127 -1.574803</float_array>
<technique_common>
<accessor count="4" source="#ID40" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID38">
<float_array id="ID41" count="12">3.922153e-031 -1.790226e-016 1 3.922153e-031 -1.790226e-016 1 3.922153e-031 -1.790226e-016 1 3.922153e-031 -1.790226e-016 1</float_array>
<technique_common>
<accessor count="4" source="#ID41" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID39">
<input semantic="POSITION" source="#ID37" />
<input semantic="NORMAL" source="#ID38" />
</vertices>
<triangles count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID39" />
<p>0 1 2 1 0 3</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID42">
<mesh>
<source id="ID43">
<float_array id="ID46" count="12">0.6383115 46.7127 -1.574803 -10.77901 7.022588 -1.968504 -10.77901 7.022588 -1.574803 0.6383115 46.7127 -1.968504</float_array>
<technique_common>
<accessor count="4" source="#ID46" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID44">
<float_array id="ID47" count="12">-0.961028 0.2764509 -1.211156e-015 -0.961028 0.2764509 -1.211156e-015 -0.961028 0.2764509 -1.211156e-015 -0.961028 0.2764509 -1.211156e-015</float_array>
<technique_common>
<accessor count="4" source="#ID47" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID45">
<input semantic="POSITION" source="#ID43" />
<input semantic="NORMAL" source="#ID44" />
</vertices>
<triangles count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID45" />
<p>0 1 2 1 0 3</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID48">
<mesh>
<source id="ID49">
<float_array id="ID52" count="9">72.7661 -2.071509 -1.574803 72.36054 -2.115958 -1.574803 72.7661 -2.115958 -1.574803</float_array>
<technique_common>
<accessor count="3" source="#ID52" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID50">
<float_array id="ID53" count="9">-1.752039e-014 1.59856e-013 1 -1.752039e-014 1.59856e-013 1 -1.752039e-014 1.59856e-013 1</float_array>
<technique_common>
<accessor count="3" source="#ID53" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID51">
<input semantic="POSITION" source="#ID49" />
<input semantic="NORMAL" source="#ID50" />
</vertices>
<triangles count="1" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID51" />
<p>0 1 2</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID54">
<mesh>
<source id="ID55">
<float_array id="ID58" count="72">72.7661 -1.751507 10.32715 72.7661 -17.89324 10.62992 72.7661 -17.89324 10.32715 72.7661 16.11668 10.62992 72.7661 0.3686533 10.32715 72.7661 16.11668 10.32715 72.7661 -17.89324 10.62992 64.55378 -17.89324 10.32715 72.7661 -17.89324 10.32715 64.55378 -17.89324 10.62992 64.55378 16.11668 10.62992 72.7661 16.11668 10.32715 64.55378 16.11668 10.32715 72.7661 16.11668 10.62992 56.34146 -0.8882772 10.62992 64.55378 -17.89324 10.32715 64.55378 -17.89324 10.62992 56.75835 -1.751507 10.32715 56.34146 -0.8882772 10.32715 64.55378 16.11668 10.62992 56.34146 -0.8882772 10.32715 56.34146 -0.8882772 10.62992 56.94848 0.3686533 10.32715 64.55378 16.11668 10.32715</float_array>
<technique_common>
<accessor count="24" source="#ID58" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID56">
<float_array id="ID59" count="72">1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 2.220446e-016 -1 0 2.220446e-016 -1 0 2.220446e-016 -1 0 2.220446e-016 -1 0 -2.220446e-016 1 0 -2.220446e-016 1 0 -2.220446e-016 1 0 -2.220446e-016 1 0 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 0.4348789 0 -0.9004889 0.4348789 0 -0.9004889 0.4348789 0 -0.9004889 0.4348789 0 -0.9004889 0.4348789 0</float_array>
<technique_common>
<accessor count="24" source="#ID59" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID57">
<input semantic="POSITION" source="#ID55" />
<input semantic="NORMAL" source="#ID56" />
</vertices>
<triangles count="14" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID57" />
<p>0 1 2 1 0 3 3 0 4 3 4 5 6 7 8 7 6 9 10 11 12 11 10 13 14 15 16 15 14 17 17 14 18 19 20 21 20 19 22 22 19 23</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID60">
<mesh>
<source id="ID61">
<float_array id="ID64" count="33">56.94848 0.3686533 10.32715 56.34146 0.3686533 10.32715 56.34146 -0.8882772 10.32715 56.75835 -1.751507 10.32715 56.94848 0.3686533 10.32715 56.34146 -0.8882772 10.32715 72.7661 -1.751507 10.32715 72.7661 0.3686533 10.32715 56.75835 -1.751507 10.32715 56.34146 -0.8882772 10.32715 56.34146 -1.751507 10.32715</float_array>
<technique_common>
<accessor count="11" source="#ID64" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID62">
<float_array id="ID65" count="33">-1.170547e-014 8.479499e-015 1 -1.170547e-014 8.479499e-015 1 -1.170547e-014 8.479499e-015 1 5.186512e-016 7.131123e-017 1 5.186512e-016 7.131123e-017 1 5.186512e-016 7.131123e-017 1 5.186512e-016 7.131123e-017 1 5.186512e-016 7.131123e-017 1 -1.704409e-014 -1.234682e-014 1 -1.704409e-014 -1.234682e-014 1 -1.704409e-014 -1.234682e-014 1</float_array>
<technique_common>
<accessor count="11" source="#ID65" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID63">
<input semantic="POSITION" source="#ID61" />
<input semantic="NORMAL" source="#ID62" />
</vertices>
<triangles count="5" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID63" />
<p>0 1 2 3 4 5 4 3 6 4 6 7 8 9 10</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID66">
<mesh>
<source id="ID67">
<float_array id="ID70" count="15">64.55378 -17.89324 10.62992 64.55378 16.11668 10.62992 56.34146 -0.8882772 10.62992 72.7661 16.11668 10.62992 72.7661 -17.89324 10.62992</float_array>
<technique_common>
<accessor count="5" source="#ID70" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID68">
<float_array id="ID71" count="15">9.888184e-016 2.611527e-016 1 9.888184e-016 2.611527e-016 1 9.888184e-016 2.611527e-016 1 9.888184e-016 2.611527e-016 1 9.888184e-016 2.611527e-016 1</float_array>
<technique_common>
<accessor count="5" source="#ID71" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID69">
<input semantic="POSITION" source="#ID67" />
<input semantic="NORMAL" source="#ID68" />
</vertices>
<triangles count="3" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID69" />
<p>0 1 2 1 0 3 3 0 4</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID72">
<mesh>
<source id="ID75">
<float_array id="ID78" count="12">0.6383115 46.7127 -1.968504 12.05563 7.022588 -1.968504 -10.77901 7.022588 -1.968504 12.05563 46.7127 -1.968504</float_array>
<technique_common>
<accessor count="4" source="#ID78" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID76">
<float_array id="ID79" count="12">-8.275666e-031 1.641041e-016 -1 -8.275666e-031 1.641041e-016 -1 -8.275666e-031 1.641041e-016 -1 -8.275666e-031 1.641041e-016 -1</float_array>
<technique_common>
<accessor count="4" source="#ID79" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID77">
<input semantic="POSITION" source="#ID75" />
<input semantic="NORMAL" source="#ID76" />
</vertices>
<triangles count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID77" />
<p>0 1 2 1 0 3</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID80">
<mesh>
<source id="ID81">
<float_array id="ID84" count="12">-10.77901 -8.725444 -3.552714e-015 12.05563 7.022588 -3.552714e-015 -10.77901 7.022588 -3.552714e-015 12.05563 -8.725444 -3.552714e-015</float_array>
<technique_common>
<accessor count="4" source="#ID84" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID82">
<float_array id="ID85" count="12">0 0 1 0 0 1 0 0 1 0 0 1</float_array>
<technique_common>
<accessor count="4" source="#ID85" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID83">
<input semantic="POSITION" source="#ID81" />
<input semantic="NORMAL" source="#ID82" />
</vertices>
<triangles count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID83" />
<p>0 1 2 1 0 3</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID86">
<mesh>
<source id="ID87">
<float_array id="ID90" count="12">0.6383115 -46.59439 -1.574803 12.05563 -8.725444 -1.574803 -10.77901 -8.725444 -1.574803 12.05563 -46.59439 -1.574803</float_array>
<technique_common>
<accessor count="4" source="#ID90" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID88">
<float_array id="ID91" count="12">-4.166268e-032 1.87632e-016 1 -4.166268e-032 1.87632e-016 1 -4.166268e-032 1.87632e-016 1 -4.166268e-032 1.87632e-016 1</float_array>
<technique_common>
<accessor count="4" source="#ID91" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID89">
<input semantic="POSITION" source="#ID87" />
<input semantic="NORMAL" source="#ID88" />
</vertices>
<triangles count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID89" />
<p>0 1 2 1 0 3</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID92">
<mesh>
<source id="ID93">
<float_array id="ID96" count="12">12.05563 -8.725444 -1.968504 0.6383115 -46.59439 -1.968504 -10.77901 -8.725444 -1.968504 12.05563 -46.59439 -1.968504</float_array>
<technique_common>
<accessor count="4" source="#ID96" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID94">
<float_array id="ID97" count="12">-8.825504e-032 -2.189041e-016 -1 -8.825504e-032 -2.189041e-016 -1 -8.825504e-032 -2.189041e-016 -1 -8.825504e-032 -2.189041e-016 -1</float_array>
<technique_common>
<accessor count="4" source="#ID97" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID95">
<input semantic="POSITION" source="#ID93" />
<input semantic="NORMAL" source="#ID94" />
</vertices>
<triangles count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID95" />
<p>0 1 2 1 0 3</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID98">
<mesh>
<source id="ID99">
<float_array id="ID102" count="12">72.7661 -1.751507 10.32715 64.55378 -17.89324 10.32715 56.75835 -1.751507 10.32715 72.7661 -17.89324 10.32715</float_array>
<technique_common>
<accessor count="4" source="#ID102" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID100">
<float_array id="ID103" count="12">-4.415269e-016 -2.166622e-016 -1 -4.415269e-016 -2.166622e-016 -1 -4.415269e-016 -2.166622e-016 -1 -4.415269e-016 -2.166622e-016 -1</float_array>
<technique_common>
<accessor count="4" source="#ID103" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID101">
<input semantic="POSITION" source="#ID99" />
<input semantic="NORMAL" source="#ID100" />
</vertices>
<triangles count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID101" />
<p>0 1 2 1 0 3</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID104">
<mesh>
<source id="ID105">
<float_array id="ID108" count="12">64.55378 16.11668 10.32715 72.7661 0.3686533 10.32715 56.94848 0.3686533 10.32715 72.7661 16.11668 10.32715</float_array>
<technique_common>
<accessor count="4" source="#ID108" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID106">
<float_array id="ID109" count="12">-3.538322e-016 -1.401581e-016 -1 -3.538322e-016 -1.401581e-016 -1 -3.538322e-016 -1.401581e-016 -1 -3.538322e-016 -1.401581e-016 -1</float_array>
<technique_common>
<accessor count="4" source="#ID109" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID107">
<input semantic="POSITION" source="#ID105" />
<input semantic="NORMAL" source="#ID106" />
</vertices>
<triangles count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID107" />
<p>0 1 2 1 0 3</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_materials>
<material id="ID5" name="material_0">
<instance_effect url="#ID6" />
</material>
<material id="ID20" name="material_1">
<instance_effect url="#ID19" />
</material>
<material id="ID27" name="material_2">
<instance_effect url="#ID28" />
</material>
<material id="ID35" name="material_3">
<instance_effect url="#ID36" />
</material>
<material id="ID73" name="material_4">
<instance_effect url="#ID74" />
</material>
</library_materials>
<library_effects>
<effect id="ID6">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>1 1 0 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID19">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>0.8901961 0.8823529 0.8705882 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID28">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>0.4 0 0 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID36">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>0.6 0 0 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID74">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>0 0 1 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<scene>
<instance_visual_scene url="#ID1" />
</scene>
</COLLADA>

View File

@ -1,385 +0,0 @@
<?xml version="1.0"?>
<!-- TAGS ARE CASE SENSATIVE -->
<LOGFORMAT>
<AC2>
<GPS>
<F1>Time</F1>
<F2>Sats</F2>
<F3>Lat</F3>
<F4>Long</F4>
<F5>Mix Alt</F5>
<F6>GPSAlt</F6>
<F7>GR Speed</F7>
<F8>CRS</F8>
</GPS>
<ATT>
<F1>Roll IN</F1>
<F2>Roll</F2>
<F3>Pitch IN</F3>
<F4>Pitch</F4>
<F5>Yaw IN</F5>
<F6>Yaw</F6>
<F7>Mag Heading</F7>
</ATT>
<NTUN>
<F1>WP Dist</F1>
<F2>Target Bear</F2>
<F3>Long Err</F3>
<F4>Lat Err</F4>
<F5>nav lon</F5>
<F6>nav lat</F6>
<F7>X Speed</F7>
<F8>Y Speed</F8>
<F9>nav lon I</F9>
<F10>nav lat I</F10>
</NTUN>
<CTUN>
<F1>Thr IN</F1>
<F2>Sonar Alt</F2>
<F3>Baro Alt</F3>
<F4>WP Alt</F4>
<F5>Nav Throttle</F5>
<F6>Angle boost</F6>
<F7>Manual boost</F7>
<F8>Climb Rate</F8>
<F9>rc3 servo out</F9>
<F10>alt hold int</F10>
<F11>Thr int</F11>
</CTUN>
<PM>
<F1>Gyro Saturation</F1>
<F2>ADC Constraints</F2>
<F3>DCM renorms</F3>
<F4>DCM Blowups</F4>
<F5>GPS Fix Count</F5>
</PM>
<RAW>
<F1>Gyro X</F1>
<F2>Gyro Y</F2>
<F3>Gyro Z</F3>
<F4>Accel X</F4>
<F5>Accel Y</F5>
<F6>Accel Z</F6>
</RAW>
<CURR>
<F1>Thr IN</F1>
<F2>Thr int</F2>
<F3>Voltage</F3>
<F4>Current</F4>
<F5>Current total</F5>
</CURR>
<CMD>
<F1>Cmd Total</F1>
<F2>Current #</F2>
<F3>ID</F3>
<F4>options</F4>
<F5>p1</F5>
<F6>Alt</F6>
<F7>Lat</F7>
<F8>Long</F8>
</CMD>
<OF>
<F1>X raw</F1>
<F2>Y raw</F2>
<F3>SurfaceQual</F3>
<F4>X cm</F4>
<F5>Y cm</F5>
<F6>Lat</F6>
<F7>Long</F7>
<F8>Roll Cmd</F8>
<F9>Pitch Cmd</F9>
</OF>
<MOD>
<F1>FlightMode</F1>
<F2>Thr Cruise</F2>
</MOD>
<PID-1>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-1>
<PID-2>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-2>
<PID-3>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-3>
<PID-4>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-4>
<PID-5>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-5>
<PID-6>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-6>
<PID-7>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-7>
<PID-8>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-8>
<PID-9>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-9>
<PID-10>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-10>
<PID-11>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-11>
<PID-12>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-12>
<PID-13>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-13>
<PID-14>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-14>
<PID-15>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-15>
<PID-16>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-16>
<PID-17>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-17>
<PID-18>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-18>
<PID-19>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-19>
<PID-20>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-20>
<PID-21>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-21>
<PID-22>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-22>
<PID-23>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-23>
<PID-112>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<F5>Output</F5>
<F6>Gain</F6>
</PID-112>
<PID-122>
<F1>Err</F1>
<F2>P</F2>
<F3>I</F3>
<F4>D</F4>
<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>
<GPS>
<F1>Time</F1>
<F2>Fix</F2>
<F3>Sats</F3>
<F4>Lat</F4>
<F5>Long</F5>
<F6>Sonar Alt</F6>
<F7>Mix Alt</F7>
<F8>GPSAlt</F8>
<F9>GR Speed</F9>
<F10>CRS</F10>
</GPS>
<ATT>
<F1>Roll</F1>
<F2>Pitch</F2>
<F3>Yaw</F3>
</ATT>
<NTUN>
<F1>Yaw</F1>
<F2>WP dist</F2>
<F3>Target Bear</F3>
<F4>Nav Bear</F4>
<F5>Alt Err</F5>
<F6>AS</F6>
<F7>NavGScaler</F7>
</NTUN>
<CTUN>
<F1>Servo Roll</F1>
<F2>nav_roll</F2>
<F3>roll_sensor</F3>
<F4>Servo Pitch</F4>
<F5>nav_pitch</F5>
<F6>pitch_sensor</F6>
<F7>Servo Throttle</F7>
<F8>Servo Rudder</F8>
<F9>accel y</F9>
</CTUN>
<PM>
<F1>loop time</F1>
<F2>Main count</F2>
<F3>G_Dt_max</F3>
<F4>Gyro Sat</F4>
<F5>adc constr</F5>
<F6>renorm_sqrt</F6>
<F7>renorm_blowup</F7>
<F8>gps_fix count</F8>
<F9>imu_health</F9>
<F10>dcm i x</F10>
<F11>dcm i y</F11>
<F12>dcm i z</F12>
<F13>pmtest</F13>
</PM>
<CMD>
<F1>Current #</F1>
<F2>ID</F2>
<F3>p1</F3>
<F4>Alt</F4>
<F5>Lat</F5>
<F6>Long</F6>
</CMD>
<RAW>
<F1>Gyro X</F1>
<F2>Gyro Y</F2>
<F3>Gyro Z</F3>
<F4>Accel X</F4>
<F5>Accel Y</F5>
<F6>Accel Z</F6>
</RAW>
<MOD>
<F1>FlightMode</F1>
</MOD>
<CURR>
<F1>Thr IN</F1>
<F2>Voltage</F2>
<F3>Current</F3>
<F4>Current total</F4>
</CURR>
</APM>a
</LOGFORMAT>

View File

@ -1,240 +0,0 @@
<!DOCTYPE HTML>
<html>
<head>
<script type="application/x-javascript">
<!--
var deg2rad = Math.PI / 180;
var rad2deg = 180 / Math.PI;
var pitch =70;
var roll =20;
var yaw = 200;
var socket;
function init() {
if (window["WebSocket"]) {
var host = "ws://localhost:56781/websocket/server";
//host = "ws://173.203.100.4:8002/";
try{
socket = new WebSocket(host);
//log('WebSocket - status '+socket.readyState);
socket.onopen = function(msg){ socket.send("onopen"); alert("Welcome - status "+this.readyState); };
socket.onmessage = function(msg){
var b1 = msg.data.indexOf(",",0);
var b2 = msg.data.indexOf(",",b1+1);
roll = parseFloat( msg.data.substr(0,b1));
pitch = parseFloat( msg.data.substr(b1+1,b2 - b1));
yaw = parseFloat( msg.data.substr(b2+1));
//alert("Received: "+msg.data);
};
socket.onerror = function(msg){ alert("Error: "+msg.data); };
socket.onclose = function(msg){ alert("Disconnected - status "+this.readyState); };
}
catch(ex){ alert(ex); }
} else {
alert("This browser doesnt support websockets");
}
draw();
}
function draw() {
setTimeout ( "draw()", 100 );
//pitch -= 1.2;
//roll += .75;
//if (pitch < -90)
//pitch = 90;
//if (roll > 180)
//roll = -180;
var canvas = document.getElementById("canvas");
if (canvas.getContext) {
var ctx = canvas.getContext("2d");
ctx.save();
ctx.translate(canvas.width/2,canvas.height/2);
ctx.rotate(-roll * deg2rad);
var font = "Arial";
var fontsize = canvas.height/30;
var fontoffset = fontsize - 10;
var halfwidth = canvas.width/2;
var halfheight = canvas.height/2;
var every5deg = -canvas.height / 60;
var pitchoffset = -pitch * every5deg;
var x = Math.sin(-roll * deg2rad);
var y = Math.cos(-roll * deg2rad);
gradObj = ctx.createLinearGradient(0,-halfheight * 2 ,0, halfheight *2);
gradObj.addColorStop(0.0, "Blue");
var offset = 0.5 + pitchoffset / canvas.height / 2 ;
if (offset < 0) {
offset = 0;
}
if (offset > 1) {
offset = 1;
}
gradObj.addColorStop(offset, "LightBlue");
gradObj.addColorStop(offset, "#9bb824");
gradObj.addColorStop(1.0, "#414f07");
ctx.fillStyle = gradObj;
ctx.rect(-halfwidth * 2, -halfheight *2, halfwidth * 4, halfheight * 4);
ctx.fill();
var lengthshort = canvas.width / 12;
var lengthlong = canvas.width / 8;
for (var a = -90; a <= 90; a += 5)
{
// limit to 40 degrees
if (a >= pitch - 34 && a <= pitch + 25)
{
if (a % 10 == 0)
{
if (a == 0)
{
DrawLine(ctx,"White",4, canvas.width / 2 - lengthlong - halfwidth, pitchoffset + a * every5deg, canvas.width / 2 + lengthlong - halfwidth, pitchoffset + a * every5deg);
}
else
{
DrawLine(ctx,"White",4, canvas.width / 2 - lengthlong - halfwidth, pitchoffset + a * every5deg, canvas.width / 2 + lengthlong - halfwidth, pitchoffset + a * every5deg);
}
drawstring(ctx, a, font, fontsize + 2, "White", canvas.width / 2 - lengthlong - 30 - halfwidth - (fontoffset * 1.7), pitchoffset + a * every5deg - 8 - fontoffset);
}
else
{
DrawLine(ctx,"White",4, canvas.width / 2 - lengthshort - halfwidth, pitchoffset + a * every5deg, canvas.width / 2 + lengthshort - halfwidth, pitchoffset + a * every5deg);
}
}
}
ctx.translate(0,canvas.height/14);
lengthlong = canvas.height / 66;
var extra = canvas.height / 15 * 7;
var pointlist = new Array();
pointlist[0] = 0;
pointlist[1] = -lengthlong * 2 - extra;
pointlist[2] = -lengthlong;
pointlist[3] = -lengthlong - extra;
pointlist[4] = lengthlong;
pointlist[5] = -lengthlong - extra;
DrawPolygon(ctx,"RED",4,pointlist)
for (var a = -45; a <= 45; a += 15)
{
ctx.restore();
ctx.save();
ctx.translate(canvas.width / 2, canvas.height / 2 + canvas.height/14);
ctx.rotate(a * deg2rad);
drawstring(ctx, a, font, fontsize, "White", 0 - 6 - fontoffset, -lengthlong * 2 - extra);
DrawLine(ctx,"White",4, 0, -halfheight, 0, -halfheight - 10);
}
ctx.restore();
ctx.save();
DrawEllipse(ctx,"red",4,halfwidth - 10, halfheight - 10, 20, 20);
DrawLine(ctx,"red",4, halfwidth - 10 - 10, halfheight, halfwidth - 10, halfheight);
DrawLine(ctx,"red",4, halfwidth - 10 + 20, halfheight, halfwidth - 10 + 20 + 10, halfheight);
DrawLine(ctx,"red",4, halfwidth - 10 + 20 / 2, halfheight - 10, halfwidth - 10 + 20 / 2, halfheight - 10 - 10);
//DrawLine(ctx,"GREEN",4,-halfwidth,0,halfwidth,0);
}
try {
//socket.send("test "+pitch+"\n");
} catch (ex){ }// alert(ex); }
}
function DrawEllipse(ctx,color,linewidth,x1,y1,width,height) {
ctx.lineWidth = linewidth;
ctx.strokeStyle = color;
ctx.beginPath();
ctx.moveTo(x1 + width / 2,y1 + height);
var x, y;
for (var i = 0; i <= 360; i += 1)
{
x = Math.sin(i * deg2rad) * width / 2;
y = Math.cos(i * deg2rad) * height / 2;
x = x + x1 + width / 2;
y = y + y1 + height / 2;
ctx.lineTo(x,y);
}
//ctx.moveTo(x1,y1);
ctx.stroke();
ctx.closePath();
}
function DrawLine(ctx,color,width,x1,y1,x2,y2) {
ctx.lineWidth = width;
ctx.strokeStyle = color;
ctx.beginPath();
ctx.moveTo(x1,y1);
ctx.lineTo(x2,y2);
ctx.stroke();
ctx.closePath();
}
function DrawPolygon(ctx,color,width,list) {
ctx.lineWidth = width;
ctx.strokeStyle = color;
ctx.beginPath();
ctx.moveTo(list[0],list[1]);
for ( var i=2, len=list.length; i<len; i+=2 ){
ctx.lineTo(list[i],list[i+1]);
}
ctx.lineTo(list[0],list[1]);
ctx.stroke();
ctx.closePath();
}
function drawstring(ctx,string,font,fontsize,color,x,y) {
ctx.font = fontsize + "pt "+font;
ctx.fillStyle = color;
ctx.fillText(string,x,y + fontsize);
}
-->
</script>
</head>
<body onload="init();">
<canvas id="canvas" width="640" height="480">
<p>This example requires a browser that supports the
<a href="http://www.w3.org/html/wg/html5/">HTML5</a>
&lt;canvas&gt; feature.</p>
</canvas>
</body>
</html>

View File

@ -1,2 +0,0 @@
<?xml version="1.0"?>
<output name="localhost" type="FLIGHTGEAR" port="5123" protocol="udp" rate="1000"/>

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://jsbsim.sf.net/JSBSimScript.xsl"?>
<runscript xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://jsbsim.sf.net/JSBSimScript.xsd"
name="Testing Rascal110">
<description>
test ArduPlane using Rascal110 and JSBSim
</description>
<use aircraft="Rascal" initialize="reset_CMAC"/>
<!-- we control the servos via the jsbsim console
interface on TCP 5124 -->
<input port="5124"/>
<run start="0" end="10000000" dt="0.001">
<property value="0"> simulation/notify-time-trigger </property>
<event name="start engine">
<condition> simulation/sim-time-sec le 0.01 </condition>
<set name="propulsion/engine[0]/set-running" value="1"/>
<notify/>
</event>
<event name="Trim">
<condition>simulation/sim-time-sec ge 0.01</condition>
<set name="simulation/do_simple_trim" value="2"/>
<notify/>
</event>
</run>
</runscript>

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Folder>
<name>Network Links</name>
<open>1</open>
<NetworkLink>
<name>View Centered Placemark</name>
<open>1</open>
<refreshVisibility>0</refreshVisibility>
<flyToView>0</flyToView>
<Link>
<href>http://127.0.0.1:56781/georefnetwork.kml</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>2</refreshInterval>
<viewRefreshTime>2</viewRefreshTime>
</Link>
</NetworkLink>
</Folder>
</kml>

View File

@ -1,3 +0,0 @@
#EXTM3U
#EXTVLCOPT:http-caching=0
http://127.0.0.1:56781/both.jpg

View File

@ -1,3 +0,0 @@
#EXTM3U
#EXTVLCOPT:http-caching=0
http://127.0.0.1:56781/hud.jpg

View File

@ -1,3 +0,0 @@
#EXTM3U
#EXTVLCOPT:http-caching=0
http://127.0.0.1:56781/map.jpg

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Folder>
<name>Network Links</name>
<open>1</open>
<NetworkLink>
<name>View Centered Placemark</name>
<open>1</open>
<refreshVisibility>0</refreshVisibility>
<flyToView>1</flyToView>
<Link>
<href>http://127.0.0.1:56781/network.kml</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>0.3</refreshInterval>
<viewRefreshTime>0.3</viewRefreshTime>
</Link>
</NetworkLink>
</Folder>
</kml>

View File

@ -1,478 +0,0 @@
<?xml version="1.0"?>
<!-- TAGS ARE CASE SENSATIVE -->
<CMD>
<AC2>
<WAYPOINT>
<P1>Delay</P1>
<P2>Hit Rad</P2>
<P3></P3>
<P4>Yaw Ang</P4>
<X>Lat</X>
<Y>Long</Y>
<Z>Alt</Z>
</WAYPOINT>
<LOITER_UNLIM>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X>Lat</X>
<Y>Long</Y>
<Z>Alt</Z>
</LOITER_UNLIM>
<LOITER_TURNS>
<P1>Turns</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X>Lat</X>
<Y>Long</Y>
<Z>Alt</Z>
</LOITER_TURNS>
<LOITER_TIME>
<P1>Time s</P1>
<P2></P2>
<P3>rad</P3>
<P4>yaw per</P4>
<X></X>
<Y></Y>
<Z></Z>
</LOITER_TIME>
<RETURN_TO_LAUNCH>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z>Alt</Z>
</RETURN_TO_LAUNCH>
<LAND>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</LAND>
<TAKEOFF>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z>Alt</Z>
</TAKEOFF>
<ROI>
<P1>MAV_ROI</P1>
<P2>WP#</P2>
<P3>ROI#</P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</ROI>
<PATHPLANNING>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</PATHPLANNING>
<CONDITION_DELAY>
<P1>Time (sec)</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</CONDITION_DELAY>
<CONDITION_CHANGE_ALT>
<P1>Rate (cm/sec)</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z>Alt</Z>
</CONDITION_CHANGE_ALT>
<CONDITION_DISTANCE>
<P1>Dist (m)</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</CONDITION_DISTANCE>
<CONDITION_YAW>
<P1>Deg</P1>
<P2>Sec</P2>
<P3>Dir 1=CW</P3>
<P4>rel/abs</P4>
<X></X>
<Y></Y>
<Z></Z>
</CONDITION_YAW>
<DO_SET_MODE>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_MODE>
<DO_JUMP>
<P1>WP #</P1>
<P2>Repeat#</P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_JUMP>
<DO_CHANGE_SPEED>
<P1>speed m/s</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_CHANGE_SPEED>
<DO_SET_HOME>
<P1>Current(1)/Spec(0)</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_HOME>
<DO_SET_PARAMETER>
<P1>#</P1>
<P2>Value</P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_PARAMETER>
<DO_SET_RELAY>
<P1>off(0)/on(1)</P1>
<P2>Delay (s)</P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_RELAY>
<DO_REPEAT_RELAY>
<P1></P1>
<P2>Repeat#</P2>
<P3>Delay (s)</P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_REPEAT_RELAY>
<DO_SET_SERVO>
<P1>Ser No</P1>
<P2>PWM</P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_SERVO>
<DO_REPEAT_SERVO>
<P1>Ser No</P1>
<P2>PWM</P2>
<P3>Repeat#</P3>
<P4>Delay (s)</P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_REPEAT_SERVO>
<DO_DIGICAM_CONFIGURE>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_DIGICAM_CONFIGURE>
<DO_DIGICAM_CONTROL>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_DIGICAM_CONTROL>
<DO_MOUNT_CONFIGURE>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_MOUNT_CONFIGURE>
<DO_MOUNT_CONTROL>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_MOUNT_CONTROL>
</AC2>
<!-- -->
<APM>
<WAYPOINT>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X>Lat</X>
<Y>Long</Y>
<Z>Alt</Z>
</WAYPOINT>
<LOITER_UNLIM>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X>Lat</X>
<Y>Long</Y>
<Z>Alt</Z>
</LOITER_UNLIM>
<LOITER_TURNS>
<P1>Turns</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X>Lat</X>
<Y>Long</Y>
<Z>Alt</Z>
</LOITER_TURNS>
<LOITER_TIME>
<P1>Time s</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X>Lat</X>
<Y>Long</Y>
<Z>Alt</Z>
</LOITER_TIME>
<RETURN_TO_LAUNCH>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X>Lat</X>
<Y>Long</Y>
<Z>Alt</Z>
</RETURN_TO_LAUNCH>
<LAND>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X>Lat</X>
<Y>Long</Y>
<Z>Alt</Z>
</LAND>
<TAKEOFF>
<P1>Angle</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z>Alt</Z>
</TAKEOFF>
<ROI>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</ROI>
<PATHPLANNING>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</PATHPLANNING>
<CONDITION_DELAY>
<P1>Time (sec)</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</CONDITION_DELAY>
<CONDITION_CHANGE_ALT>
<P1>Rate (cm/sec)</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z>Alt</Z>
</CONDITION_CHANGE_ALT>
<CONDITION_DISTANCE>
<P1>Dist (m)</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</CONDITION_DISTANCE>
<CONDITION_YAW>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</CONDITION_YAW>
<DO_SET_MODE>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_MODE>
<DO_JUMP>
<P1>WP #</P1>
<P2>Repeat#</P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_JUMP>
<DO_CHANGE_SPEED>
<P1>Type (0=as 1=gs)</P1>
<P2>Speed (m/s)</P2>
<P3>Throttle(%)</P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_CHANGE_SPEED>
<DO_SET_HOME>
<P1>Current(1)/Spec(0)</P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_HOME>
<DO_SET_PARAMETER>
<P1>#</P1>
<P2>Value</P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_PARAMETER>
<DO_SET_RELAY>
<P1>off(0)/on(1)</P1>
<P2>Delay (s)</P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_RELAY>
<DO_REPEAT_RELAY>
<P1></P1>
<P2>Repeat#</P2>
<P3>Delay (s)</P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_REPEAT_RELAY>
<DO_SET_SERVO>
<P1>Ser No</P1>
<P2>PWM</P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_SET_SERVO>
<DO_REPEAT_SERVO>
<P1>Ser No</P1>
<P2>PWM</P2>
<P3>Repeat#</P3>
<P4>Delay (s)</P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_REPEAT_SERVO>
<DO_DIGICAM_CONFIGURE>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_DIGICAM_CONFIGURE>
<DO_DIGICAM_CONTROL>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_DIGICAM_CONTROL>
<DO_MOUNT_CONFIGURE>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_MOUNT_CONFIGURE>
<DO_MOUNT_CONTROL>
<P1></P1>
<P2></P2>
<P3></P3>
<P4></P4>
<X></X>
<Y></Y>
<Z></Z>
</DO_MOUNT_CONTROL>
</APM>
</CMD>

View File

@ -1,120 +0,0 @@
<?xml version="1.0"?>
<!-- quadcopter HIL protocol definition
Andrew Tridgell
July 2011
-->
<PropertyList>
<generic>
<!-- inputs, sent from quad_hil.py to FlightGear -->
<input>
<binary_mode>true</binary_mode>
<!-- <binary_footer>magic,0xc465414d</binary_footer>-->
<!-- motors, in range 0.0 to 1.0 -->
<chunk>
<name>throttle0</name>
<type>double</type>
<node>/controls/engines/engine[0]/throttle</node>
</chunk>
<chunk>
<name>throttle1</name>
<type>double</type>
<node>/controls/engines/engine[1]/throttle</node>
</chunk>
<chunk>
<name>throttle2</name>
<type>double</type>
<node>/controls/engines/engine[2]/throttle</node>
</chunk>
<chunk>
<name>throttle3</name>
<type>double</type>
<node>/controls/engines/engine[3]/throttle</node>
</chunk>
<!-- Position -->
<chunk>
<name>latitude-deg</name>
<type>double</type>
<node>/position/latitude-deg</node>
</chunk>
<chunk>
<name>longitude-deg</name>
<type>double</type>
<node>/position/longitude-deg</node>
</chunk>
<chunk>
<name>altitude-ft</name>
<type>double</type>
<node>/position/altitude-ft</node>
</chunk>
<chunk>
<name>altitude-agl-ft</name>
<type>double</type>
<node>/position/altitude-agl-ft</node>
</chunk>
<!-- Attitude -->
<chunk>
<name>roll-deg</name>
<type>double</type>
<node>/orientation/roll-deg</node>
</chunk>
<chunk>
<name>pitch-deg</name>
<type>double</type>
<node>/orientation/pitch-deg</node>
</chunk>
<chunk>
<name>heading-deg</name>
<type>double</type>
<node>/orientation/heading-deg</node>
</chunk>
</input>
<!-- outputs, sent from FlightGear to quad_hil.py -->
<output>
<binary_mode>true</binary_mode>
<binary_footer>magic,0xc465414e</binary_footer>
<!-- we need to know the ground level so we know when
to crash! -->
<chunk>
<name>ground-elev-m</name>
<type>double</type>
<node>/position/ground-elev-m</node>
</chunk>
<!-- the rest we only need once at startup, to know where
we are taking off from -->
<chunk>
<name>latitude-deg</name>
<type>double</type>
<node>/position/latitude-deg</node>
</chunk>
<chunk>
<name>longitude-deg</name>
<type>double</type>
<node>/position/longitude-deg</node>
</chunk>
<chunk>
<name>heading-deg</name>
<type>double</type>
<node>/orientation/heading-deg</node>
</chunk>
</output>
</generic>
</PropertyList>

View File

@ -1,3 +0,0 @@
#!/bin/bash
gdb --args mono ArdupilotMegaPlanner.exe

View File

@ -1 +0,0 @@
1.1.4508.31968