APM Planner 1.1.61

update message definitions
fix radio screen
This commit is contained in:
Michael Oborne 2012-04-06 08:50:04 +08:00
parent d0cbd577cd
commit 96c9c0041f
67 changed files with 13633 additions and 4939 deletions

View File

@ -308,6 +308,12 @@
<Compile Include="GCSViews\ConfigurationView\ConfigRawParams.Designer.cs">
<DependentUpon>ConfigRawParams.cs</DependentUpon>
</Compile>
<Compile Include="GCSViews\ConfigurationView\Setup.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="GCSViews\ConfigurationView\Setup.Designer.cs">
<DependentUpon>Setup.cs</DependentUpon>
</Compile>
<Compile Include="MagCalib.cs" />
<Compile Include="PIDTunning.cs" />
<Compile Include="Radio\3DRradio.cs">
@ -569,6 +575,9 @@
<EmbeddedResource Include="GCSViews\ConfigurationView\Configuration.resx">
<DependentUpon>Configuration.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GCSViews\ConfigurationView\Setup.resx">
<DependentUpon>Setup.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Radio\3DRradio.resx">
<DependentUpon>3DRradio.cs</DependentUpon>
</EmbeddedResource>

View File

@ -429,9 +429,9 @@ namespace ArdupilotMega
#if MAVLINK10
public static bool translateMode(string modein, ref MAVLink.__mavlink_set_mode_t mode)
public static bool translateMode(string modein, ref MAVLink.mavlink_set_mode_t mode)
{
//MAVLink.__mavlink_set_mode_t mode = new MAVLink.__mavlink_set_mode_t();
//MAVLink.mavlink_set_mode_t mode = new MAVLink.mavlink_set_mode_t();
mode.target_system = MainV2.comPort.sysid;
try
@ -483,14 +483,14 @@ namespace ArdupilotMega
}
#else
public static bool translateMode(string modein, ref MAVLink.__mavlink_set_nav_mode_t navmode, ref MAVLink.__mavlink_set_mode_t mode)
public static bool translateMode(string modein, ref MAVLink.mavlink_set_nav_mode_t navmode, ref MAVLink.mavlink_set_mode_t mode)
{
//MAVLink.__mavlink_set_nav_mode_t navmode = new MAVLink.__mavlink_set_nav_mode_t();
//MAVLink.mavlink_set_nav_mode_t navmode = new MAVLink.mavlink_set_nav_mode_t();
navmode.target = MainV2.comPort.sysid;
navmode.nav_mode = 255;
//MAVLink.__mavlink_set_mode_t mode = new MAVLink.__mavlink_set_mode_t();
//MAVLink.mavlink_set_mode_t mode = new MAVLink.mavlink_set_mode_t();
mode.target = MainV2.comPort.sysid;
try

View File

@ -21,6 +21,17 @@ namespace ArdupilotMega.Controls.BackstageView
private BackstageViewPage _activePage;
private const int ButtonSpacing = 30;
private const int ButtonHeight = 30;
public BackstageViewPage SelectedPage { get { return _activePage; } }
~BackstageView()
{
foreach (BackstageViewPage ctl in _pages)
{
if (ctl.Page != null)
ctl.Page.Dispose();
}
this.Dispose();
}
public BackstageView()
{
@ -160,7 +171,6 @@ namespace ArdupilotMega.Controls.BackstageView
_activePage = page;
ActivatePage(page);
// Todo: set the link button to be selected looking
}
private void CreateLinkButton(BackstageViewPage page)

View File

@ -334,7 +334,7 @@ namespace ArdupilotMega
if (bytearray != null) // hil
{
var hil = bytearray.ByteArrayToStructure<MAVLink.__mavlink_rc_channels_scaled_t>(6);
var hil = bytearray.ByteArrayToStructure<MAVLink.mavlink_rc_channels_scaled_t>(6);
hilch1 = hil.chan1_scaled;
hilch2 = hil.chan2_scaled;
@ -352,7 +352,7 @@ namespace ArdupilotMega
if (bytearray != null)
{
var nav = bytearray.ByteArrayToStructure<MAVLink.__mavlink_nav_controller_output_t>(6);
var nav = bytearray.ByteArrayToStructure<MAVLink.mavlink_nav_controller_output_t>(6);
nav_roll = nav.nav_roll;
nav_pitch = nav.nav_pitch;
@ -371,7 +371,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_HEARTBEAT];
if (bytearray != null)
{
var hb = bytearray.ByteArrayToStructure<MAVLink.__mavlink_heartbeat_t>(6);
var hb = bytearray.ByteArrayToStructure<MAVLink.mavlink_heartbeat_t>(6);
string oldmode = mode;
@ -463,7 +463,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[ArdupilotMega.MAVLink.MAVLINK_MSG_ID_SYS_STATUS];
if (bytearray != null)
{
var sysstatus = bytearray.ByteArrayToStructure<MAVLink.__mavlink_sys_status_t>(6);
var sysstatus = bytearray.ByteArrayToStructure<MAVLink.mavlink_sys_status_t>(6);
battery_voltage = sysstatus.voltage_battery;
battery_remaining = sysstatus.battery_remaining;
@ -478,7 +478,7 @@ namespace ArdupilotMega
if (bytearray != null)
{
var sysstatus = bytearray.ByteArrayToStructure<MAVLink.__mavlink_sys_status_t>(6);
var sysstatus = bytearray.ByteArrayToStructure<MAVLink.mavlink_sys_status_t>(6);
armed = sysstatus.status;
@ -595,7 +595,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_SCALED_PRESSURE];
if (bytearray != null)
{
var pres = bytearray.ByteArrayToStructure<MAVLink.__mavlink_scaled_pressure_t>(6);
var pres = bytearray.ByteArrayToStructure<MAVLink.mavlink_scaled_pressure_t>(6);
press_abs = pres.press_abs;
press_temp = pres.temperature;
}
@ -603,7 +603,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_SENSOR_OFFSETS];
if (bytearray != null)
{
var sensofs = bytearray.ByteArrayToStructure<MAVLink.__mavlink_sensor_offsets_t>(6);
var sensofs = bytearray.ByteArrayToStructure<MAVLink.mavlink_sensor_offsets_t>(6);
mag_ofs_x = sensofs.mag_ofs_x;
mag_ofs_y = sensofs.mag_ofs_y;
@ -627,7 +627,7 @@ namespace ArdupilotMega
if (bytearray != null)
{
var att = bytearray.ByteArrayToStructure<MAVLink.__mavlink_attitude_t>(6);
var att = bytearray.ByteArrayToStructure<MAVLink.mavlink_attitude_t>(6);
roll = att.roll * rad2deg;
pitch = att.pitch * rad2deg;
@ -641,7 +641,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GPS_RAW_INT];
if (bytearray != null)
{
var gps = bytearray.ByteArrayToStructure<MAVLink.__mavlink_gps_raw_int_t>(6);
var gps = bytearray.ByteArrayToStructure<MAVLink.mavlink_gps_raw_int_t>(6);
lat = gps.lat * 1.0e-7f;
lng = gps.lon * 1.0e-7f;
@ -662,7 +662,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GPS_RAW];
if (bytearray != null)
{
var gps = bytearray.ByteArrayToStructure<MAVLink.__mavlink_gps_raw_t>(6);
var gps = bytearray.ByteArrayToStructure<MAVLink.mavlink_gps_raw_t>(6);
lat = gps.lat;
lng = gps.lon;
@ -683,7 +683,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GPS_STATUS];
if (bytearray != null)
{
var gps = bytearray.ByteArrayToStructure<MAVLink.__mavlink_gps_status_t>(6);
var gps = bytearray.ByteArrayToStructure<MAVLink.mavlink_gps_status_t>(6);
satcount = gps.satellites_visible;
}
@ -691,7 +691,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GLOBAL_POSITION_INT];
if (bytearray != null)
{
var loc = bytearray.ByteArrayToStructure<MAVLink.__mavlink_global_position_int_t>(6);
var loc = bytearray.ByteArrayToStructure<MAVLink.mavlink_global_position_int_t>(6);
//alt = loc.alt / 1000.0f;
lat = loc.lat / 10000000.0f;
@ -701,7 +701,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_MISSION_CURRENT];
if (bytearray != null)
{
var wpcur = bytearray.ByteArrayToStructure<MAVLink.__mavlink_mission_current_t>(6);
var wpcur = bytearray.ByteArrayToStructure<MAVLink.mavlink_mission_current_t>(6);
int oldwp = (int)wpno;
@ -719,7 +719,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GLOBAL_POSITION];
if (bytearray != null)
{
var loc = bytearray.ByteArrayToStructure<MAVLink.__mavlink_global_position_t>(6);
var loc = bytearray.ByteArrayToStructure<MAVLink.mavlink_global_position_t>(6);
alt = loc.alt;
lat = loc.lat;
lng = loc.lon;
@ -728,7 +728,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_WAYPOINT_CURRENT];
if (bytearray != null)
{
var wpcur = bytearray.ByteArrayToStructure<MAVLink.__mavlink_waypoint_current_t>(6);
var wpcur = bytearray.ByteArrayToStructure<MAVLink.mavlink_waypoint_current_t>(6);
int oldwp = (int)wpno;
@ -746,7 +746,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_RC_CHANNELS_RAW];
if (bytearray != null)
{
var rcin = bytearray.ByteArrayToStructure<MAVLink.__mavlink_rc_channels_raw_t>(6);
var rcin = bytearray.ByteArrayToStructure<MAVLink.mavlink_rc_channels_raw_t>(6);
ch1in = rcin.chan1_raw;
ch2in = rcin.chan2_raw;
@ -763,7 +763,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_SERVO_OUTPUT_RAW];
if (bytearray != null)
{
var servoout = bytearray.ByteArrayToStructure<MAVLink.__mavlink_servo_output_raw_t>(6);
var servoout = bytearray.ByteArrayToStructure<MAVLink.mavlink_servo_output_raw_t>(6);
ch1out = servoout.servo1_raw;
ch2out = servoout.servo2_raw;
@ -781,7 +781,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_RAW_IMU];
if (bytearray != null)
{
var imu = bytearray.ByteArrayToStructure<MAVLink.__mavlink_raw_imu_t>(6);
var imu = bytearray.ByteArrayToStructure<MAVLink.mavlink_raw_imu_t>(6);
gx = imu.xgyro;
gy = imu.ygyro;
@ -801,7 +801,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_SCALED_IMU];
if (bytearray != null)
{
var imu = bytearray.ByteArrayToStructure<MAVLink.__mavlink_scaled_imu_t>(6);
var imu = bytearray.ByteArrayToStructure<MAVLink.mavlink_scaled_imu_t>(6);
gx = imu.xgyro;
gy = imu.ygyro;
@ -818,7 +818,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_VFR_HUD];
if (bytearray != null)
{
var vfr = bytearray.ByteArrayToStructure<MAVLink.__mavlink_vfr_hud_t>(6);
var vfr = bytearray.ByteArrayToStructure<MAVLink.mavlink_vfr_hud_t>(6);
groundspeed = vfr.groundspeed;
airspeed = vfr.airspeed;
@ -843,7 +843,7 @@ namespace ArdupilotMega
bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_MEMINFO];
if (bytearray != null)
{
var mem = bytearray.ByteArrayToStructure<MAVLink.__mavlink_meminfo_t>(6);
var mem = bytearray.ByteArrayToStructure<MAVLink.mavlink_meminfo_t>(6);
freemem = mem.freemem;
brklevel = mem.brkval;
}

View File

@ -0,0 +1,134 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigAccelerometerCalibration
{
/// <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.label28 = new System.Windows.Forms.Label();
this.label16 = new System.Windows.Forms.Label();
this.label15 = new System.Windows.Forms.Label();
this.pictureBoxQuadX = new System.Windows.Forms.PictureBox();
this.pictureBoxQuad = new System.Windows.Forms.PictureBox();
this.BUT_levelac2 = new ArdupilotMega.MyButton();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).BeginInit();
this.SuspendLayout();
//
// label28
//
this.label28.AutoSize = true;
this.label28.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label28.Location = new System.Drawing.Point(124, 13);
this.label28.Name = "label28";
this.label28.Size = new System.Drawing.Size(210, 13);
this.label28.TabIndex = 15;
this.label28.Text = "Level your quad to set default accel offsets";
//
// label16
//
this.label16.AutoSize = true;
this.label16.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label16.Location = new System.Drawing.Point(124, 308);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(192, 26);
this.label16.TabIndex = 13;
this.label16.Text = "NOTE: images are for presentation only\r\nwill work with hexa\'s etc";
//
// label15
//
this.label15.AutoSize = true;
this.label15.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label15.Location = new System.Drawing.Point(167, 99);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(102, 13);
this.label15.TabIndex = 12;
this.label15.Text = "Frame Setup (+ or x)";
//
// pictureBoxQuadX
//
this.pictureBoxQuadX.Cursor = System.Windows.Forms.Cursors.Hand;
this.pictureBoxQuadX.Image = global::ArdupilotMega.Properties.Resources.quadx;
this.pictureBoxQuadX.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.pictureBoxQuadX.Location = new System.Drawing.Point(226, 115);
this.pictureBoxQuadX.Name = "pictureBoxQuadX";
this.pictureBoxQuadX.Size = new System.Drawing.Size(190, 190);
this.pictureBoxQuadX.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBoxQuadX.TabIndex = 11;
this.pictureBoxQuadX.TabStop = false;
this.pictureBoxQuadX.Click += new System.EventHandler(this.pictureBoxQuadX_Click);
//
// pictureBoxQuad
//
this.pictureBoxQuad.Cursor = System.Windows.Forms.Cursors.Hand;
this.pictureBoxQuad.Image = global::ArdupilotMega.Properties.Resources.quad;
this.pictureBoxQuad.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.pictureBoxQuad.Location = new System.Drawing.Point(19, 115);
this.pictureBoxQuad.Name = "pictureBoxQuad";
this.pictureBoxQuad.Size = new System.Drawing.Size(190, 190);
this.pictureBoxQuad.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBoxQuad.TabIndex = 10;
this.pictureBoxQuad.TabStop = false;
//
// BUT_levelac2
//
this.BUT_levelac2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_levelac2.Location = new System.Drawing.Point(181, 42);
this.BUT_levelac2.Name = "BUT_levelac2";
this.BUT_levelac2.Size = new System.Drawing.Size(75, 23);
this.BUT_levelac2.TabIndex = 14;
this.BUT_levelac2.Text = "Level";
this.BUT_levelac2.UseVisualStyleBackColor = true;
//
// ConfigAccelerometerCalibration
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label28);
this.Controls.Add(this.label16);
this.Controls.Add(this.label15);
this.Controls.Add(this.pictureBoxQuadX);
this.Controls.Add(this.pictureBoxQuad);
this.Controls.Add(this.BUT_levelac2);
this.Name = "ConfigAccelerometerCalibration";
this.Size = new System.Drawing.Size(439, 356);
((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label28;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.PictureBox pictureBoxQuadX;
private System.Windows.Forms.PictureBox pictureBoxQuad;
private MyButton BUT_levelac2;
}
}

View File

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigAccelerometerCalibration : UserControl
{
public ConfigAccelerometerCalibration()
{
InitializeComponent();
}
private void pictureBoxQuadX_Click(object sender, EventArgs e)
{
}
}
}

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigArducopter : UserControl
{
public ConfigArducopter()
{
InitializeComponent();
}
}
}

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>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigArduplane : UserControl
{
public ConfigArduplane()
{
InitializeComponent();
}
}
}

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,300 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigBatteryMonitoring
{
/// <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(ConfigBatteryMonitoring));
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.label31 = new System.Windows.Forms.Label();
this.label32 = new System.Windows.Forms.Label();
this.label33 = new System.Windows.Forms.Label();
this.TXT_ampspervolt = new System.Windows.Forms.TextBox();
this.label34 = new System.Windows.Forms.Label();
this.TXT_divider = new System.Windows.Forms.TextBox();
this.label35 = new System.Windows.Forms.Label();
this.TXT_voltage = new System.Windows.Forms.TextBox();
this.TXT_inputvoltage = new System.Windows.Forms.TextBox();
this.TXT_measuredvoltage = new System.Windows.Forms.TextBox();
this.label47 = new System.Windows.Forms.Label();
this.CMB_batmonsensortype = new System.Windows.Forms.ComboBox();
this.textBox3 = new System.Windows.Forms.TextBox();
this.label29 = new System.Windows.Forms.Label();
this.label30 = new System.Windows.Forms.Label();
this.TXT_battcapacity = new System.Windows.Forms.TextBox();
this.CMB_batmontype = new System.Windows.Forms.ComboBox();
this.pictureBox5 = new System.Windows.Forms.PictureBox();
this.groupBox4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit();
this.SuspendLayout();
//
// groupBox4
//
this.groupBox4.Controls.Add(this.label31);
this.groupBox4.Controls.Add(this.label32);
this.groupBox4.Controls.Add(this.label33);
this.groupBox4.Controls.Add(this.TXT_ampspervolt);
this.groupBox4.Controls.Add(this.label34);
this.groupBox4.Controls.Add(this.TXT_divider);
this.groupBox4.Controls.Add(this.label35);
this.groupBox4.Controls.Add(this.TXT_voltage);
this.groupBox4.Controls.Add(this.TXT_inputvoltage);
this.groupBox4.Controls.Add(this.TXT_measuredvoltage);
this.groupBox4.Location = new System.Drawing.Point(14, 172);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(238, 131);
this.groupBox4.TabIndex = 50;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Calibration";
//
// label31
//
this.label31.AutoSize = true;
this.label31.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label31.Location = new System.Drawing.Point(5, 16);
this.label31.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label31.Name = "label31";
this.label31.Size = new System.Drawing.Size(110, 13);
this.label31.TabIndex = 29;
this.label31.Text = "1. APM Input voltage:";
//
// label32
//
this.label32.AutoSize = true;
this.label32.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label32.Location = new System.Drawing.Point(5, 38);
this.label32.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label32.Name = "label32";
this.label32.Size = new System.Drawing.Size(142, 13);
this.label32.TabIndex = 30;
this.label32.Text = "2. Measured battery voltage:";
//
// label33
//
this.label33.AutoSize = true;
this.label33.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label33.Location = new System.Drawing.Point(5, 60);
this.label33.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label33.Name = "label33";
this.label33.Size = new System.Drawing.Size(135, 13);
this.label33.TabIndex = 31;
this.label33.Text = "3. Battery voltage (Calced):";
//
// TXT_ampspervolt
//
this.TXT_ampspervolt.Location = new System.Drawing.Point(149, 100);
this.TXT_ampspervolt.Margin = new System.Windows.Forms.Padding(2);
this.TXT_ampspervolt.Name = "TXT_ampspervolt";
this.TXT_ampspervolt.Size = new System.Drawing.Size(76, 20);
this.TXT_ampspervolt.TabIndex = 38;
//
// label34
//
this.label34.AutoSize = true;
this.label34.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label34.Location = new System.Drawing.Point(5, 81);
this.label34.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label34.Name = "label34";
this.label34.Size = new System.Drawing.Size(134, 13);
this.label34.TabIndex = 32;
this.label34.Text = "4. Voltage divider (Calced):";
//
// TXT_divider
//
this.TXT_divider.Location = new System.Drawing.Point(149, 78);
this.TXT_divider.Margin = new System.Windows.Forms.Padding(2);
this.TXT_divider.Name = "TXT_divider";
this.TXT_divider.Size = new System.Drawing.Size(76, 20);
this.TXT_divider.TabIndex = 37;
//
// label35
//
this.label35.AutoSize = true;
this.label35.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label35.Location = new System.Drawing.Point(6, 103);
this.label35.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label35.Name = "label35";
this.label35.Size = new System.Drawing.Size(101, 13);
this.label35.TabIndex = 33;
this.label35.Text = "5. Amperes per volt:";
//
// TXT_voltage
//
this.TXT_voltage.Location = new System.Drawing.Point(149, 57);
this.TXT_voltage.Margin = new System.Windows.Forms.Padding(2);
this.TXT_voltage.Name = "TXT_voltage";
this.TXT_voltage.ReadOnly = true;
this.TXT_voltage.Size = new System.Drawing.Size(76, 20);
this.TXT_voltage.TabIndex = 36;
//
// TXT_inputvoltage
//
this.TXT_inputvoltage.Location = new System.Drawing.Point(149, 13);
this.TXT_inputvoltage.Margin = new System.Windows.Forms.Padding(2);
this.TXT_inputvoltage.Name = "TXT_inputvoltage";
this.TXT_inputvoltage.Size = new System.Drawing.Size(76, 20);
this.TXT_inputvoltage.TabIndex = 34;
//
// TXT_measuredvoltage
//
this.TXT_measuredvoltage.Location = new System.Drawing.Point(149, 35);
this.TXT_measuredvoltage.Margin = new System.Windows.Forms.Padding(2);
this.TXT_measuredvoltage.Name = "TXT_measuredvoltage";
this.TXT_measuredvoltage.Size = new System.Drawing.Size(76, 20);
this.TXT_measuredvoltage.TabIndex = 35;
//
// label47
//
this.label47.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label47.Location = new System.Drawing.Point(106, 71);
this.label47.Name = "label47";
this.label47.Size = new System.Drawing.Size(42, 13);
this.label47.TabIndex = 49;
this.label47.Text = "Sensor";
//
// CMB_batmonsensortype
//
this.CMB_batmonsensortype.FormattingEnabled = true;
this.CMB_batmonsensortype.Items.AddRange(new object[] {
"0: Other",
"1: AttoPilot 45A",
"2: AttoPilot 90A",
"3: AttoPilot 180A"});
this.CMB_batmonsensortype.Location = new System.Drawing.Point(160, 68);
this.CMB_batmonsensortype.Name = "CMB_batmonsensortype";
this.CMB_batmonsensortype.Size = new System.Drawing.Size(121, 21);
this.CMB_batmonsensortype.TabIndex = 48;
//
// textBox3
//
this.textBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
this.textBox3.Location = new System.Drawing.Point(282, 172);
this.textBox3.Margin = new System.Windows.Forms.Padding(2);
this.textBox3.Multiline = true;
this.textBox3.Name = "textBox3";
this.textBox3.ReadOnly = true;
this.textBox3.Size = new System.Drawing.Size(219, 131);
this.textBox3.TabIndex = 47;
this.textBox3.Text = resources.GetString("textBox3.Text");
//
// label29
//
this.label29.AutoSize = true;
this.label29.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label29.Location = new System.Drawing.Point(288, 45);
this.label29.Name = "label29";
this.label29.Size = new System.Drawing.Size(48, 13);
this.label29.TabIndex = 43;
this.label29.Text = "Capacity";
//
// label30
//
this.label30.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label30.Location = new System.Drawing.Point(106, 45);
this.label30.Name = "label30";
this.label30.Size = new System.Drawing.Size(42, 13);
this.label30.TabIndex = 44;
this.label30.Text = "Monitor";
//
// TXT_battcapacity
//
this.TXT_battcapacity.Location = new System.Drawing.Point(349, 42);
this.TXT_battcapacity.Name = "TXT_battcapacity";
this.TXT_battcapacity.Size = new System.Drawing.Size(83, 20);
this.TXT_battcapacity.TabIndex = 45;
//
// CMB_batmontype
//
this.CMB_batmontype.FormattingEnabled = true;
this.CMB_batmontype.Items.AddRange(new object[] {
"0: Disabled",
"3: Battery Volts",
"4: Volts & Current"});
this.CMB_batmontype.Location = new System.Drawing.Point(160, 41);
this.CMB_batmontype.Name = "CMB_batmontype";
this.CMB_batmontype.Size = new System.Drawing.Size(121, 21);
this.CMB_batmontype.TabIndex = 46;
//
// pictureBox5
//
this.pictureBox5.BackColor = System.Drawing.Color.White;
this.pictureBox5.BackgroundImage = global::ArdupilotMega.Properties.Resources.attocurrent;
this.pictureBox5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox5.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.pictureBox5.Location = new System.Drawing.Point(14, 16);
this.pictureBox5.Name = "pictureBox5";
this.pictureBox5.Size = new System.Drawing.Size(75, 75);
this.pictureBox5.TabIndex = 42;
this.pictureBox5.TabStop = false;
//
// ConfigBatteryMonitoring
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.label47);
this.Controls.Add(this.CMB_batmonsensortype);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.label29);
this.Controls.Add(this.label30);
this.Controls.Add(this.TXT_battcapacity);
this.Controls.Add(this.CMB_batmontype);
this.Controls.Add(this.pictureBox5);
this.Name = "ConfigBatteryMonitoring";
this.Size = new System.Drawing.Size(518, 322);
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.Label label31;
private System.Windows.Forms.Label label32;
private System.Windows.Forms.Label label33;
private System.Windows.Forms.TextBox TXT_ampspervolt;
private System.Windows.Forms.Label label34;
private System.Windows.Forms.TextBox TXT_divider;
private System.Windows.Forms.Label label35;
private System.Windows.Forms.TextBox TXT_voltage;
private System.Windows.Forms.TextBox TXT_inputvoltage;
private System.Windows.Forms.TextBox TXT_measuredvoltage;
private System.Windows.Forms.Label label47;
private System.Windows.Forms.ComboBox CMB_batmonsensortype;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.Label label29;
private System.Windows.Forms.Label label30;
private System.Windows.Forms.TextBox TXT_battcapacity;
private System.Windows.Forms.ComboBox CMB_batmontype;
private System.Windows.Forms.PictureBox pictureBox5;
}
}

View File

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigBatteryMonitoring : UserControl
{
public ConfigBatteryMonitoring()
{
InitializeComponent();
}
}
}

View File

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

View File

@ -0,0 +1,450 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigFlightModes
{
/// <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.components = new System.ComponentModel.Container();
this.CB_simple6 = new System.Windows.Forms.CheckBox();
this.CB_simple5 = new System.Windows.Forms.CheckBox();
this.CB_simple4 = new System.Windows.Forms.CheckBox();
this.CB_simple3 = new System.Windows.Forms.CheckBox();
this.CB_simple2 = new System.Windows.Forms.CheckBox();
this.CB_simple1 = new System.Windows.Forms.CheckBox();
this.label14 = new System.Windows.Forms.Label();
this.LBL_flightmodepwm = new System.Windows.Forms.Label();
this.label13 = new System.Windows.Forms.Label();
this.lbl_currentmode = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.CMB_fmode6 = new System.Windows.Forms.ComboBox();
this.label5 = new System.Windows.Forms.Label();
this.CMB_fmode5 = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.CMB_fmode4 = new System.Windows.Forms.ComboBox();
this.label3 = new System.Windows.Forms.Label();
this.CMB_fmode3 = new System.Windows.Forms.ComboBox();
this.label2 = new System.Windows.Forms.Label();
this.CMB_fmode2 = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.CMB_fmode1 = new System.Windows.Forms.ComboBox();
this.BUT_SaveModes = new ArdupilotMega.MyButton();
this.currentStateBindingSource = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).BeginInit();
this.SuspendLayout();
//
// CB_simple6
//
this.CB_simple6.AutoSize = true;
this.CB_simple6.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CB_simple6.Location = new System.Drawing.Point(232, 200);
this.CB_simple6.Margin = new System.Windows.Forms.Padding(2);
this.CB_simple6.Name = "CB_simple6";
this.CB_simple6.Size = new System.Drawing.Size(87, 17);
this.CB_simple6.TabIndex = 148;
this.CB_simple6.Text = "Simple Mode";
this.CB_simple6.UseVisualStyleBackColor = true;
//
// CB_simple5
//
this.CB_simple5.AutoSize = true;
this.CB_simple5.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CB_simple5.Location = new System.Drawing.Point(232, 173);
this.CB_simple5.Margin = new System.Windows.Forms.Padding(2);
this.CB_simple5.Name = "CB_simple5";
this.CB_simple5.Size = new System.Drawing.Size(87, 17);
this.CB_simple5.TabIndex = 147;
this.CB_simple5.Text = "Simple Mode";
this.CB_simple5.UseVisualStyleBackColor = true;
//
// CB_simple4
//
this.CB_simple4.AutoSize = true;
this.CB_simple4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CB_simple4.Location = new System.Drawing.Point(232, 146);
this.CB_simple4.Margin = new System.Windows.Forms.Padding(2);
this.CB_simple4.Name = "CB_simple4";
this.CB_simple4.Size = new System.Drawing.Size(87, 17);
this.CB_simple4.TabIndex = 146;
this.CB_simple4.Text = "Simple Mode";
this.CB_simple4.UseVisualStyleBackColor = true;
//
// CB_simple3
//
this.CB_simple3.AutoSize = true;
this.CB_simple3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CB_simple3.Location = new System.Drawing.Point(232, 119);
this.CB_simple3.Margin = new System.Windows.Forms.Padding(2);
this.CB_simple3.Name = "CB_simple3";
this.CB_simple3.Size = new System.Drawing.Size(87, 17);
this.CB_simple3.TabIndex = 145;
this.CB_simple3.Text = "Simple Mode";
this.CB_simple3.UseVisualStyleBackColor = true;
//
// CB_simple2
//
this.CB_simple2.AutoSize = true;
this.CB_simple2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CB_simple2.Location = new System.Drawing.Point(232, 92);
this.CB_simple2.Margin = new System.Windows.Forms.Padding(2);
this.CB_simple2.Name = "CB_simple2";
this.CB_simple2.Size = new System.Drawing.Size(87, 17);
this.CB_simple2.TabIndex = 144;
this.CB_simple2.Text = "Simple Mode";
this.CB_simple2.UseVisualStyleBackColor = true;
//
// CB_simple1
//
this.CB_simple1.AutoSize = true;
this.CB_simple1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CB_simple1.Location = new System.Drawing.Point(232, 65);
this.CB_simple1.Margin = new System.Windows.Forms.Padding(2);
this.CB_simple1.Name = "CB_simple1";
this.CB_simple1.Size = new System.Drawing.Size(87, 17);
this.CB_simple1.TabIndex = 143;
this.CB_simple1.Text = "Simple Mode";
this.CB_simple1.UseVisualStyleBackColor = true;
//
// label14
//
this.label14.AutoSize = true;
this.label14.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label14.Location = new System.Drawing.Point(94, 32);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(74, 13);
this.label14.TabIndex = 142;
this.label14.Text = "Current PWM:";
//
// LBL_flightmodepwm
//
this.LBL_flightmodepwm.AutoSize = true;
this.LBL_flightmodepwm.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.LBL_flightmodepwm.Location = new System.Drawing.Point(174, 32);
this.LBL_flightmodepwm.Name = "LBL_flightmodepwm";
this.LBL_flightmodepwm.Size = new System.Drawing.Size(13, 13);
this.LBL_flightmodepwm.TabIndex = 141;
this.LBL_flightmodepwm.Text = "0";
//
// label13
//
this.label13.AutoSize = true;
this.label13.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label13.Location = new System.Drawing.Point(94, 15);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(74, 13);
this.label13.TabIndex = 140;
this.label13.Text = "Current Mode:";
//
// lbl_currentmode
//
this.lbl_currentmode.AutoSize = true;
this.lbl_currentmode.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.currentStateBindingSource, "mode", true));
this.lbl_currentmode.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.lbl_currentmode.Location = new System.Drawing.Point(174, 15);
this.lbl_currentmode.Name = "lbl_currentmode";
this.lbl_currentmode.Size = new System.Drawing.Size(42, 13);
this.lbl_currentmode.TabIndex = 139;
this.lbl_currentmode.Text = "Manual";
//
// label12
//
this.label12.AutoSize = true;
this.label12.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label12.Location = new System.Drawing.Point(358, 66);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(76, 13);
this.label12.TabIndex = 138;
this.label12.Text = "PWM 0 - 1230";
//
// label11
//
this.label11.AutoSize = true;
this.label11.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label11.Location = new System.Drawing.Point(358, 201);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(70, 13);
this.label11.TabIndex = 137;
this.label11.Text = "PWM 1750 +";
//
// label10
//
this.label10.AutoSize = true;
this.label10.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label10.Location = new System.Drawing.Point(358, 174);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(94, 13);
this.label10.TabIndex = 136;
this.label10.Text = "PWM 1621 - 1749";
//
// label9
//
this.label9.AutoSize = true;
this.label9.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label9.Location = new System.Drawing.Point(358, 147);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(94, 13);
this.label9.TabIndex = 135;
this.label9.Text = "PWM 1491 - 1620";
//
// label8
//
this.label8.AutoSize = true;
this.label8.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label8.Location = new System.Drawing.Point(358, 120);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(94, 13);
this.label8.TabIndex = 134;
this.label8.Text = "PWM 1361 - 1490";
//
// label7
//
this.label7.AutoSize = true;
this.label7.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label7.Location = new System.Drawing.Point(358, 93);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(94, 13);
this.label7.TabIndex = 133;
this.label7.Text = "PWM 1231 - 1360";
//
// label6
//
this.label6.AutoSize = true;
this.label6.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label6.Location = new System.Drawing.Point(20, 201);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(71, 13);
this.label6.TabIndex = 131;
this.label6.Text = "Flight Mode 6";
//
// CMB_fmode6
//
this.CMB_fmode6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.CMB_fmode6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.CMB_fmode6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_fmode6.FormattingEnabled = true;
this.CMB_fmode6.Location = new System.Drawing.Point(97, 198);
this.CMB_fmode6.Name = "CMB_fmode6";
this.CMB_fmode6.Size = new System.Drawing.Size(121, 21);
this.CMB_fmode6.TabIndex = 130;
//
// label5
//
this.label5.AutoSize = true;
this.label5.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label5.Location = new System.Drawing.Point(20, 174);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(71, 13);
this.label5.TabIndex = 129;
this.label5.Text = "Flight Mode 5";
//
// CMB_fmode5
//
this.CMB_fmode5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.CMB_fmode5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.CMB_fmode5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_fmode5.FormattingEnabled = true;
this.CMB_fmode5.Location = new System.Drawing.Point(97, 171);
this.CMB_fmode5.Name = "CMB_fmode5";
this.CMB_fmode5.Size = new System.Drawing.Size(121, 21);
this.CMB_fmode5.TabIndex = 128;
//
// label4
//
this.label4.AutoSize = true;
this.label4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label4.Location = new System.Drawing.Point(20, 147);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(71, 13);
this.label4.TabIndex = 127;
this.label4.Text = "Flight Mode 4";
//
// CMB_fmode4
//
this.CMB_fmode4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.CMB_fmode4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.CMB_fmode4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_fmode4.FormattingEnabled = true;
this.CMB_fmode4.Location = new System.Drawing.Point(97, 144);
this.CMB_fmode4.Name = "CMB_fmode4";
this.CMB_fmode4.Size = new System.Drawing.Size(121, 21);
this.CMB_fmode4.TabIndex = 126;
//
// label3
//
this.label3.AutoSize = true;
this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label3.Location = new System.Drawing.Point(20, 120);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(71, 13);
this.label3.TabIndex = 125;
this.label3.Text = "Flight Mode 3";
//
// CMB_fmode3
//
this.CMB_fmode3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.CMB_fmode3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.CMB_fmode3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_fmode3.FormattingEnabled = true;
this.CMB_fmode3.Location = new System.Drawing.Point(97, 117);
this.CMB_fmode3.Name = "CMB_fmode3";
this.CMB_fmode3.Size = new System.Drawing.Size(121, 21);
this.CMB_fmode3.TabIndex = 124;
//
// label2
//
this.label2.AutoSize = true;
this.label2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label2.Location = new System.Drawing.Point(20, 93);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(71, 13);
this.label2.TabIndex = 123;
this.label2.Text = "Flight Mode 2";
//
// CMB_fmode2
//
this.CMB_fmode2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.CMB_fmode2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.CMB_fmode2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_fmode2.FormattingEnabled = true;
this.CMB_fmode2.Location = new System.Drawing.Point(97, 90);
this.CMB_fmode2.Name = "CMB_fmode2";
this.CMB_fmode2.Size = new System.Drawing.Size(121, 21);
this.CMB_fmode2.TabIndex = 122;
//
// label1
//
this.label1.AutoSize = true;
this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label1.Location = new System.Drawing.Point(20, 66);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(71, 13);
this.label1.TabIndex = 121;
this.label1.Text = "Flight Mode 1";
//
// CMB_fmode1
//
this.CMB_fmode1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.CMB_fmode1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.CMB_fmode1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_fmode1.FormattingEnabled = true;
this.CMB_fmode1.Location = new System.Drawing.Point(97, 63);
this.CMB_fmode1.Name = "CMB_fmode1";
this.CMB_fmode1.Size = new System.Drawing.Size(121, 21);
this.CMB_fmode1.TabIndex = 120;
//
// BUT_SaveModes
//
this.BUT_SaveModes.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_SaveModes.Location = new System.Drawing.Point(97, 225);
this.BUT_SaveModes.Name = "BUT_SaveModes";
this.BUT_SaveModes.Size = new System.Drawing.Size(121, 23);
this.BUT_SaveModes.TabIndex = 132;
this.BUT_SaveModes.Text = "Save Modes";
this.BUT_SaveModes.UseVisualStyleBackColor = true;
this.BUT_SaveModes.Click += new System.EventHandler(this.BUT_SaveModes_Click);
//
// ConfigFlightModes
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.CB_simple6);
this.Controls.Add(this.CB_simple5);
this.Controls.Add(this.CB_simple4);
this.Controls.Add(this.CB_simple3);
this.Controls.Add(this.CB_simple2);
this.Controls.Add(this.CB_simple1);
this.Controls.Add(this.label14);
this.Controls.Add(this.LBL_flightmodepwm);
this.Controls.Add(this.label13);
this.Controls.Add(this.lbl_currentmode);
this.Controls.Add(this.label12);
this.Controls.Add(this.label11);
this.Controls.Add(this.label10);
this.Controls.Add(this.label9);
this.Controls.Add(this.label8);
this.Controls.Add(this.label7);
this.Controls.Add(this.label6);
this.Controls.Add(this.CMB_fmode6);
this.Controls.Add(this.label5);
this.Controls.Add(this.CMB_fmode5);
this.Controls.Add(this.label4);
this.Controls.Add(this.CMB_fmode4);
this.Controls.Add(this.label3);
this.Controls.Add(this.CMB_fmode3);
this.Controls.Add(this.label2);
this.Controls.Add(this.CMB_fmode2);
this.Controls.Add(this.label1);
this.Controls.Add(this.CMB_fmode1);
this.Controls.Add(this.BUT_SaveModes);
this.Name = "ConfigFlightModes";
this.Size = new System.Drawing.Size(500, 270);
this.Load += new System.EventHandler(this.ConfigFlightModes_Load);
((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.CheckBox CB_simple6;
private System.Windows.Forms.CheckBox CB_simple5;
private System.Windows.Forms.CheckBox CB_simple4;
private System.Windows.Forms.CheckBox CB_simple3;
private System.Windows.Forms.CheckBox CB_simple2;
private System.Windows.Forms.CheckBox CB_simple1;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Label LBL_flightmodepwm;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.Label lbl_currentmode;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.ComboBox CMB_fmode6;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.ComboBox CMB_fmode5;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.ComboBox CMB_fmode4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.ComboBox CMB_fmode3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ComboBox CMB_fmode2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox CMB_fmode1;
private MyButton BUT_SaveModes;
private System.Windows.Forms.BindingSource currentStateBindingSource;
}
}

View File

@ -0,0 +1,215 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigFlightModes : UserControl
{
Timer timer = new Timer();
public ConfigFlightModes()
{
InitializeComponent();
timer.Tick += new EventHandler(timer_Tick);
timer.Enabled = true;
timer.Interval = 100;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
try
{
MainV2.cs.UpdateCurrentSettings(currentStateBindingSource);
}
catch { }
float pwm = 0;
if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane) // APM
{
if (MainV2.comPort.param.ContainsKey("FLTMODE_CH"))
{
switch ((int)(float)MainV2.comPort.param["FLTMODE_CH"])
{
case 5:
pwm = MainV2.cs.ch5in;
break;
case 6:
pwm = MainV2.cs.ch6in;
break;
case 7:
pwm = MainV2.cs.ch7in;
break;
case 8:
pwm = MainV2.cs.ch8in;
break;
default:
break;
}
LBL_flightmodepwm.Text = MainV2.comPort.param["FLTMODE_CH"].ToString() + ": " + pwm.ToString();
}
}
if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2) // ac2
{
pwm = MainV2.cs.ch5in;
LBL_flightmodepwm.Text = "5: " + MainV2.cs.ch5in.ToString();
}
Control[] fmodelist = new Control[] { CMB_fmode1, CMB_fmode2, CMB_fmode3, CMB_fmode4, CMB_fmode5, CMB_fmode6 };
foreach (Control ctl in fmodelist)
{
ctl.BackColor = Color.FromArgb(0x43, 0x44, 0x45);
}
byte no = readSwitch(pwm);
fmodelist[no].BackColor = Color.Green;
}
// from arducopter code
byte readSwitch(float inpwm)
{
int pulsewidth = (int)inpwm; // default for Arducopter
if (pulsewidth > 1230 && pulsewidth <= 1360) return 1;
if (pulsewidth > 1360 && pulsewidth <= 1490) return 2;
if (pulsewidth > 1490 && pulsewidth <= 1620) return 3;
if (pulsewidth > 1620 && pulsewidth <= 1749) return 4; // Software Manual
if (pulsewidth >= 1750) return 5; // Hardware Manual
return 0;
}
private void BUT_SaveModes_Click(object sender, EventArgs e)
{
try
{
if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane) // APM
{
MainV2.comPort.setParam("FLTMODE1", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode1.Text));
MainV2.comPort.setParam("FLTMODE2", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode2.Text));
MainV2.comPort.setParam("FLTMODE3", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode3.Text));
MainV2.comPort.setParam("FLTMODE4", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode4.Text));
MainV2.comPort.setParam("FLTMODE5", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode5.Text));
MainV2.comPort.setParam("FLTMODE6", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode6.Text));
}
if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2) // ac2
{
MainV2.comPort.setParam("FLTMODE1", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode1.Text));
MainV2.comPort.setParam("FLTMODE2", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode2.Text));
MainV2.comPort.setParam("FLTMODE3", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode3.Text));
MainV2.comPort.setParam("FLTMODE4", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode4.Text));
MainV2.comPort.setParam("FLTMODE5", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode5.Text));
MainV2.comPort.setParam("FLTMODE6", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode6.Text));
float value = (float)(CB_simple1.Checked ? (int)SimpleMode.Simple1 : 0) + (CB_simple2.Checked ? (int)SimpleMode.Simple2 : 0) + (CB_simple3.Checked ? (int)SimpleMode.Simple3 : 0)
+ (CB_simple4.Checked ? (int)SimpleMode.Simple4 : 0) + (CB_simple5.Checked ? (int)SimpleMode.Simple5 : 0) + (CB_simple6.Checked ? (int)SimpleMode.Simple6 : 0);
if (MainV2.comPort.param.ContainsKey("SIMPLE"))
MainV2.comPort.setParam("SIMPLE", value);
}
}
catch { CustomMessageBox.Show("Failed to set Flight modes"); }
BUT_SaveModes.Text = "Complete";
}
[Flags]
public enum SimpleMode
{
None = 0,
Simple1 = 1,
Simple2 = 2,
Simple3 = 4,
Simple4 = 8,
Simple5 = 16,
Simple6 = 32,
}
private void ConfigFlightModes_Load(object sender, EventArgs e)
{
if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane) // APM
{
CB_simple1.Visible = false;
CB_simple2.Visible = false;
CB_simple3.Visible = false;
CB_simple4.Visible = false;
CB_simple5.Visible = false;
CB_simple6.Visible = false;
CMB_fmode1.Items.Clear();
CMB_fmode2.Items.Clear();
CMB_fmode3.Items.Clear();
CMB_fmode4.Items.Clear();
CMB_fmode5.Items.Clear();
CMB_fmode6.Items.Clear();
CMB_fmode1.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
CMB_fmode2.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
CMB_fmode3.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
CMB_fmode4.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
CMB_fmode5.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
CMB_fmode6.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
try
{
CMB_fmode1.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE1"].ToString()).ToString();
CMB_fmode2.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE2"].ToString()).ToString();
CMB_fmode3.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE3"].ToString()).ToString();
CMB_fmode4.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE4"].ToString()).ToString();
CMB_fmode5.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE5"].ToString()).ToString();
CMB_fmode6.Text = Common.apmmodes.MANUAL.ToString();
CMB_fmode6.Enabled = false;
}
catch { }
}
if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2) // ac2
{
CMB_fmode1.Items.Clear();
CMB_fmode2.Items.Clear();
CMB_fmode3.Items.Clear();
CMB_fmode4.Items.Clear();
CMB_fmode5.Items.Clear();
CMB_fmode6.Items.Clear();
CMB_fmode1.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
CMB_fmode2.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
CMB_fmode3.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
CMB_fmode4.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
CMB_fmode5.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
CMB_fmode6.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
try
{
CMB_fmode1.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE1"].ToString()).ToString();
CMB_fmode2.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE2"].ToString()).ToString();
CMB_fmode3.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE3"].ToString()).ToString();
CMB_fmode4.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE4"].ToString()).ToString();
CMB_fmode5.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE5"].ToString()).ToString();
CMB_fmode6.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE6"].ToString()).ToString();
CMB_fmode6.Enabled = true;
int simple = int.Parse(MainV2.comPort.param["SIMPLE"].ToString());
CB_simple1.Checked = ((simple >> 0 & 1) == 1);
CB_simple2.Checked = ((simple >> 1 & 1) == 1);
CB_simple3.Checked = ((simple >> 2 & 1) == 1);
CB_simple4.Checked = ((simple >> 3 & 1) == 1);
CB_simple5.Checked = ((simple >> 4 & 1) == 1);
CB_simple6.Checked = ((simple >> 5 & 1) == 1);
}
catch { }
}
}
}
}

View File

@ -0,0 +1,126 @@
<?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>
<metadata name="currentStateBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="currentStateBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -0,0 +1,248 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigHardwareOptions
{
/// <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.BUT_MagCalibration = new ArdupilotMega.MyButton();
this.label27 = new System.Windows.Forms.Label();
this.CMB_sonartype = new System.Windows.Forms.ComboBox();
this.CHK_enableoptflow = new System.Windows.Forms.CheckBox();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
this.linkLabelmagdec = new System.Windows.Forms.LinkLabel();
this.label100 = new System.Windows.Forms.Label();
this.TXT_declination = new System.Windows.Forms.TextBox();
this.CHK_enableairspeed = new System.Windows.Forms.CheckBox();
this.CHK_enablesonar = new System.Windows.Forms.CheckBox();
this.CHK_enablecompass = new System.Windows.Forms.CheckBox();
this.pictureBox4 = new System.Windows.Forms.PictureBox();
this.pictureBox3 = new System.Windows.Forms.PictureBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// BUT_MagCalibration
//
this.BUT_MagCalibration.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_MagCalibration.Location = new System.Drawing.Point(340, 13);
this.BUT_MagCalibration.Name = "BUT_MagCalibration";
this.BUT_MagCalibration.Size = new System.Drawing.Size(75, 23);
this.BUT_MagCalibration.TabIndex = 47;
this.BUT_MagCalibration.Text = "Calibration";
this.BUT_MagCalibration.UseVisualStyleBackColor = true;
//
// label27
//
this.label27.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label27.Location = new System.Drawing.Point(445, 45);
this.label27.Name = "label27";
this.label27.Size = new System.Drawing.Size(150, 20);
this.label27.TabIndex = 46;
this.label27.Text = "in Degrees eg 2° 3\' W is -2.3";
//
// CMB_sonartype
//
this.CMB_sonartype.FormattingEnabled = true;
this.CMB_sonartype.Items.AddRange(new object[] {
"XL-EZ0",
"LV-EZ0",
"XL-EZL0"});
this.CMB_sonartype.Location = new System.Drawing.Point(243, 122);
this.CMB_sonartype.Name = "CMB_sonartype";
this.CMB_sonartype.Size = new System.Drawing.Size(121, 21);
this.CMB_sonartype.TabIndex = 45;
//
// CHK_enableoptflow
//
this.CHK_enableoptflow.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_enableoptflow.Location = new System.Drawing.Point(97, 285);
this.CHK_enableoptflow.Name = "CHK_enableoptflow";
this.CHK_enableoptflow.Size = new System.Drawing.Size(134, 19);
this.CHK_enableoptflow.TabIndex = 44;
this.CHK_enableoptflow.Text = "Enable Optical Flow";
this.CHK_enableoptflow.UseVisualStyleBackColor = true;
//
// pictureBox2
//
this.pictureBox2.BackColor = System.Drawing.Color.White;
this.pictureBox2.BackgroundImage = global::ArdupilotMega.Properties.Resources.opticalflow;
this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.pictureBox2.Location = new System.Drawing.Point(13, 259);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(75, 75);
this.pictureBox2.TabIndex = 43;
this.pictureBox2.TabStop = false;
//
// linkLabelmagdec
//
this.linkLabelmagdec.AutoSize = true;
this.linkLabelmagdec.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.linkLabelmagdec.Location = new System.Drawing.Point(325, 68);
this.linkLabelmagdec.Name = "linkLabelmagdec";
this.linkLabelmagdec.Size = new System.Drawing.Size(104, 13);
this.linkLabelmagdec.TabIndex = 42;
this.linkLabelmagdec.TabStop = true;
this.linkLabelmagdec.Text = "Declination WebSite";
//
// label100
//
this.label100.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label100.Location = new System.Drawing.Point(240, 45);
this.label100.Name = "label100";
this.label100.Size = new System.Drawing.Size(72, 16);
this.label100.TabIndex = 38;
this.label100.Text = "Declination";
//
// TXT_declination
//
this.TXT_declination.Location = new System.Drawing.Point(318, 45);
this.TXT_declination.Name = "TXT_declination";
this.TXT_declination.Size = new System.Drawing.Size(121, 20);
this.TXT_declination.TabIndex = 37;
//
// CHK_enableairspeed
//
this.CHK_enableairspeed.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_enableairspeed.Location = new System.Drawing.Point(97, 202);
this.CHK_enableairspeed.Name = "CHK_enableairspeed";
this.CHK_enableairspeed.Size = new System.Drawing.Size(103, 17);
this.CHK_enableairspeed.TabIndex = 39;
this.CHK_enableairspeed.Text = "Enable Airspeed";
this.CHK_enableairspeed.UseVisualStyleBackColor = true;
//
// CHK_enablesonar
//
this.CHK_enablesonar.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_enablesonar.Location = new System.Drawing.Point(94, 124);
this.CHK_enablesonar.Name = "CHK_enablesonar";
this.CHK_enablesonar.Size = new System.Drawing.Size(90, 17);
this.CHK_enablesonar.TabIndex = 40;
this.CHK_enablesonar.Text = "Enable Sonar";
this.CHK_enablesonar.UseVisualStyleBackColor = true;
//
// CHK_enablecompass
//
this.CHK_enablecompass.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_enablecompass.Location = new System.Drawing.Point(97, 44);
this.CHK_enablecompass.Name = "CHK_enablecompass";
this.CHK_enablecompass.Size = new System.Drawing.Size(105, 17);
this.CHK_enablecompass.TabIndex = 41;
this.CHK_enablecompass.Text = "Enable Compass";
this.CHK_enablecompass.UseVisualStyleBackColor = true;
//
// pictureBox4
//
this.pictureBox4.BackColor = System.Drawing.Color.White;
this.pictureBox4.BackgroundImage = global::ArdupilotMega.Properties.Resources.airspeed;
this.pictureBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.pictureBox4.Location = new System.Drawing.Point(13, 176);
this.pictureBox4.Name = "pictureBox4";
this.pictureBox4.Size = new System.Drawing.Size(75, 75);
this.pictureBox4.TabIndex = 36;
this.pictureBox4.TabStop = false;
//
// pictureBox3
//
this.pictureBox3.BackColor = System.Drawing.Color.White;
this.pictureBox3.BackgroundImage = global::ArdupilotMega.Properties.Resources.sonar;
this.pictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.pictureBox3.Location = new System.Drawing.Point(13, 94);
this.pictureBox3.Name = "pictureBox3";
this.pictureBox3.Size = new System.Drawing.Size(75, 75);
this.pictureBox3.TabIndex = 35;
this.pictureBox3.TabStop = false;
//
// pictureBox1
//
this.pictureBox1.BackgroundImage = global::ArdupilotMega.Properties.Resources.compass;
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox1.ErrorImage = null;
this.pictureBox1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.pictureBox1.InitialImage = null;
this.pictureBox1.Location = new System.Drawing.Point(13, 13);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(75, 75);
this.pictureBox1.TabIndex = 34;
this.pictureBox1.TabStop = false;
//
// ConfigHardwareOptions
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.BUT_MagCalibration);
this.Controls.Add(this.label27);
this.Controls.Add(this.CMB_sonartype);
this.Controls.Add(this.CHK_enableoptflow);
this.Controls.Add(this.pictureBox2);
this.Controls.Add(this.linkLabelmagdec);
this.Controls.Add(this.label100);
this.Controls.Add(this.TXT_declination);
this.Controls.Add(this.CHK_enableairspeed);
this.Controls.Add(this.CHK_enablesonar);
this.Controls.Add(this.CHK_enablecompass);
this.Controls.Add(this.pictureBox4);
this.Controls.Add(this.pictureBox3);
this.Controls.Add(this.pictureBox1);
this.Name = "ConfigHardwareOptions";
this.Size = new System.Drawing.Size(602, 351);
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private MyButton BUT_MagCalibration;
private System.Windows.Forms.Label label27;
private System.Windows.Forms.ComboBox CMB_sonartype;
private System.Windows.Forms.CheckBox CHK_enableoptflow;
private System.Windows.Forms.PictureBox pictureBox2;
private System.Windows.Forms.LinkLabel linkLabelmagdec;
private System.Windows.Forms.Label label100;
private System.Windows.Forms.TextBox TXT_declination;
private System.Windows.Forms.CheckBox CHK_enableairspeed;
private System.Windows.Forms.CheckBox CHK_enablesonar;
private System.Windows.Forms.CheckBox CHK_enablecompass;
private System.Windows.Forms.PictureBox pictureBox4;
private System.Windows.Forms.PictureBox pictureBox3;
private System.Windows.Forms.PictureBox pictureBox1;
}
}

View File

@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigHardwareOptions : UserControl
{
public ConfigHardwareOptions()
{
InitializeComponent();
}
private void CHK_enableoptflow_CheckedChanged(object sender, EventArgs e)
{
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
}
private void TXT_declination_Validated(object sender, EventArgs e)
{
}
private void CHK_enableairspeed_CheckedChanged(object sender, EventArgs e)
{
}
private void CHK_enablesonar_CheckedChanged(object sender, EventArgs e)
{
}
private void CHK_enablecompass_CheckedChanged(object sender, EventArgs e)
{
}
}
}

View File

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

View File

@ -0,0 +1,677 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigPlanner
{
/// <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.label33 = new System.Windows.Forms.Label();
this.CMB_ratesensors = new System.Windows.Forms.ComboBox();
this.label26 = new System.Windows.Forms.Label();
this.CMB_videoresolutions = new System.Windows.Forms.ComboBox();
this.label12 = new System.Windows.Forms.Label();
this.CHK_GDIPlus = new System.Windows.Forms.CheckBox();
this.label24 = new System.Windows.Forms.Label();
this.CHK_loadwponconnect = new System.Windows.Forms.CheckBox();
this.label23 = new System.Windows.Forms.Label();
this.NUM_tracklength = new System.Windows.Forms.NumericUpDown();
this.CHK_speechaltwarning = new System.Windows.Forms.CheckBox();
this.label108 = new System.Windows.Forms.Label();
this.CHK_resetapmonconnect = new System.Windows.Forms.CheckBox();
this.CHK_mavdebug = new System.Windows.Forms.CheckBox();
this.label107 = new System.Windows.Forms.Label();
this.CMB_raterc = new System.Windows.Forms.ComboBox();
this.label104 = new System.Windows.Forms.Label();
this.label103 = new System.Windows.Forms.Label();
this.label102 = new System.Windows.Forms.Label();
this.label101 = new System.Windows.Forms.Label();
this.CMB_ratestatus = new System.Windows.Forms.ComboBox();
this.CMB_rateposition = new System.Windows.Forms.ComboBox();
this.CMB_rateattitude = new System.Windows.Forms.ComboBox();
this.label99 = new System.Windows.Forms.Label();
this.label98 = new System.Windows.Forms.Label();
this.label97 = new System.Windows.Forms.Label();
this.CMB_speedunits = new System.Windows.Forms.ComboBox();
this.CMB_distunits = new System.Windows.Forms.ComboBox();
this.label96 = new System.Windows.Forms.Label();
this.label95 = new System.Windows.Forms.Label();
this.CHK_speechbattery = new System.Windows.Forms.CheckBox();
this.CHK_speechcustom = new System.Windows.Forms.CheckBox();
this.CHK_speechmode = new System.Windows.Forms.CheckBox();
this.CHK_speechwaypoint = new System.Windows.Forms.CheckBox();
this.label94 = new System.Windows.Forms.Label();
this.CMB_osdcolor = new System.Windows.Forms.ComboBox();
this.CMB_language = new System.Windows.Forms.ComboBox();
this.label93 = new System.Windows.Forms.Label();
this.CHK_enablespeech = new System.Windows.Forms.CheckBox();
this.CHK_hudshow = new System.Windows.Forms.CheckBox();
this.label92 = new System.Windows.Forms.Label();
this.CMB_videosources = new System.Windows.Forms.ComboBox();
this.BUT_Joystick = new ArdupilotMega.MyButton();
this.BUT_videostop = new ArdupilotMega.MyButton();
this.BUT_videostart = new ArdupilotMega.MyButton();
((System.ComponentModel.ISupportInitialize)(this.NUM_tracklength)).BeginInit();
this.SuspendLayout();
//
// label33
//
this.label33.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label33.Location = new System.Drawing.Point(517, 246);
this.label33.Name = "label33";
this.label33.Size = new System.Drawing.Size(43, 13);
this.label33.TabIndex = 87;
this.label33.Text = "Sensor";
//
// CMB_ratesensors
//
this.CMB_ratesensors.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_ratesensors.FormattingEnabled = true;
this.CMB_ratesensors.Items.AddRange(new object[] {
"0",
"1",
"3",
"10",
"50"});
this.CMB_ratesensors.Location = new System.Drawing.Point(564, 243);
this.CMB_ratesensors.Name = "CMB_ratesensors";
this.CMB_ratesensors.Size = new System.Drawing.Size(40, 21);
this.CMB_ratesensors.TabIndex = 88;
//
// label26
//
this.label26.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label26.Location = new System.Drawing.Point(15, 52);
this.label26.Name = "label26";
this.label26.Size = new System.Drawing.Size(100, 23);
this.label26.TabIndex = 86;
this.label26.Text = "Video Format";
//
// CMB_videoresolutions
//
this.CMB_videoresolutions.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_videoresolutions.FormattingEnabled = true;
this.CMB_videoresolutions.Location = new System.Drawing.Point(124, 49);
this.CMB_videoresolutions.Name = "CMB_videoresolutions";
this.CMB_videoresolutions.Size = new System.Drawing.Size(408, 21);
this.CMB_videoresolutions.TabIndex = 44;
//
// label12
//
this.label12.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label12.Location = new System.Drawing.Point(15, 342);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(61, 13);
this.label12.TabIndex = 84;
this.label12.Text = "HUD";
//
// CHK_GDIPlus
//
this.CHK_GDIPlus.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_GDIPlus.Location = new System.Drawing.Point(124, 342);
this.CHK_GDIPlus.Name = "CHK_GDIPlus";
this.CHK_GDIPlus.Size = new System.Drawing.Size(177, 17);
this.CHK_GDIPlus.TabIndex = 85;
this.CHK_GDIPlus.Text = "GDI+ (old type)";
this.CHK_GDIPlus.UseVisualStyleBackColor = true;
this.CHK_GDIPlus.CheckedChanged += new System.EventHandler(this.CHK_GDIPlus_CheckedChanged);
//
// label24
//
this.label24.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label24.Location = new System.Drawing.Point(15, 320);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(61, 13);
this.label24.TabIndex = 82;
this.label24.Text = "Waypoints";
//
// CHK_loadwponconnect
//
this.CHK_loadwponconnect.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_loadwponconnect.Location = new System.Drawing.Point(124, 319);
this.CHK_loadwponconnect.Name = "CHK_loadwponconnect";
this.CHK_loadwponconnect.Size = new System.Drawing.Size(177, 17);
this.CHK_loadwponconnect.TabIndex = 83;
this.CHK_loadwponconnect.Text = "Load Waypoints on connect?";
this.CHK_loadwponconnect.UseVisualStyleBackColor = true;
this.CHK_loadwponconnect.CheckedChanged += new System.EventHandler(this.CHK_loadwponconnect_CheckedChanged);
//
// label23
//
this.label23.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label23.Location = new System.Drawing.Point(15, 294);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(103, 18);
this.label23.TabIndex = 81;
this.label23.Text = "Track Length";
//
// NUM_tracklength
//
this.NUM_tracklength.Increment = new decimal(new int[] {
100,
0,
0,
0});
this.NUM_tracklength.Location = new System.Drawing.Point(124, 293);
this.NUM_tracklength.Maximum = new decimal(new int[] {
2000,
0,
0,
0});
this.NUM_tracklength.Minimum = new decimal(new int[] {
100,
0,
0,
0});
this.NUM_tracklength.Name = "NUM_tracklength";
this.NUM_tracklength.Size = new System.Drawing.Size(67, 20);
this.NUM_tracklength.TabIndex = 80;
this.NUM_tracklength.Value = new decimal(new int[] {
200,
0,
0,
0});
this.NUM_tracklength.ValueChanged += new System.EventHandler(this.NUM_tracklength_ValueChanged);
//
// CHK_speechaltwarning
//
this.CHK_speechaltwarning.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_speechaltwarning.Location = new System.Drawing.Point(564, 109);
this.CHK_speechaltwarning.Name = "CHK_speechaltwarning";
this.CHK_speechaltwarning.Size = new System.Drawing.Size(102, 17);
this.CHK_speechaltwarning.TabIndex = 79;
this.CHK_speechaltwarning.Text = "Alt Warning";
this.CHK_speechaltwarning.UseVisualStyleBackColor = true;
this.CHK_speechaltwarning.CheckedChanged += new System.EventHandler(this.CHK_speechaltwarning_CheckedChanged);
//
// label108
//
this.label108.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label108.Location = new System.Drawing.Point(15, 271);
this.label108.Name = "label108";
this.label108.Size = new System.Drawing.Size(61, 13);
this.label108.TabIndex = 45;
this.label108.Text = "APM Reset";
//
// CHK_resetapmonconnect
//
this.CHK_resetapmonconnect.Checked = true;
this.CHK_resetapmonconnect.CheckState = System.Windows.Forms.CheckState.Checked;
this.CHK_resetapmonconnect.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_resetapmonconnect.Location = new System.Drawing.Point(124, 269);
this.CHK_resetapmonconnect.Name = "CHK_resetapmonconnect";
this.CHK_resetapmonconnect.Size = new System.Drawing.Size(163, 17);
this.CHK_resetapmonconnect.TabIndex = 46;
this.CHK_resetapmonconnect.Text = "Reset APM on USB Connect";
this.CHK_resetapmonconnect.UseVisualStyleBackColor = true;
this.CHK_resetapmonconnect.CheckedChanged += new System.EventHandler(this.CHK_resetapmonconnect_CheckedChanged);
//
// CHK_mavdebug
//
this.CHK_mavdebug.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.CHK_mavdebug.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_mavdebug.Location = new System.Drawing.Point(15, 378);
this.CHK_mavdebug.Name = "CHK_mavdebug";
this.CHK_mavdebug.Size = new System.Drawing.Size(144, 17);
this.CHK_mavdebug.TabIndex = 47;
this.CHK_mavdebug.Text = "Mavlink Message Debug";
this.CHK_mavdebug.UseVisualStyleBackColor = true;
this.CHK_mavdebug.CheckedChanged += new System.EventHandler(this.CHK_mavdebug_CheckedChanged);
//
// label107
//
this.label107.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label107.Location = new System.Drawing.Point(439, 246);
this.label107.Name = "label107";
this.label107.Size = new System.Drawing.Size(22, 13);
this.label107.TabIndex = 48;
this.label107.Text = "RC";
//
// CMB_raterc
//
this.CMB_raterc.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_raterc.FormattingEnabled = true;
this.CMB_raterc.Items.AddRange(new object[] {
"0",
"1",
"3",
"10"});
this.CMB_raterc.Location = new System.Drawing.Point(470, 242);
this.CMB_raterc.Name = "CMB_raterc";
this.CMB_raterc.Size = new System.Drawing.Size(40, 21);
this.CMB_raterc.TabIndex = 49;
this.CMB_raterc.SelectedIndexChanged += new System.EventHandler(this.CMB_raterc_SelectedIndexChanged);
//
// label104
//
this.label104.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label104.Location = new System.Drawing.Point(319, 246);
this.label104.Name = "label104";
this.label104.Size = new System.Drawing.Size(69, 13);
this.label104.TabIndex = 50;
this.label104.Text = "Mode/Status";
//
// label103
//
this.label103.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label103.Location = new System.Drawing.Point(219, 246);
this.label103.Name = "label103";
this.label103.Size = new System.Drawing.Size(44, 13);
this.label103.TabIndex = 51;
this.label103.Text = "Position";
//
// label102
//
this.label102.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label102.Location = new System.Drawing.Point(121, 246);
this.label102.Name = "label102";
this.label102.Size = new System.Drawing.Size(43, 13);
this.label102.TabIndex = 52;
this.label102.Text = "Attitude";
//
// label101
//
this.label101.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label101.Location = new System.Drawing.Point(12, 246);
this.label101.Name = "label101";
this.label101.Size = new System.Drawing.Size(84, 13);
this.label101.TabIndex = 53;
this.label101.Text = "Telemetry Rates";
//
// CMB_ratestatus
//
this.CMB_ratestatus.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_ratestatus.FormattingEnabled = true;
this.CMB_ratestatus.Items.AddRange(new object[] {
"0",
"1",
"3",
"10"});
this.CMB_ratestatus.Location = new System.Drawing.Point(393, 242);
this.CMB_ratestatus.Name = "CMB_ratestatus";
this.CMB_ratestatus.Size = new System.Drawing.Size(40, 21);
this.CMB_ratestatus.TabIndex = 54;
this.CMB_ratestatus.SelectedIndexChanged += new System.EventHandler(this.CMB_ratestatus_SelectedIndexChanged);
//
// CMB_rateposition
//
this.CMB_rateposition.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_rateposition.FormattingEnabled = true;
this.CMB_rateposition.Items.AddRange(new object[] {
"0",
"1",
"3",
"10"});
this.CMB_rateposition.Location = new System.Drawing.Point(273, 242);
this.CMB_rateposition.Name = "CMB_rateposition";
this.CMB_rateposition.Size = new System.Drawing.Size(40, 21);
this.CMB_rateposition.TabIndex = 55;
this.CMB_rateposition.SelectedIndexChanged += new System.EventHandler(this.CMB_rateposition_SelectedIndexChanged);
//
// CMB_rateattitude
//
this.CMB_rateattitude.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_rateattitude.FormattingEnabled = true;
this.CMB_rateattitude.Items.AddRange(new object[] {
"0",
"1",
"3",
"10"});
this.CMB_rateattitude.Location = new System.Drawing.Point(173, 242);
this.CMB_rateattitude.Name = "CMB_rateattitude";
this.CMB_rateattitude.Size = new System.Drawing.Size(40, 21);
this.CMB_rateattitude.TabIndex = 56;
this.CMB_rateattitude.SelectedIndexChanged += new System.EventHandler(this.CMB_rateattitude_SelectedIndexChanged);
//
// label99
//
this.label99.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label99.Location = new System.Drawing.Point(268, 211);
this.label99.Name = "label99";
this.label99.Size = new System.Drawing.Size(402, 13);
this.label99.TabIndex = 57;
this.label99.Text = "NOTE: The Configuration Tab will NOT display these units, as those are raw values" +
".\r\n";
//
// label98
//
this.label98.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label98.Location = new System.Drawing.Point(15, 219);
this.label98.Name = "label98";
this.label98.Size = new System.Drawing.Size(65, 13);
this.label98.TabIndex = 58;
this.label98.Text = "Speed Units";
//
// label97
//
this.label97.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label97.Location = new System.Drawing.Point(15, 191);
this.label97.Name = "label97";
this.label97.Size = new System.Drawing.Size(52, 13);
this.label97.TabIndex = 59;
this.label97.Text = "Dist Units";
//
// CMB_speedunits
//
this.CMB_speedunits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_speedunits.FormattingEnabled = true;
this.CMB_speedunits.Location = new System.Drawing.Point(124, 216);
this.CMB_speedunits.Name = "CMB_speedunits";
this.CMB_speedunits.Size = new System.Drawing.Size(138, 21);
this.CMB_speedunits.TabIndex = 60;
this.CMB_speedunits.SelectedIndexChanged += new System.EventHandler(this.CMB_speedunits_SelectedIndexChanged);
//
// CMB_distunits
//
this.CMB_distunits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_distunits.FormattingEnabled = true;
this.CMB_distunits.Location = new System.Drawing.Point(124, 189);
this.CMB_distunits.Name = "CMB_distunits";
this.CMB_distunits.Size = new System.Drawing.Size(138, 21);
this.CMB_distunits.TabIndex = 61;
this.CMB_distunits.SelectedIndexChanged += new System.EventHandler(this.CMB_distunits_SelectedIndexChanged);
//
// label96
//
this.label96.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label96.Location = new System.Drawing.Point(15, 164);
this.label96.Name = "label96";
this.label96.Size = new System.Drawing.Size(45, 13);
this.label96.TabIndex = 62;
this.label96.Text = "Joystick";
//
// label95
//
this.label95.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label95.Location = new System.Drawing.Point(15, 113);
this.label95.Name = "label95";
this.label95.Size = new System.Drawing.Size(44, 13);
this.label95.TabIndex = 63;
this.label95.Text = "Speech";
//
// CHK_speechbattery
//
this.CHK_speechbattery.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_speechbattery.Location = new System.Drawing.Point(456, 109);
this.CHK_speechbattery.Name = "CHK_speechbattery";
this.CHK_speechbattery.Size = new System.Drawing.Size(102, 17);
this.CHK_speechbattery.TabIndex = 64;
this.CHK_speechbattery.Text = "Battery Warning";
this.CHK_speechbattery.UseVisualStyleBackColor = true;
this.CHK_speechbattery.CheckedChanged += new System.EventHandler(this.CHK_speechbattery_CheckedChanged);
//
// CHK_speechcustom
//
this.CHK_speechcustom.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_speechcustom.Location = new System.Drawing.Point(363, 109);
this.CHK_speechcustom.Name = "CHK_speechcustom";
this.CHK_speechcustom.Size = new System.Drawing.Size(87, 17);
this.CHK_speechcustom.TabIndex = 65;
this.CHK_speechcustom.Text = "Time Interval";
this.CHK_speechcustom.UseVisualStyleBackColor = true;
this.CHK_speechcustom.CheckedChanged += new System.EventHandler(this.CHK_speechcustom_CheckedChanged);
//
// CHK_speechmode
//
this.CHK_speechmode.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_speechmode.Location = new System.Drawing.Point(307, 109);
this.CHK_speechmode.Name = "CHK_speechmode";
this.CHK_speechmode.Size = new System.Drawing.Size(56, 17);
this.CHK_speechmode.TabIndex = 66;
this.CHK_speechmode.Text = "Mode ";
this.CHK_speechmode.UseVisualStyleBackColor = true;
this.CHK_speechmode.CheckedChanged += new System.EventHandler(this.CHK_speechmode_CheckedChanged);
//
// CHK_speechwaypoint
//
this.CHK_speechwaypoint.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_speechwaypoint.Location = new System.Drawing.Point(230, 109);
this.CHK_speechwaypoint.Name = "CHK_speechwaypoint";
this.CHK_speechwaypoint.Size = new System.Drawing.Size(71, 17);
this.CHK_speechwaypoint.TabIndex = 67;
this.CHK_speechwaypoint.Text = "Waypoint";
this.CHK_speechwaypoint.UseVisualStyleBackColor = true;
this.CHK_speechwaypoint.CheckedChanged += new System.EventHandler(this.CHK_speechwaypoint_CheckedChanged);
//
// label94
//
this.label94.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label94.Location = new System.Drawing.Point(15, 85);
this.label94.Name = "label94";
this.label94.Size = new System.Drawing.Size(57, 13);
this.label94.TabIndex = 68;
this.label94.Text = "OSD Color";
//
// CMB_osdcolor
//
this.CMB_osdcolor.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CMB_osdcolor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_osdcolor.FormattingEnabled = true;
this.CMB_osdcolor.Location = new System.Drawing.Point(124, 82);
this.CMB_osdcolor.Name = "CMB_osdcolor";
this.CMB_osdcolor.Size = new System.Drawing.Size(138, 21);
this.CMB_osdcolor.TabIndex = 69;
this.CMB_osdcolor.SelectedIndexChanged += new System.EventHandler(this.CMB_osdcolor_SelectedIndexChanged);
//
// CMB_language
//
this.CMB_language.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_language.FormattingEnabled = true;
this.CMB_language.Location = new System.Drawing.Point(124, 133);
this.CMB_language.Name = "CMB_language";
this.CMB_language.Size = new System.Drawing.Size(138, 21);
this.CMB_language.TabIndex = 70;
this.CMB_language.SelectedIndexChanged += new System.EventHandler(this.CMB_language_SelectedIndexChanged);
//
// label93
//
this.label93.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label93.Location = new System.Drawing.Point(15, 137);
this.label93.Name = "label93";
this.label93.Size = new System.Drawing.Size(69, 13);
this.label93.TabIndex = 71;
this.label93.Text = "UI Language";
//
// CHK_enablespeech
//
this.CHK_enablespeech.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_enablespeech.Location = new System.Drawing.Point(124, 109);
this.CHK_enablespeech.Name = "CHK_enablespeech";
this.CHK_enablespeech.Size = new System.Drawing.Size(99, 17);
this.CHK_enablespeech.TabIndex = 72;
this.CHK_enablespeech.Text = "Enable Speech";
this.CHK_enablespeech.UseVisualStyleBackColor = true;
this.CHK_enablespeech.CheckedChanged += new System.EventHandler(this.CHK_enablespeech_CheckedChanged);
//
// CHK_hudshow
//
this.CHK_hudshow.Checked = true;
this.CHK_hudshow.CheckState = System.Windows.Forms.CheckState.Checked;
this.CHK_hudshow.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_hudshow.Location = new System.Drawing.Point(537, 17);
this.CHK_hudshow.Name = "CHK_hudshow";
this.CHK_hudshow.Size = new System.Drawing.Size(125, 17);
this.CHK_hudshow.TabIndex = 73;
this.CHK_hudshow.Text = "Enable HUD Overlay";
this.CHK_hudshow.UseVisualStyleBackColor = true;
this.CHK_hudshow.Click += new System.EventHandler(this.CHK_hudshow_CheckedChanged);
//
// label92
//
this.label92.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label92.Location = new System.Drawing.Point(15, 18);
this.label92.Name = "label92";
this.label92.Size = new System.Drawing.Size(100, 23);
this.label92.TabIndex = 74;
this.label92.Text = "Video Device";
//
// CMB_videosources
//
this.CMB_videosources.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CMB_videosources.FormattingEnabled = true;
this.CMB_videosources.Location = new System.Drawing.Point(124, 15);
this.CMB_videosources.Name = "CMB_videosources";
this.CMB_videosources.Size = new System.Drawing.Size(245, 21);
this.CMB_videosources.TabIndex = 75;
this.CMB_videosources.SelectedIndexChanged += new System.EventHandler(this.CMB_videosources_SelectedIndexChanged);
//
// BUT_Joystick
//
this.BUT_Joystick.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_Joystick.Location = new System.Drawing.Point(124, 160);
this.BUT_Joystick.Name = "BUT_Joystick";
this.BUT_Joystick.Size = new System.Drawing.Size(99, 23);
this.BUT_Joystick.TabIndex = 76;
this.BUT_Joystick.Text = "Joystick Setup";
this.BUT_Joystick.UseVisualStyleBackColor = true;
this.BUT_Joystick.Click += new System.EventHandler(this.BUT_Joystick_Click);
//
// BUT_videostop
//
this.BUT_videostop.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_videostop.Location = new System.Drawing.Point(456, 13);
this.BUT_videostop.Name = "BUT_videostop";
this.BUT_videostop.Size = new System.Drawing.Size(75, 23);
this.BUT_videostop.TabIndex = 77;
this.BUT_videostop.Text = "Stop";
this.BUT_videostop.UseVisualStyleBackColor = true;
this.BUT_videostop.Click += new System.EventHandler(this.BUT_videostop_Click);
//
// BUT_videostart
//
this.BUT_videostart.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_videostart.Location = new System.Drawing.Point(375, 13);
this.BUT_videostart.Name = "BUT_videostart";
this.BUT_videostart.Size = new System.Drawing.Size(75, 23);
this.BUT_videostart.TabIndex = 78;
this.BUT_videostart.Text = "Start";
this.BUT_videostart.UseVisualStyleBackColor = true;
this.BUT_videostart.Click += new System.EventHandler(this.BUT_videostart_Click);
//
// ConfigPlanner
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label33);
this.Controls.Add(this.CMB_ratesensors);
this.Controls.Add(this.label26);
this.Controls.Add(this.CMB_videoresolutions);
this.Controls.Add(this.label12);
this.Controls.Add(this.CHK_GDIPlus);
this.Controls.Add(this.label24);
this.Controls.Add(this.CHK_loadwponconnect);
this.Controls.Add(this.label23);
this.Controls.Add(this.NUM_tracklength);
this.Controls.Add(this.CHK_speechaltwarning);
this.Controls.Add(this.label108);
this.Controls.Add(this.CHK_resetapmonconnect);
this.Controls.Add(this.CHK_mavdebug);
this.Controls.Add(this.label107);
this.Controls.Add(this.CMB_raterc);
this.Controls.Add(this.label104);
this.Controls.Add(this.label103);
this.Controls.Add(this.label102);
this.Controls.Add(this.label101);
this.Controls.Add(this.CMB_ratestatus);
this.Controls.Add(this.CMB_rateposition);
this.Controls.Add(this.CMB_rateattitude);
this.Controls.Add(this.label99);
this.Controls.Add(this.label98);
this.Controls.Add(this.label97);
this.Controls.Add(this.CMB_speedunits);
this.Controls.Add(this.CMB_distunits);
this.Controls.Add(this.label96);
this.Controls.Add(this.label95);
this.Controls.Add(this.CHK_speechbattery);
this.Controls.Add(this.CHK_speechcustom);
this.Controls.Add(this.CHK_speechmode);
this.Controls.Add(this.CHK_speechwaypoint);
this.Controls.Add(this.label94);
this.Controls.Add(this.CMB_osdcolor);
this.Controls.Add(this.CMB_language);
this.Controls.Add(this.label93);
this.Controls.Add(this.CHK_enablespeech);
this.Controls.Add(this.CHK_hudshow);
this.Controls.Add(this.label92);
this.Controls.Add(this.CMB_videosources);
this.Controls.Add(this.BUT_Joystick);
this.Controls.Add(this.BUT_videostop);
this.Controls.Add(this.BUT_videostart);
this.Name = "ConfigPlanner";
this.Size = new System.Drawing.Size(682, 398);
((System.ComponentModel.ISupportInitialize)(this.NUM_tracklength)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Label label33;
private System.Windows.Forms.ComboBox CMB_ratesensors;
private System.Windows.Forms.Label label26;
private System.Windows.Forms.ComboBox CMB_videoresolutions;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.CheckBox CHK_GDIPlus;
private System.Windows.Forms.Label label24;
private System.Windows.Forms.CheckBox CHK_loadwponconnect;
private System.Windows.Forms.Label label23;
private System.Windows.Forms.NumericUpDown NUM_tracklength;
private System.Windows.Forms.CheckBox CHK_speechaltwarning;
private System.Windows.Forms.Label label108;
private System.Windows.Forms.CheckBox CHK_resetapmonconnect;
private System.Windows.Forms.CheckBox CHK_mavdebug;
private System.Windows.Forms.Label label107;
private System.Windows.Forms.ComboBox CMB_raterc;
private System.Windows.Forms.Label label104;
private System.Windows.Forms.Label label103;
private System.Windows.Forms.Label label102;
private System.Windows.Forms.Label label101;
private System.Windows.Forms.ComboBox CMB_ratestatus;
private System.Windows.Forms.ComboBox CMB_rateposition;
private System.Windows.Forms.ComboBox CMB_rateattitude;
private System.Windows.Forms.Label label99;
private System.Windows.Forms.Label label98;
private System.Windows.Forms.Label label97;
private System.Windows.Forms.ComboBox CMB_speedunits;
private System.Windows.Forms.ComboBox CMB_distunits;
private System.Windows.Forms.Label label96;
private System.Windows.Forms.Label label95;
private System.Windows.Forms.CheckBox CHK_speechbattery;
private System.Windows.Forms.CheckBox CHK_speechcustom;
private System.Windows.Forms.CheckBox CHK_speechmode;
private System.Windows.Forms.CheckBox CHK_speechwaypoint;
private System.Windows.Forms.Label label94;
private System.Windows.Forms.ComboBox CMB_osdcolor;
private System.Windows.Forms.ComboBox CMB_language;
private System.Windows.Forms.Label label93;
private System.Windows.Forms.CheckBox CHK_enablespeech;
private System.Windows.Forms.CheckBox CHK_hudshow;
private System.Windows.Forms.Label label92;
private System.Windows.Forms.ComboBox CMB_videosources;
private MyButton BUT_Joystick;
private MyButton BUT_videostop;
private MyButton BUT_videostart;
}
}

View File

@ -0,0 +1,372 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using DirectShowLib;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigPlanner : UserControl
{
// AR todo: replicate this functionality
private bool startup = false;
public ConfigPlanner()
{
InitializeComponent();
}
private void BUT_videostart_Click(object sender, EventArgs e)
{
// stop first
BUT_videostop_Click(sender, e);
var bmp = (GCSViews.Configuration.GCSBitmapInfo)CMB_videoresolutions.SelectedItem;
try
{
MainV2.cam = new WebCamService.Capture(CMB_videosources.SelectedIndex, bmp.Media);
MainV2.cam.showhud = CHK_hudshow.Checked;
MainV2.cam.Start();
MainV2.config["video_options"] = CMB_videoresolutions.SelectedIndex;
BUT_videostart.Enabled = false;
}
catch (Exception ex) { CustomMessageBox.Show("Camera Fail: " + ex.Message); }
}
private void BUT_videostop_Click(object sender, EventArgs e)
{
BUT_videostart.Enabled = true;
if (MainV2.cam != null)
{
MainV2.cam.Dispose();
MainV2.cam = null;
}
}
private void CMB_videosources_MouseClick(object sender, MouseEventArgs e)
{
// the reason why i dont populate this list is because on linux/mac this call will fail.
WebCamService.Capture capt = new WebCamService.Capture();
List<string> devices = WebCamService.Capture.getDevices();
CMB_videosources.DataSource = devices;
capt.Dispose();
}
private void CMB_videosources_SelectedIndexChanged(object sender, EventArgs e)
{
int hr;
int count;
int size;
object o;
IBaseFilter capFilter = null;
ICaptureGraphBuilder2 capGraph = null;
AMMediaType media = null;
VideoInfoHeader v;
VideoStreamConfigCaps c;
List<GCSViews.Configuration.GCSBitmapInfo> modes = new List<GCSViews.Configuration.GCSBitmapInfo>();
// Get the ICaptureGraphBuilder2
capGraph = (ICaptureGraphBuilder2)new CaptureGraphBuilder2();
IFilterGraph2 m_FilterGraph = (IFilterGraph2)new FilterGraph();
DsDevice[] capDevices;
capDevices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
// Add the video device
hr = m_FilterGraph.AddSourceFilterForMoniker(capDevices[CMB_videosources.SelectedIndex].Mon, null, "Video input", out capFilter);
try
{
DsError.ThrowExceptionForHR(hr);
}
catch (Exception ex)
{
CustomMessageBox.Show("Can not add video source\n" + ex.ToString());
return;
}
// Find the stream config interface
hr = capGraph.FindInterface(PinCategory.Capture, MediaType.Video, capFilter, typeof(IAMStreamConfig).GUID, out o);
DsError.ThrowExceptionForHR(hr);
IAMStreamConfig videoStreamConfig = o as IAMStreamConfig;
if (videoStreamConfig == null)
{
throw new Exception("Failed to get IAMStreamConfig");
}
hr = videoStreamConfig.GetNumberOfCapabilities(out count, out size);
DsError.ThrowExceptionForHR(hr);
IntPtr TaskMemPointer = Marshal.AllocCoTaskMem(size);
for (int i = 0; i < count; i++)
{
IntPtr ptr = IntPtr.Zero;
hr = videoStreamConfig.GetStreamCaps(i, out media, TaskMemPointer);
v = (VideoInfoHeader)Marshal.PtrToStructure(media.formatPtr, typeof(VideoInfoHeader));
c = (VideoStreamConfigCaps)Marshal.PtrToStructure(TaskMemPointer, typeof(VideoStreamConfigCaps));
modes.Add(new GCSViews.Configuration.GCSBitmapInfo(v.BmiHeader.Width, v.BmiHeader.Height, c.MaxFrameInterval, c.VideoStandard.ToString(), media));
}
Marshal.FreeCoTaskMem(TaskMemPointer);
DsUtils.FreeAMMediaType(media);
CMB_videoresolutions.DataSource = modes;
if (MainV2.getConfig("video_options") != "" && CMB_videosources.Text != "")
{
CMB_videoresolutions.SelectedIndex = int.Parse(MainV2.getConfig("video_options"));
}
}
private void CHK_hudshow_CheckedChanged(object sender, EventArgs e)
{
GCSViews.FlightData.myhud.hudon = CHK_hudshow.Checked;
}
private void CHK_enablespeech_CheckedChanged(object sender, EventArgs e)
{
MainV2.speechEnable = CHK_enablespeech.Checked;
MainV2.config["speechenable"] = CHK_enablespeech.Checked;
if (MainV2.speechEngine != null)
MainV2.speechEngine.SpeakAsyncCancelAll();
}
private void CMB_language_SelectedIndexChanged(object sender, EventArgs e)
{
MainV2.instance.changelanguage((CultureInfo)CMB_language.SelectedItem);
#if !DEBUG
MessageBox.Show("Please Restart the Planner");
Application.Exit();
#endif
}
private void CMB_osdcolor_SelectedIndexChanged(object sender, EventArgs e)
{
if (startup)
return;
if (CMB_osdcolor.Text != "")
{
MainV2.config["hudcolor"] = CMB_osdcolor.Text;
GCSViews.FlightData.myhud.hudcolor = Color.FromKnownColor((KnownColor)Enum.Parse(typeof(KnownColor), CMB_osdcolor.Text));
}
}
private void CHK_speechwaypoint_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
MainV2.config["speechwaypointenabled"] = ((CheckBox)sender).Checked.ToString();
if (((CheckBox)sender).Checked)
{
string speechstring = "Heading to Waypoint {wpn}";
if (MainV2.config["speechwaypoint"] != null)
speechstring = MainV2.config["speechwaypoint"].ToString();
Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
MainV2.config["speechwaypoint"] = speechstring;
}
}
private void CHK_speechmode_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
MainV2.config["speechmodeenabled"] = ((CheckBox)sender).Checked.ToString();
if (((CheckBox)sender).Checked)
{
string speechstring = "Mode changed to {mode}";
if (MainV2.config["speechmode"] != null)
speechstring = MainV2.config["speechmode"].ToString();
Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
MainV2.config["speechmode"] = speechstring;
}
}
private void CHK_speechcustom_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
MainV2.config["speechcustomenabled"] = ((CheckBox)sender).Checked.ToString();
if (((CheckBox)sender).Checked)
{
string speechstring = "Heading to Waypoint {wpn}, altitude is {alt}, Ground speed is {gsp} ";
if (MainV2.config["speechcustom"] != null)
speechstring = MainV2.config["speechcustom"].ToString();
Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
MainV2.config["speechcustom"] = speechstring;
}
}
private void BUT_rerequestparams_Click(object sender, EventArgs e)
{
if (!MainV2.comPort.BaseStream.IsOpen)
return;
((MyButton)sender).Enabled = false;
try
{
MainV2.comPort.getParamList();
}
catch { CustomMessageBox.Show("Error: getting param list"); }
((MyButton)sender).Enabled = true;
startup = true;
// AR todo: fix this up
//Configuration_Load(null, null);
}
private void CHK_speechbattery_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
MainV2.config["speechbatteryenabled"] = ((CheckBox)sender).Checked.ToString();
if (((CheckBox)sender).Checked)
{
string speechstring = "WARNING, Battery at {batv} Volt";
if (MainV2.config["speechbattery"] != null)
speechstring = MainV2.config["speechbattery"].ToString();
Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
MainV2.config["speechbattery"] = speechstring;
speechstring = "9.6";
if (MainV2.config["speechbatteryvolt"] != null)
speechstring = MainV2.config["speechbatteryvolt"].ToString();
Common.InputBox("Battery Level", "What Voltage do you want to warn at?", ref speechstring);
MainV2.config["speechbatteryvolt"] = speechstring;
}
}
private void BUT_Joystick_Click(object sender, EventArgs e)
{
Form joy = new JoystickSetup();
ThemeManager.ApplyThemeTo(joy);
joy.Show();
}
private void CMB_distunits_SelectedIndexChanged(object sender, EventArgs e)
{
if (startup)
return;
MainV2.config["distunits"] = CMB_distunits.Text;
MainV2.instance.changeunits();
}
private void CMB_speedunits_SelectedIndexChanged(object sender, EventArgs e)
{
if (startup)
return;
MainV2.config["speedunits"] = CMB_speedunits.Text;
MainV2.instance.changeunits();
}
private void CMB_rateattitude_SelectedIndexChanged(object sender, EventArgs e)
{
MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
MainV2.cs.rateattitude = byte.Parse(((ComboBox)sender).Text);
}
private void CMB_rateposition_SelectedIndexChanged(object sender, EventArgs e)
{
MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
MainV2.cs.rateposition = byte.Parse(((ComboBox)sender).Text);
}
private void CMB_ratestatus_SelectedIndexChanged(object sender, EventArgs e)
{
MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
MainV2.cs.ratestatus = byte.Parse(((ComboBox)sender).Text);
}
private void CMB_raterc_SelectedIndexChanged(object sender, EventArgs e)
{
MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
MainV2.cs.raterc = byte.Parse(((ComboBox)sender).Text);
}
private void CMB_ratesensors_SelectedIndexChanged(object sender, EventArgs e)
{
MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
MainV2.cs.ratesensors = byte.Parse(((ComboBox)sender).Text);
}
private void CHK_mavdebug_CheckedChanged(object sender, EventArgs e)
{
MainV2.comPort.debugmavlink = CHK_mavdebug.Checked;
}
private void CHK_resetapmonconnect_CheckedChanged(object sender, EventArgs e)
{
MainV2.config[((CheckBox)sender).Name] = ((CheckBox)sender).Checked.ToString();
}
private void CHK_speechaltwarning_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
MainV2.config["speechaltenabled"] = ((CheckBox)sender).Checked.ToString();
if (((CheckBox)sender).Checked)
{
string speechstring = "WARNING, low altitude {alt}";
if (MainV2.config["speechalt"] != null)
speechstring = MainV2.config["speechalt"].ToString();
Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
MainV2.config["speechalt"] = speechstring;
speechstring = "2";
if (MainV2.config["speechaltheight"] != null)
speechstring = MainV2.config["speechaltheight"].ToString();
Common.InputBox("Min Alt", "What altitude do you want to warn at? (relative to home)", ref speechstring);
MainV2.config["speechaltheight"] = (double.Parse(speechstring) / MainV2.cs.multiplierdist).ToString(); // save as m
}
}
private void NUM_tracklength_ValueChanged(object sender, EventArgs e)
{
MainV2.config["NUM_tracklength"] = NUM_tracklength.Value.ToString();
}
private void CHK_loadwponconnect_CheckedChanged(object sender, EventArgs e)
{
MainV2.config["loadwpsonconnect"] = CHK_loadwponconnect.Checked.ToString();
}
private void CHK_GDIPlus_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
CustomMessageBox.Show("You need to restart the planner for this to take effect");
MainV2.config["CHK_GDIPlus"] = CHK_GDIPlus.Checked.ToString();
}
}
}

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,366 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigRadioInput
{
/// <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.components = new System.ComponentModel.Container();
this.groupBoxElevons = new System.Windows.Forms.GroupBox();
this.CHK_mixmode = new System.Windows.Forms.CheckBox();
this.CHK_elevonch2rev = new System.Windows.Forms.CheckBox();
this.CHK_elevonrev = new System.Windows.Forms.CheckBox();
this.CHK_elevonch1rev = new System.Windows.Forms.CheckBox();
this.CHK_revch3 = new System.Windows.Forms.CheckBox();
this.CHK_revch4 = new System.Windows.Forms.CheckBox();
this.CHK_revch2 = new System.Windows.Forms.CheckBox();
this.CHK_revch1 = new System.Windows.Forms.CheckBox();
this.BUT_Calibrateradio = new ArdupilotMega.MyButton();
this.BAR8 = new ArdupilotMega.HorizontalProgressBar2();
this.BAR7 = new ArdupilotMega.HorizontalProgressBar2();
this.BAR6 = new ArdupilotMega.HorizontalProgressBar2();
this.BAR5 = new ArdupilotMega.HorizontalProgressBar2();
this.BARpitch = new ArdupilotMega.VerticalProgressBar2();
this.BARthrottle = new ArdupilotMega.VerticalProgressBar2();
this.BARyaw = new ArdupilotMega.HorizontalProgressBar2();
this.BARroll = new ArdupilotMega.HorizontalProgressBar2();
this.currentStateBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.groupBoxElevons.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).BeginInit();
this.SuspendLayout();
//
// groupBoxElevons
//
this.groupBoxElevons.Controls.Add(this.CHK_mixmode);
this.groupBoxElevons.Controls.Add(this.CHK_elevonch2rev);
this.groupBoxElevons.Controls.Add(this.CHK_elevonrev);
this.groupBoxElevons.Controls.Add(this.CHK_elevonch1rev);
this.groupBoxElevons.Location = new System.Drawing.Point(12, 356);
this.groupBoxElevons.Name = "groupBoxElevons";
this.groupBoxElevons.Size = new System.Drawing.Size(409, 42);
this.groupBoxElevons.TabIndex = 125;
this.groupBoxElevons.TabStop = false;
this.groupBoxElevons.Text = "Elevon Config";
//
// CHK_mixmode
//
this.CHK_mixmode.AutoSize = true;
this.CHK_mixmode.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_mixmode.Location = new System.Drawing.Point(13, 19);
this.CHK_mixmode.Name = "CHK_mixmode";
this.CHK_mixmode.Size = new System.Drawing.Size(64, 17);
this.CHK_mixmode.TabIndex = 107;
this.CHK_mixmode.Text = "Elevons";
this.CHK_mixmode.UseVisualStyleBackColor = true;
this.CHK_mixmode.CheckedChanged += new System.EventHandler(this.CHK_mixmode_CheckedChanged);
//
// CHK_elevonch2rev
//
this.CHK_elevonch2rev.AutoSize = true;
this.CHK_elevonch2rev.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_elevonch2rev.Location = new System.Drawing.Point(292, 19);
this.CHK_elevonch2rev.Name = "CHK_elevonch2rev";
this.CHK_elevonch2rev.Size = new System.Drawing.Size(111, 17);
this.CHK_elevonch2rev.TabIndex = 110;
this.CHK_elevonch2rev.Text = "Elevons CH2 Rev";
this.CHK_elevonch2rev.UseVisualStyleBackColor = true;
this.CHK_elevonch2rev.CheckedChanged += new System.EventHandler(this.CHK_elevonch2rev_CheckedChanged);
//
// CHK_elevonrev
//
this.CHK_elevonrev.AutoSize = true;
this.CHK_elevonrev.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_elevonrev.Location = new System.Drawing.Point(82, 19);
this.CHK_elevonrev.Name = "CHK_elevonrev";
this.CHK_elevonrev.Size = new System.Drawing.Size(87, 17);
this.CHK_elevonrev.TabIndex = 108;
this.CHK_elevonrev.Text = "Elevons Rev";
this.CHK_elevonrev.UseVisualStyleBackColor = true;
this.CHK_elevonrev.CheckedChanged += new System.EventHandler(this.CHK_elevonrev_CheckedChanged);
//
// CHK_elevonch1rev
//
this.CHK_elevonch1rev.AutoSize = true;
this.CHK_elevonch1rev.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_elevonch1rev.Location = new System.Drawing.Point(175, 19);
this.CHK_elevonch1rev.Name = "CHK_elevonch1rev";
this.CHK_elevonch1rev.Size = new System.Drawing.Size(111, 17);
this.CHK_elevonch1rev.TabIndex = 109;
this.CHK_elevonch1rev.Text = "Elevons CH1 Rev";
this.CHK_elevonch1rev.UseVisualStyleBackColor = true;
this.CHK_elevonch1rev.CheckedChanged += new System.EventHandler(this.CHK_elevonch1rev_CheckedChanged);
//
// CHK_revch3
//
this.CHK_revch3.AutoSize = true;
this.CHK_revch3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_revch3.Location = new System.Drawing.Point(278, 161);
this.CHK_revch3.Name = "CHK_revch3";
this.CHK_revch3.Size = new System.Drawing.Size(66, 17);
this.CHK_revch3.TabIndex = 124;
this.CHK_revch3.Text = "Reverse";
this.CHK_revch3.UseVisualStyleBackColor = true;
this.CHK_revch3.CheckedChanged += new System.EventHandler(this.CHK_revch3_CheckedChanged);
//
// CHK_revch4
//
this.CHK_revch4.AutoSize = true;
this.CHK_revch4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_revch4.Location = new System.Drawing.Point(306, 313);
this.CHK_revch4.Name = "CHK_revch4";
this.CHK_revch4.Size = new System.Drawing.Size(66, 17);
this.CHK_revch4.TabIndex = 123;
this.CHK_revch4.Text = "Reverse";
this.CHK_revch4.UseVisualStyleBackColor = true;
this.CHK_revch4.CheckedChanged += new System.EventHandler(this.CHK_revch4_CheckedChanged);
//
// CHK_revch2
//
this.CHK_revch2.AutoSize = true;
this.CHK_revch2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_revch2.Location = new System.Drawing.Point(62, 161);
this.CHK_revch2.Name = "CHK_revch2";
this.CHK_revch2.Size = new System.Drawing.Size(66, 17);
this.CHK_revch2.TabIndex = 122;
this.CHK_revch2.Text = "Reverse";
this.CHK_revch2.UseVisualStyleBackColor = true;
this.CHK_revch2.CheckedChanged += new System.EventHandler(this.CHK_revch2_CheckedChanged);
//
// CHK_revch1
//
this.CHK_revch1.AutoSize = true;
this.CHK_revch1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CHK_revch1.Location = new System.Drawing.Point(306, 19);
this.CHK_revch1.Name = "CHK_revch1";
this.CHK_revch1.Size = new System.Drawing.Size(66, 17);
this.CHK_revch1.TabIndex = 121;
this.CHK_revch1.Text = "Reverse";
this.CHK_revch1.UseVisualStyleBackColor = true;
this.CHK_revch1.CheckedChanged += new System.EventHandler(this.CHK_revch1_CheckedChanged);
//
// BUT_Calibrateradio
//
this.BUT_Calibrateradio.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_Calibrateradio.Location = new System.Drawing.Point(473, 347);
this.BUT_Calibrateradio.Name = "BUT_Calibrateradio";
this.BUT_Calibrateradio.Size = new System.Drawing.Size(134, 23);
this.BUT_Calibrateradio.TabIndex = 120;
this.BUT_Calibrateradio.Text = "Calibrate Radio";
this.BUT_Calibrateradio.UseVisualStyleBackColor = true;
this.BUT_Calibrateradio.Click += new System.EventHandler(this.BUT_Calibrateradio_Click);
//
// BAR8
//
this.BAR8.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
this.BAR8.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.BAR8.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch8in", true));
this.BAR8.Label = "Radio 8";
this.BAR8.Location = new System.Drawing.Point(437, 247);
this.BAR8.Maximum = 2200;
this.BAR8.maxline = 0;
this.BAR8.Minimum = 800;
this.BAR8.minline = 0;
this.BAR8.Name = "BAR8";
this.BAR8.Size = new System.Drawing.Size(170, 25);
this.BAR8.TabIndex = 119;
this.BAR8.Value = 1500;
this.BAR8.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
//
// BAR7
//
this.BAR7.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
this.BAR7.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.BAR7.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch7in", true));
this.BAR7.Label = "Radio 7";
this.BAR7.Location = new System.Drawing.Point(437, 192);
this.BAR7.Maximum = 2200;
this.BAR7.maxline = 0;
this.BAR7.Minimum = 800;
this.BAR7.minline = 0;
this.BAR7.Name = "BAR7";
this.BAR7.Size = new System.Drawing.Size(170, 25);
this.BAR7.TabIndex = 118;
this.BAR7.Value = 1500;
this.BAR7.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
//
// BAR6
//
this.BAR6.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
this.BAR6.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.BAR6.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch6in", true));
this.BAR6.Label = "Radio 6";
this.BAR6.Location = new System.Drawing.Point(437, 137);
this.BAR6.Maximum = 2200;
this.BAR6.maxline = 0;
this.BAR6.Minimum = 800;
this.BAR6.minline = 0;
this.BAR6.Name = "BAR6";
this.BAR6.Size = new System.Drawing.Size(170, 25);
this.BAR6.TabIndex = 117;
this.BAR6.Value = 1500;
this.BAR6.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
//
// BAR5
//
this.BAR5.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
this.BAR5.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.BAR5.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch5in", true));
this.BAR5.Label = "Radio 5";
this.BAR5.Location = new System.Drawing.Point(437, 82);
this.BAR5.Maximum = 2200;
this.BAR5.maxline = 0;
this.BAR5.Minimum = 800;
this.BAR5.minline = 0;
this.BAR5.Name = "BAR5";
this.BAR5.Size = new System.Drawing.Size(170, 25);
this.BAR5.TabIndex = 116;
this.BAR5.Value = 1500;
this.BAR5.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
//
// BARpitch
//
this.BARpitch.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
this.BARpitch.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.BARpitch.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch2in", true));
this.BARpitch.Label = "Pitch";
this.BARpitch.Location = new System.Drawing.Point(134, 64);
this.BARpitch.Maximum = 2200;
this.BARpitch.maxline = 0;
this.BARpitch.Minimum = 800;
this.BARpitch.minline = 0;
this.BARpitch.Name = "BARpitch";
this.BARpitch.Size = new System.Drawing.Size(47, 211);
this.BARpitch.TabIndex = 115;
this.BARpitch.Value = 1500;
this.BARpitch.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
//
// BARthrottle
//
this.BARthrottle.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(68)))), ((int)(((byte)(69)))));
this.BARthrottle.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.BARthrottle.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch3in", true));
this.BARthrottle.Label = "Throttle";
this.BARthrottle.Location = new System.Drawing.Point(350, 64);
this.BARthrottle.Maximum = 2200;
this.BARthrottle.maxline = 0;
this.BARthrottle.Minimum = 800;
this.BARthrottle.minline = 0;
this.BARthrottle.Name = "BARthrottle";
this.BARthrottle.Size = new System.Drawing.Size(47, 211);
this.BARthrottle.TabIndex = 114;
this.BARthrottle.Value = 1000;
this.BARthrottle.ValueColor = System.Drawing.Color.Magenta;
//
// BARyaw
//
this.BARyaw.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
this.BARyaw.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.BARyaw.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch4in", true));
this.BARyaw.Label = "Yaw";
this.BARyaw.Location = new System.Drawing.Point(12, 307);
this.BARyaw.Maximum = 2200;
this.BARyaw.maxline = 0;
this.BARyaw.Minimum = 800;
this.BARyaw.minline = 0;
this.BARyaw.Name = "BARyaw";
this.BARyaw.Size = new System.Drawing.Size(288, 23);
this.BARyaw.TabIndex = 113;
this.BARyaw.Value = 1500;
this.BARyaw.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
//
// BARroll
//
this.BARroll.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
this.BARroll.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.BARroll.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch1in", true));
this.BARroll.Label = "Roll";
this.BARroll.Location = new System.Drawing.Point(12, 13);
this.BARroll.Maximum = 2200;
this.BARroll.maxline = 0;
this.BARroll.Minimum = 800;
this.BARroll.minline = 0;
this.BARroll.Name = "BARroll";
this.BARroll.Size = new System.Drawing.Size(288, 23);
this.BARroll.TabIndex = 112;
this.BARroll.Value = 1500;
this.BARroll.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
//
// currentStateBindingSource
//
this.currentStateBindingSource.DataSource = typeof(ArdupilotMega.CurrentState);
//
// ConfigRadioInput
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBoxElevons);
this.Controls.Add(this.CHK_revch3);
this.Controls.Add(this.CHK_revch4);
this.Controls.Add(this.CHK_revch2);
this.Controls.Add(this.CHK_revch1);
this.Controls.Add(this.BUT_Calibrateradio);
this.Controls.Add(this.BAR8);
this.Controls.Add(this.BAR7);
this.Controls.Add(this.BAR6);
this.Controls.Add(this.BAR5);
this.Controls.Add(this.BARpitch);
this.Controls.Add(this.BARthrottle);
this.Controls.Add(this.BARyaw);
this.Controls.Add(this.BARroll);
this.Name = "ConfigRadioInput";
this.Size = new System.Drawing.Size(628, 406);
this.Load += new System.EventHandler(this.ConfigRadioInput_Load);
this.groupBoxElevons.ResumeLayout(false);
this.groupBoxElevons.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.GroupBox groupBoxElevons;
private System.Windows.Forms.CheckBox CHK_mixmode;
private System.Windows.Forms.CheckBox CHK_elevonch2rev;
private System.Windows.Forms.CheckBox CHK_elevonrev;
private System.Windows.Forms.CheckBox CHK_elevonch1rev;
private System.Windows.Forms.CheckBox CHK_revch3;
private System.Windows.Forms.CheckBox CHK_revch4;
private System.Windows.Forms.CheckBox CHK_revch2;
private System.Windows.Forms.CheckBox CHK_revch1;
private MyButton BUT_Calibrateradio;
private HorizontalProgressBar2 BAR8;
private HorizontalProgressBar2 BAR7;
private HorizontalProgressBar2 BAR6;
private HorizontalProgressBar2 BAR5;
private VerticalProgressBar2 BARpitch;
private VerticalProgressBar2 BARthrottle;
private HorizontalProgressBar2 BARyaw;
private HorizontalProgressBar2 BARroll;
private System.Windows.Forms.BindingSource currentStateBindingSource;
}
}

View File

@ -0,0 +1,357 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigRadioInput : UserControl
{
bool startup = false;
bool run = false;
float[] rcmin = new float[8];
float[] rcmax = new float[8];
float[] rctrim = new float[8];
Timer timer = new Timer();
public ConfigRadioInput()
{
InitializeComponent();
// setup rc calib extents
for (int a = 0; a < rcmin.Length; a++)
{
rcmin[a] = 3000;
rcmax[a] = 0;
rctrim[a] = 1500;
}
// setup rc update
timer.Tick += new EventHandler(timer_Tick);
timer.Enabled = true;
timer.Interval = 100;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
// update all linked controls - 10hz
try
{
MainV2.cs.UpdateCurrentSettings(currentStateBindingSource);
}
catch { }
}
private void ConfigRadioInput_Load(object sender, EventArgs e)
{
startup = true;
if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2)
{
groupBoxElevons.Visible = false;
}
else
{
try
{
CHK_mixmode.Checked = MainV2.comPort.param["ELEVON_MIXING"].ToString() == "1";
CHK_elevonrev.Checked = MainV2.comPort.param["ELEVON_REVERSE"].ToString() == "1";
CHK_elevonch1rev.Checked = MainV2.comPort.param["ELEVON_CH1_REV"].ToString() == "1";
CHK_elevonch2rev.Checked = MainV2.comPort.param["ELEVON_CH2_REV"].ToString() == "1";
}
catch { } // this will fail on arducopter
}
try
{
CHK_revch1.Checked = MainV2.comPort.param["RC1_REV"].ToString() == "-1";
CHK_revch2.Checked = MainV2.comPort.param["RC2_REV"].ToString() == "-1";
CHK_revch3.Checked = MainV2.comPort.param["RC3_REV"].ToString() == "-1";
CHK_revch4.Checked = MainV2.comPort.param["RC4_REV"].ToString() == "-1";
}
catch (Exception ex) { CustomMessageBox.Show("Missing RC rev Param " + ex.ToString()); }
startup = false;
}
private void BUT_Calibrateradio_Click(object sender, EventArgs e)
{
if (run)
{
BUT_Calibrateradio.Text = "Completed";
run = false;
return;
}
CustomMessageBox.Show("Ensure your transmitter is on and receiver is powered and connected\nEnsure your motor does not have power/no props!!!");
byte oldrc = MainV2.cs.raterc;
byte oldatt = MainV2.cs.rateattitude;
byte oldpos = MainV2.cs.rateposition;
byte oldstatus = MainV2.cs.ratestatus;
MainV2.cs.raterc = 10;
MainV2.cs.rateattitude = 0;
MainV2.cs.rateposition = 0;
MainV2.cs.ratestatus = 0;
try
{
MainV2.comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RC_CHANNELS, 10);
}
catch { }
BUT_Calibrateradio.Text = "Click when Done";
run = true;
while (run)
{
Application.DoEvents();
System.Threading.Thread.Sleep(5);
MainV2.cs.UpdateCurrentSettings(currentStateBindingSource, true, MainV2.comPort);
// check for non 0 values
if (MainV2.cs.ch1in > 800 && MainV2.cs.ch1in < 2200)
{
rcmin[0] = Math.Min(rcmin[0], MainV2.cs.ch1in);
rcmax[0] = Math.Max(rcmax[0], MainV2.cs.ch1in);
rcmin[1] = Math.Min(rcmin[1], MainV2.cs.ch2in);
rcmax[1] = Math.Max(rcmax[1], MainV2.cs.ch2in);
rcmin[2] = Math.Min(rcmin[2], MainV2.cs.ch3in);
rcmax[2] = Math.Max(rcmax[2], MainV2.cs.ch3in);
rcmin[3] = Math.Min(rcmin[3], MainV2.cs.ch4in);
rcmax[3] = Math.Max(rcmax[3], MainV2.cs.ch4in);
rcmin[4] = Math.Min(rcmin[4], MainV2.cs.ch5in);
rcmax[4] = Math.Max(rcmax[4], MainV2.cs.ch5in);
rcmin[5] = Math.Min(rcmin[5], MainV2.cs.ch6in);
rcmax[5] = Math.Max(rcmax[5], MainV2.cs.ch6in);
rcmin[6] = Math.Min(rcmin[6], MainV2.cs.ch7in);
rcmax[6] = Math.Max(rcmax[6], MainV2.cs.ch7in);
rcmin[7] = Math.Min(rcmin[7], MainV2.cs.ch8in);
rcmax[7] = Math.Max(rcmax[7], MainV2.cs.ch8in);
BARroll.minline = (int)rcmin[0];
BARroll.maxline = (int)rcmax[0];
BARpitch.minline = (int)rcmin[1];
BARpitch.maxline = (int)rcmax[1];
BARthrottle.minline = (int)rcmin[2];
BARthrottle.maxline = (int)rcmax[2];
BARyaw.minline = (int)rcmin[3];
BARyaw.maxline = (int)rcmax[3];
BAR5.minline = (int)rcmin[4];
BAR5.maxline = (int)rcmax[4];
BAR6.minline = (int)rcmin[5];
BAR6.maxline = (int)rcmax[5];
BAR7.minline = (int)rcmin[6];
BAR7.maxline = (int)rcmax[6];
BAR8.minline = (int)rcmin[7];
BAR8.maxline = (int)rcmax[7];
}
}
CustomMessageBox.Show("Ensure all your sticks are centered and throttle is down, and click ok to continue");
MainV2.cs.UpdateCurrentSettings(currentStateBindingSource, true, MainV2.comPort);
rctrim[0] = MainV2.cs.ch1in;
rctrim[1] = MainV2.cs.ch2in;
rctrim[2] = MainV2.cs.ch3in;
rctrim[3] = MainV2.cs.ch4in;
rctrim[4] = MainV2.cs.ch5in;
rctrim[5] = MainV2.cs.ch6in;
rctrim[6] = MainV2.cs.ch7in;
rctrim[7] = MainV2.cs.ch8in;
string data = "---------------\n";
for (int a = 0; a < 8; a++)
{
// we want these to save no matter what
BUT_Calibrateradio.Text = "Saving";
try
{
if (rcmin[a] != rcmax[a])
{
MainV2.comPort.setParam("RC" + (a + 1).ToString("0") + "_MIN", rcmin[a]);
MainV2.comPort.setParam("RC" + (a + 1).ToString("0") + "_MAX", rcmax[a]);
}
if (rctrim[a] < 1195 || rctrim[a] > 1205)
MainV2.comPort.setParam("RC" + (a + 1).ToString("0") + "_TRIM", rctrim[a]);
}
catch { CustomMessageBox.Show("Failed to set Channel " + (a + 1).ToString()); }
data = data + "CH" + (a + 1) + " " + rcmin[a] + " | " + rcmax[a] + "\n";
}
MainV2.cs.raterc = oldrc;
MainV2.cs.rateattitude = oldatt;
MainV2.cs.rateposition = oldpos;
MainV2.cs.ratestatus = oldstatus;
try
{
MainV2.comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RC_CHANNELS, oldrc);
}
catch { }
CustomMessageBox.Show("Here are the detected radio options\nNOTE Channels not connected are displayed as 1500 +-2\nNormal values are around 1100 | 1900\nChannel:Min | Max \n" + data, "Radio");
BUT_Calibrateradio.Text = "Completed";
}
private void CHK_mixmode_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
try
{
if (MainV2.comPort.param["ELEVON_MIXING"] == null)
{
CustomMessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString());
}
else
{
MainV2.comPort.setParam("ELEVON_MIXING", ((CheckBox)sender).Checked == true ? 1 : 0);
}
}
catch { CustomMessageBox.Show("Set ELEVON_MIXING Failed"); }
}
private void CHK_elevonrev_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
try
{
if (MainV2.comPort.param["ELEVON_REVERSE"] == null)
{
CustomMessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString());
}
else
{
MainV2.comPort.setParam("ELEVON_REVERSE", ((CheckBox)sender).Checked == true ? 1 : 0);
}
}
catch { CustomMessageBox.Show("Set ELEVON_REVERSE Failed"); }
}
private void CHK_elevonch1rev_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
try
{
if (MainV2.comPort.param["ELEVON_CH1_REV"] == null)
{
CustomMessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString());
}
else
{
MainV2.comPort.setParam("ELEVON_CH1_REV", ((CheckBox)sender).Checked == true ? 1 : 0);
}
}
catch { CustomMessageBox.Show("Set ELEVON_CH1_REV Failed"); }
}
private void CHK_elevonch2rev_CheckedChanged(object sender, EventArgs e)
{
if (startup)
return;
try
{
if (MainV2.comPort.param["ELEVON_CH2_REV"] == null)
{
CustomMessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString());
}
else
{
MainV2.comPort.setParam("ELEVON_CH2_REV", ((CheckBox)sender).Checked == true ? 1 : 0);
}
}
catch { CustomMessageBox.Show("Set ELEVON_CH2_REV Failed"); }
}
private void CHK_revch1_CheckedChanged(object sender, EventArgs e)
{
reverseChannel("RC1_REV", ((CheckBox)sender).Checked, BARroll);
}
private void CHK_revch2_CheckedChanged(object sender, EventArgs e)
{
reverseChannel("RC2_REV", ((CheckBox)sender).Checked, BARpitch);
}
private void CHK_revch3_CheckedChanged(object sender, EventArgs e)
{
reverseChannel("RC3_REV", ((CheckBox)sender).Checked, BARthrottle);
}
private void CHK_revch4_CheckedChanged(object sender, EventArgs e)
{
reverseChannel("RC4_REV", ((CheckBox)sender).Checked, BARyaw);
}
void reverseChannel(string name, bool normalreverse, Control progressbar)
{
if (normalreverse == true)
{
((HorizontalProgressBar2)progressbar).reverse = true;
((HorizontalProgressBar2)progressbar).BackgroundColor = Color.FromArgb(148, 193, 31);
((HorizontalProgressBar2)progressbar).ValueColor = Color.FromArgb(0x43, 0x44, 0x45);
}
else
{
((HorizontalProgressBar2)progressbar).reverse = false;
((HorizontalProgressBar2)progressbar).BackgroundColor = Color.FromArgb(0x43, 0x44, 0x45);
((HorizontalProgressBar2)progressbar).ValueColor = Color.FromArgb(148, 193, 31);
}
if (startup)
return;
if (MainV2.comPort.param["SWITCH_ENABLE"] != null && (float)MainV2.comPort.param["SWITCH_ENABLE"] == 1)
{
try
{
MainV2.comPort.setParam("SWITCH_ENABLE", 0);
CustomMessageBox.Show("Disabled Dip Switchs");
}
catch { CustomMessageBox.Show("Error Disableing Dip Switch"); }
}
try
{
int i = normalreverse == false ? 1 : -1;
MainV2.comPort.setParam(name, i);
}
catch { CustomMessageBox.Show("Error Reversing"); }
}
}
}

View File

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

View File

@ -0,0 +1,205 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigRawParams
{
/// <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.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
this.BUT_compare = new ArdupilotMega.MyButton();
this.BUT_rerequestparams = new ArdupilotMega.MyButton();
this.BUT_writePIDS = new ArdupilotMega.MyButton();
this.BUT_save = new ArdupilotMega.MyButton();
this.BUT_load = new ArdupilotMega.MyButton();
this.Params = new System.Windows.Forms.DataGridView();
this.Command = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Value = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Default = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.mavScale = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.RawValue = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.Params)).BeginInit();
this.SuspendLayout();
//
// BUT_compare
//
this.BUT_compare.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_compare.Location = new System.Drawing.Point(341, 119);
this.BUT_compare.Name = "BUT_compare";
this.BUT_compare.Size = new System.Drawing.Size(103, 19);
this.BUT_compare.TabIndex = 72;
this.BUT_compare.Text = "Compare Params";
this.BUT_compare.UseVisualStyleBackColor = true;
this.BUT_compare.Click += new System.EventHandler(this.BUT_compare_Click);
//
// BUT_rerequestparams
//
this.BUT_rerequestparams.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_rerequestparams.Location = new System.Drawing.Point(341, 94);
this.BUT_rerequestparams.Name = "BUT_rerequestparams";
this.BUT_rerequestparams.Size = new System.Drawing.Size(103, 19);
this.BUT_rerequestparams.TabIndex = 67;
this.BUT_rerequestparams.Text = "Refresh Params";
this.BUT_rerequestparams.UseVisualStyleBackColor = true;
this.BUT_rerequestparams.Click += new System.EventHandler(this.BUT_rerequestparams_Click);
//
// BUT_writePIDS
//
this.BUT_writePIDS.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_writePIDS.Location = new System.Drawing.Point(341, 69);
this.BUT_writePIDS.Name = "BUT_writePIDS";
this.BUT_writePIDS.Size = new System.Drawing.Size(103, 19);
this.BUT_writePIDS.TabIndex = 69;
this.BUT_writePIDS.Text = "Write Params";
this.BUT_writePIDS.UseVisualStyleBackColor = true;
this.BUT_writePIDS.Click += new System.EventHandler(this.BUT_writePIDS_Click);
//
// BUT_save
//
this.BUT_save.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_save.Location = new System.Drawing.Point(341, 35);
this.BUT_save.Margin = new System.Windows.Forms.Padding(0);
this.BUT_save.Name = "BUT_save";
this.BUT_save.Size = new System.Drawing.Size(104, 19);
this.BUT_save.TabIndex = 70;
this.BUT_save.Text = "Save";
this.BUT_save.UseVisualStyleBackColor = true;
this.BUT_save.Click += new System.EventHandler(this.BUT_save_Click);
//
// BUT_load
//
this.BUT_load.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_load.Location = new System.Drawing.Point(341, 7);
this.BUT_load.Margin = new System.Windows.Forms.Padding(0);
this.BUT_load.Name = "BUT_load";
this.BUT_load.Size = new System.Drawing.Size(104, 19);
this.BUT_load.TabIndex = 71;
this.BUT_load.Text = "Load";
this.BUT_load.UseVisualStyleBackColor = true;
this.BUT_load.Click += new System.EventHandler(this.BUT_load_Click);
//
// Params
//
this.Params.AllowUserToAddRows = false;
this.Params.AllowUserToDeleteRows = false;
this.Params.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.Maroon;
dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White;
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.Params.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
this.Params.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.Params.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Command,
this.Value,
this.Default,
this.mavScale,
this.RawValue});
this.Params.Location = new System.Drawing.Point(14, 3);
this.Params.Name = "Params";
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.ActiveCaption;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.Params.RowHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.Params.RowHeadersVisible = false;
this.Params.RowHeadersWidth = 150;
this.Params.Size = new System.Drawing.Size(321, 302);
this.Params.TabIndex = 68;
//
// Command
//
this.Command.HeaderText = "Command";
this.Command.Name = "Command";
this.Command.ReadOnly = true;
this.Command.Width = 150;
//
// Value
//
this.Value.HeaderText = "Value";
this.Value.Name = "Value";
this.Value.Width = 80;
//
// Default
//
this.Default.HeaderText = "Default";
this.Default.Name = "Default";
this.Default.Visible = false;
//
// mavScale
//
this.mavScale.HeaderText = "mavScale";
this.mavScale.Name = "mavScale";
this.mavScale.Visible = false;
//
// RawValue
//
this.RawValue.HeaderText = "RawValue";
this.RawValue.Name = "RawValue";
this.RawValue.Visible = false;
//
// ConfigRawParams
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.BUT_compare);
this.Controls.Add(this.BUT_rerequestparams);
this.Controls.Add(this.BUT_writePIDS);
this.Controls.Add(this.BUT_save);
this.Controls.Add(this.BUT_load);
this.Controls.Add(this.Params);
this.Name = "ConfigRawParams";
this.Size = new System.Drawing.Size(460, 305);
this.Load += new System.EventHandler(this.ConfigRawParams_Load);
this.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.ConfigRawParams_ControlAdded);
this.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.ConfigRawParams_ControlRemoved);
((System.ComponentModel.ISupportInitialize)(this.Params)).EndInit();
this.ResumeLayout(false);
}
#endregion
private MyButton BUT_compare;
private MyButton BUT_rerequestparams;
private MyButton BUT_writePIDS;
private MyButton BUT_save;
private MyButton BUT_load;
private System.Windows.Forms.DataGridView Params;
private System.Windows.Forms.DataGridViewTextBoxColumn Command;
private System.Windows.Forms.DataGridViewTextBoxColumn Value;
private System.Windows.Forms.DataGridViewTextBoxColumn Default;
private System.Windows.Forms.DataGridViewTextBoxColumn mavScale;
private System.Windows.Forms.DataGridViewTextBoxColumn RawValue;
}
}

View File

@ -0,0 +1,287 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using log4net;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigRawParams : UserControl
{
private static readonly ILog log =
LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Changes made to the params between writing to the copter
readonly Hashtable _changes = new Hashtable();
// ?
internal bool startup = true;
public ConfigRawParams()
{
InitializeComponent();
}
Hashtable loadParamFile(string Filename)
{
Hashtable param = new Hashtable();
StreamReader sr = new StreamReader(Filename);
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (line.Contains("NOTE:"))
CustomMessageBox.Show(line, "Saved Note");
if (line.StartsWith("#"))
continue;
string[] items = line.Split(new char[] { ' ', ',', '\t' }, StringSplitOptions.RemoveEmptyEntries);
if (items.Length != 2)
continue;
string name = items[0];
float value = float.Parse(items[1], new System.Globalization.CultureInfo("en-US"));
MAVLink.modifyParamForDisplay(true, name, ref value);
if (name == "SYSID_SW_MREV")
continue;
if (name == "WP_TOTAL")
continue;
if (name == "CMD_TOTAL")
continue;
if (name == "FENCE_TOTAL")
continue;
if (name == "SYS_NUM_RESETS")
continue;
if (name == "ARSPD_OFFSET")
continue;
if (name == "GND_ABS_PRESS")
continue;
if (name == "GND_TEMP")
continue;
if (name == "CMD_INDEX")
continue;
if (name == "LOG_LASTFILE")
continue;
param[name] = value;
}
sr.Close();
return param;
}
private void BUT_load_Click(object sender, EventArgs e)
{
var ofd = new OpenFileDialog
{
AddExtension = true,
DefaultExt = ".param",
RestoreDirectory = true,
Filter = "Param List|*.param;*.parm"
};
var dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{
Hashtable param2 = loadParamFile(ofd.FileName);
foreach (string name in param2.Keys)
{
string value = param2[name].ToString();
// set param table as well
foreach (DataGridViewRow row in Params.Rows)
{
if (name == "SYSID_SW_MREV")
continue;
if (name == "WP_TOTAL")
continue;
if (name == "CMD_TOTAL")
continue;
if (name == "FENCE_TOTAL")
continue;
if (name == "SYS_NUM_RESETS")
continue;
if (name == "ARSPD_OFFSET")
continue;
if (name == "GND_ABS_PRESS")
continue;
if (name == "GND_TEMP")
continue;
if (name == "CMD_INDEX")
continue;
if (name == "LOG_LASTFILE")
continue;
if (row.Cells[0].Value.ToString() == name)
{
if (row.Cells[1].Value.ToString() != value.ToString())
row.Cells[1].Value = value;
break;
}
}
}
}
}
private void BUT_save_Click(object sender, EventArgs e)
{
var sfd = new SaveFileDialog
{
AddExtension = true,
DefaultExt = ".param",
RestoreDirectory = true,
Filter = "Param List|*.param;*.parm"
};
var dr = sfd.ShowDialog();
if (dr == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(sfd.OpenFile());
string input = DateTime.Now + " Frame : + | Arducopter Kit | Kit motors";
if (MainV2.APMFirmware == MainV2.Firmwares.ArduPlane)
{
input = DateTime.Now + " Plane: Skywalker";
}
Common.InputBox("Custom Note", "Enter your Notes/Frame Type etc", ref input);
if (input != "")
sw.WriteLine("NOTE: " + input.Replace(',', '|'));
foreach (DataGridViewRow row in Params.Rows)
{
float value = float.Parse(row.Cells[1].Value.ToString());
MAVLink.modifyParamForDisplay(false, row.Cells[0].Value.ToString(), ref value);
sw.WriteLine(row.Cells[0].Value.ToString() + "," + value.ToString(new System.Globalization.CultureInfo("en-US")));
}
sw.Close();
}
}
private void BUT_writePIDS_Click(object sender, EventArgs e)
{
var temp = (Hashtable)_changes.Clone();
foreach (string value in temp.Keys)
{
try
{
MainV2.comPort.setParam(value, (float)_changes[value]);
try
{
// set control as well
var textControls = this.Controls.Find(value, true);
if (textControls.Length > 0)
{
textControls[0].BackColor = Color.FromArgb(0x43, 0x44, 0x45);
}
}
catch
{
}
try
{
// set param table as well
foreach (DataGridViewRow row in Params.Rows)
{
if (row.Cells[0].Value.ToString() == value)
{
row.Cells[1].Style.BackColor = Color.FromArgb(0x43, 0x44, 0x45);
_changes.Remove(value);
break;
}
}
}
catch { }
}
catch
{
CustomMessageBox.Show("Set " + value + " Failed");
}
}
}
private void BUT_compare_Click(object sender, EventArgs e)
{
Hashtable param2 = new Hashtable();
var ofd = new OpenFileDialog
{
AddExtension = true,
DefaultExt = ".param",
RestoreDirectory = true,
Filter = "Param List|*.param;*.parm"
};
var dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{
param2 = loadParamFile(ofd.FileName);
int fixme;
//var paramCompareForm = new ParamCompare((Form)this, MainV2.comPort.param, param2);
//ThemeManager.ApplyThemeTo(paramCompareForm);
//paramCompareForm.ShowDialog();
}
}
private void BUT_rerequestparams_Click(object sender, EventArgs e)
{
if (!MainV2.comPort.BaseStream.IsOpen)
return;
((Control)sender).Enabled = false;
try
{
MainV2.comPort.getParamList();
}
catch (Exception ex)
{
log.Error("Exception getting param list", ex);
CustomMessageBox.Show("Error: getting param list");
}
((Control)sender).Enabled = true;
startup = true;
// Todo: this populates or the combos etc and what not. This shoudl prob be a bsv button
}
private void ConfigRawParams_Load(object sender, EventArgs e)
{
}
private void ConfigRawParams_ControlRemoved(object sender, ControlEventArgs e)
{
}
private void ConfigRawParams_ControlAdded(object sender, ControlEventArgs e)
{
}
}
}

View File

@ -0,0 +1,132 @@
<?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>
<metadata name="Command.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Value.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Default.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="RawValue.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View File

@ -0,0 +1,857 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class ConfigTradHeli
{
/// <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.groupBox5 = new System.Windows.Forms.GroupBox();
this.H1_ENABLE = new System.Windows.Forms.RadioButton();
this.CCPM = new System.Windows.Forms.RadioButton();
this.BUT_swash_manual = new ArdupilotMega.MyButton();
this.label41 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.label46 = new System.Windows.Forms.Label();
this.label45 = new System.Windows.Forms.Label();
this.GYR_ENABLE = new System.Windows.Forms.CheckBox();
this.GYR_GAIN = new System.Windows.Forms.TextBox();
this.BUT_HS4save = new ArdupilotMega.MyButton();
this.label21 = new System.Windows.Forms.Label();
this.COL_MIN = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.COL_MID = new System.Windows.Forms.TextBox();
this.COL_MAX = new System.Windows.Forms.TextBox();
this.BUT_0collective = new ArdupilotMega.MyButton();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label24 = new System.Windows.Forms.Label();
this.HS4_MIN = new System.Windows.Forms.TextBox();
this.HS4_MAX = new System.Windows.Forms.TextBox();
this.label40 = new System.Windows.Forms.Label();
this.HS3_TRIM = new System.Windows.Forms.NumericUpDown();
this.HS2_TRIM = new System.Windows.Forms.NumericUpDown();
this.HS1_TRIM = new System.Windows.Forms.NumericUpDown();
this.label39 = new System.Windows.Forms.Label();
this.label38 = new System.Windows.Forms.Label();
this.label37 = new System.Windows.Forms.Label();
this.label36 = new System.Windows.Forms.Label();
this.label26 = new System.Windows.Forms.Label();
this.PIT_MAX = new System.Windows.Forms.TextBox();
this.label25 = new System.Windows.Forms.Label();
this.ROL_MAX = new System.Windows.Forms.TextBox();
this.label23 = new System.Windows.Forms.Label();
this.label22 = new System.Windows.Forms.Label();
this.label20 = new System.Windows.Forms.Label();
this.label19 = new System.Windows.Forms.Label();
this.label18 = new System.Windows.Forms.Label();
this.SV3_POS = new System.Windows.Forms.TextBox();
this.SV2_POS = new System.Windows.Forms.TextBox();
this.SV1_POS = new System.Windows.Forms.TextBox();
this.HS3_REV = new System.Windows.Forms.CheckBox();
this.HS2_REV = new System.Windows.Forms.CheckBox();
this.HS1_REV = new System.Windows.Forms.CheckBox();
this.label17 = new System.Windows.Forms.Label();
this.HS4 = new ArdupilotMega.HorizontalProgressBar2();
this.HS3 = new ArdupilotMega.VerticalProgressBar2();
this.Gservoloc = new AGaugeApp.AGauge();
this.groupBox5.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.HS3_TRIM)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.HS2_TRIM)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.HS1_TRIM)).BeginInit();
this.SuspendLayout();
//
// groupBox5
//
this.groupBox5.Controls.Add(this.H1_ENABLE);
this.groupBox5.Controls.Add(this.CCPM);
this.groupBox5.Location = new System.Drawing.Point(257, 11);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(120, 43);
this.groupBox5.TabIndex = 169;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "Swash Type";
//
// H1_ENABLE
//
this.H1_ENABLE.AutoSize = true;
this.H1_ENABLE.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.H1_ENABLE.Location = new System.Drawing.Point(67, 19);
this.H1_ENABLE.Name = "H1_ENABLE";
this.H1_ENABLE.Size = new System.Drawing.Size(39, 17);
this.H1_ENABLE.TabIndex = 137;
this.H1_ENABLE.TabStop = true;
this.H1_ENABLE.Text = "H1";
this.H1_ENABLE.UseVisualStyleBackColor = true;
//
// CCPM
//
this.CCPM.AutoSize = true;
this.CCPM.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.CCPM.Location = new System.Drawing.Point(6, 19);
this.CCPM.Name = "CCPM";
this.CCPM.Size = new System.Drawing.Size(55, 17);
this.CCPM.TabIndex = 136;
this.CCPM.TabStop = true;
this.CCPM.Text = "CCPM";
this.CCPM.UseVisualStyleBackColor = true;
//
// BUT_swash_manual
//
this.BUT_swash_manual.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_swash_manual.Location = new System.Drawing.Point(302, 83);
this.BUT_swash_manual.Name = "BUT_swash_manual";
this.BUT_swash_manual.Size = new System.Drawing.Size(69, 23);
this.BUT_swash_manual.TabIndex = 138;
this.BUT_swash_manual.Text = "Manual";
this.BUT_swash_manual.UseVisualStyleBackColor = true;
//
// label41
//
this.label41.AutoSize = true;
this.label41.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label41.Location = new System.Drawing.Point(19, 157);
this.label41.Name = "label41";
this.label41.Size = new System.Drawing.Size(40, 13);
this.label41.TabIndex = 122;
this.label41.Text = "Bottom";
//
// groupBox3
//
this.groupBox3.Controls.Add(this.label46);
this.groupBox3.Controls.Add(this.label45);
this.groupBox3.Controls.Add(this.GYR_ENABLE);
this.groupBox3.Controls.Add(this.GYR_GAIN);
this.groupBox3.Location = new System.Drawing.Point(437, 314);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(101, 63);
this.groupBox3.TabIndex = 168;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Gyro";
//
// label46
//
this.label46.AutoSize = true;
this.label46.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label46.Location = new System.Drawing.Point(6, 38);
this.label46.Name = "label46";
this.label46.Size = new System.Drawing.Size(29, 13);
this.label46.TabIndex = 137;
this.label46.Text = "Gain";
//
// label45
//
this.label45.AutoSize = true;
this.label45.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label45.Location = new System.Drawing.Point(6, 19);
this.label45.Name = "label45";
this.label45.Size = new System.Drawing.Size(40, 13);
this.label45.TabIndex = 136;
this.label45.Text = "Enable";
//
// GYR_ENABLE
//
this.GYR_ENABLE.AutoSize = true;
this.GYR_ENABLE.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.GYR_ENABLE.Location = new System.Drawing.Point(57, 19);
this.GYR_ENABLE.Name = "GYR_ENABLE";
this.GYR_ENABLE.Size = new System.Drawing.Size(15, 14);
this.GYR_ENABLE.TabIndex = 118;
this.GYR_ENABLE.UseVisualStyleBackColor = true;
//
// GYR_GAIN
//
this.GYR_GAIN.Location = new System.Drawing.Point(41, 35);
this.GYR_GAIN.Name = "GYR_GAIN";
this.GYR_GAIN.Size = new System.Drawing.Size(47, 20);
this.GYR_GAIN.TabIndex = 119;
this.GYR_GAIN.Text = "1000";
//
// BUT_HS4save
//
this.BUT_HS4save.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_HS4save.Location = new System.Drawing.Point(483, 174);
this.BUT_HS4save.Name = "BUT_HS4save";
this.BUT_HS4save.Size = new System.Drawing.Size(69, 23);
this.BUT_HS4save.TabIndex = 167;
this.BUT_HS4save.Text = "Manual";
this.BUT_HS4save.UseVisualStyleBackColor = true;
//
// label21
//
this.label21.AutoSize = true;
this.label21.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label21.Location = new System.Drawing.Point(24, 28);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(26, 13);
this.label21.TabIndex = 120;
this.label21.Text = "Top";
//
// COL_MIN
//
this.COL_MIN.Enabled = false;
this.COL_MIN.Location = new System.Drawing.Point(18, 173);
this.COL_MIN.Name = "COL_MIN";
this.COL_MIN.Size = new System.Drawing.Size(43, 20);
this.COL_MIN.TabIndex = 119;
this.COL_MIN.Text = "1500";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.label41);
this.groupBox1.Controls.Add(this.label21);
this.groupBox1.Controls.Add(this.COL_MIN);
this.groupBox1.Controls.Add(this.COL_MID);
this.groupBox1.Controls.Add(this.COL_MAX);
this.groupBox1.Controls.Add(this.BUT_0collective);
this.groupBox1.Location = new System.Drawing.Point(297, 95);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(80, 209);
this.groupBox1.TabIndex = 165;
this.groupBox1.TabStop = false;
//
// COL_MID
//
this.COL_MID.Enabled = false;
this.COL_MID.Location = new System.Drawing.Point(17, 117);
this.COL_MID.Name = "COL_MID";
this.COL_MID.Size = new System.Drawing.Size(44, 20);
this.COL_MID.TabIndex = 117;
this.COL_MID.Text = "1500";
//
// COL_MAX
//
this.COL_MAX.Enabled = false;
this.COL_MAX.Location = new System.Drawing.Point(18, 45);
this.COL_MAX.Name = "COL_MAX";
this.COL_MAX.Size = new System.Drawing.Size(43, 20);
this.COL_MAX.TabIndex = 115;
this.COL_MAX.Text = "1500";
//
// BUT_0collective
//
this.BUT_0collective.Enabled = false;
this.BUT_0collective.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.BUT_0collective.Location = new System.Drawing.Point(11, 89);
this.BUT_0collective.Name = "BUT_0collective";
this.BUT_0collective.Size = new System.Drawing.Size(58, 23);
this.BUT_0collective.TabIndex = 110;
this.BUT_0collective.Text = "Zero";
this.BUT_0collective.UseVisualStyleBackColor = true;
//
// groupBox2
//
this.groupBox2.Controls.Add(this.label24);
this.groupBox2.Controls.Add(this.HS4_MIN);
this.groupBox2.Controls.Add(this.HS4_MAX);
this.groupBox2.Controls.Add(this.label40);
this.groupBox2.Location = new System.Drawing.Point(437, 186);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(169, 78);
this.groupBox2.TabIndex = 166;
this.groupBox2.TabStop = false;
//
// label24
//
this.label24.AutoSize = true;
this.label24.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label24.Location = new System.Drawing.Point(112, 23);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(27, 13);
this.label24.TabIndex = 135;
this.label24.Text = "Max";
//
// HS4_MIN
//
this.HS4_MIN.Enabled = false;
this.HS4_MIN.Location = new System.Drawing.Point(21, 40);
this.HS4_MIN.Name = "HS4_MIN";
this.HS4_MIN.Size = new System.Drawing.Size(43, 20);
this.HS4_MIN.TabIndex = 132;
this.HS4_MIN.Text = "1500";
//
// HS4_MAX
//
this.HS4_MAX.Enabled = false;
this.HS4_MAX.Location = new System.Drawing.Point(106, 40);
this.HS4_MAX.Name = "HS4_MAX";
this.HS4_MAX.Size = new System.Drawing.Size(43, 20);
this.HS4_MAX.TabIndex = 133;
this.HS4_MAX.Text = "1500";
//
// label40
//
this.label40.AutoSize = true;
this.label40.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label40.Location = new System.Drawing.Point(27, 23);
this.label40.Name = "label40";
this.label40.Size = new System.Drawing.Size(24, 13);
this.label40.TabIndex = 134;
this.label40.Text = "Min";
//
// HS3_TRIM
//
this.HS3_TRIM.Location = new System.Drawing.Point(126, 314);
this.HS3_TRIM.Maximum = new decimal(new int[] {
2000,
0,
0,
0});
this.HS3_TRIM.Minimum = new decimal(new int[] {
1000,
0,
0,
0});
this.HS3_TRIM.Name = "HS3_TRIM";
this.HS3_TRIM.Size = new System.Drawing.Size(44, 20);
this.HS3_TRIM.TabIndex = 164;
this.HS3_TRIM.Value = new decimal(new int[] {
1500,
0,
0,
0});
//
// HS2_TRIM
//
this.HS2_TRIM.Location = new System.Drawing.Point(126, 288);
this.HS2_TRIM.Maximum = new decimal(new int[] {
2000,
0,
0,
0});
this.HS2_TRIM.Minimum = new decimal(new int[] {
1000,
0,
0,
0});
this.HS2_TRIM.Name = "HS2_TRIM";
this.HS2_TRIM.Size = new System.Drawing.Size(44, 20);
this.HS2_TRIM.TabIndex = 163;
this.HS2_TRIM.Value = new decimal(new int[] {
1500,
0,
0,
0});
//
// HS1_TRIM
//
this.HS1_TRIM.Location = new System.Drawing.Point(126, 262);
this.HS1_TRIM.Maximum = new decimal(new int[] {
2000,
0,
0,
0});
this.HS1_TRIM.Minimum = new decimal(new int[] {
1000,
0,
0,
0});
this.HS1_TRIM.Name = "HS1_TRIM";
this.HS1_TRIM.Size = new System.Drawing.Size(44, 20);
this.HS1_TRIM.TabIndex = 162;
this.HS1_TRIM.Value = new decimal(new int[] {
1500,
0,
0,
0});
//
// label39
//
this.label39.AutoSize = true;
this.label39.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label39.Location = new System.Drawing.Point(131, 249);
this.label39.Name = "label39";
this.label39.Size = new System.Drawing.Size(27, 13);
this.label39.TabIndex = 161;
this.label39.Text = "Trim";
//
// label38
//
this.label38.AutoSize = true;
this.label38.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label38.Location = new System.Drawing.Point(102, 249);
this.label38.Name = "label38";
this.label38.Size = new System.Drawing.Size(27, 13);
this.label38.TabIndex = 160;
this.label38.Text = "Rev";
//
// label37
//
this.label37.AutoSize = true;
this.label37.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label37.Location = new System.Drawing.Point(54, 249);
this.label37.Name = "label37";
this.label37.Size = new System.Drawing.Size(44, 13);
this.label37.TabIndex = 159;
this.label37.Text = "Position";
//
// label36
//
this.label36.AutoSize = true;
this.label36.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label36.Location = new System.Drawing.Point(17, 249);
this.label36.Name = "label36";
this.label36.Size = new System.Drawing.Size(35, 13);
this.label36.TabIndex = 158;
this.label36.Text = "Servo";
//
// label26
//
this.label26.AutoSize = true;
this.label26.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label26.Location = new System.Drawing.Point(260, 365);
this.label26.Name = "label26";
this.label26.Size = new System.Drawing.Size(54, 13);
this.label26.TabIndex = 157;
this.label26.Text = "Pitch Max";
//
// PIT_MAX
//
this.PIT_MAX.Location = new System.Drawing.Point(314, 362);
this.PIT_MAX.Name = "PIT_MAX";
this.PIT_MAX.Size = new System.Drawing.Size(47, 20);
this.PIT_MAX.TabIndex = 156;
this.PIT_MAX.Text = "4500";
//
// label25
//
this.label25.AutoSize = true;
this.label25.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label25.Location = new System.Drawing.Point(260, 341);
this.label25.Name = "label25";
this.label25.Size = new System.Drawing.Size(48, 13);
this.label25.TabIndex = 155;
this.label25.Text = "Roll Max";
//
// ROL_MAX
//
this.ROL_MAX.Location = new System.Drawing.Point(314, 336);
this.ROL_MAX.Name = "ROL_MAX";
this.ROL_MAX.Size = new System.Drawing.Size(47, 20);
this.ROL_MAX.TabIndex = 154;
this.ROL_MAX.Text = "4500";
//
// label23
//
this.label23.AutoSize = true;
this.label23.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label23.Location = new System.Drawing.Point(480, 66);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(75, 13);
this.label23.TabIndex = 153;
this.label23.Text = "Rudder Travel";
//
// label22
//
this.label22.AutoSize = true;
this.label22.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label22.Location = new System.Drawing.Point(236, 66);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(72, 13);
this.label22.TabIndex = 150;
this.label22.Text = "Swash Travel";
//
// label20
//
this.label20.AutoSize = true;
this.label20.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label20.Location = new System.Drawing.Point(27, 317);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(13, 13);
this.label20.TabIndex = 149;
this.label20.Text = "3";
//
// label19
//
this.label19.AutoSize = true;
this.label19.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label19.Location = new System.Drawing.Point(27, 291);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(13, 13);
this.label19.TabIndex = 148;
this.label19.Text = "2";
//
// label18
//
this.label18.AutoSize = true;
this.label18.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label18.Location = new System.Drawing.Point(27, 265);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(13, 13);
this.label18.TabIndex = 147;
this.label18.Text = "1";
//
// SV3_POS
//
this.SV3_POS.Location = new System.Drawing.Point(57, 314);
this.SV3_POS.Name = "SV3_POS";
this.SV3_POS.Size = new System.Drawing.Size(39, 20);
this.SV3_POS.TabIndex = 146;
this.SV3_POS.Text = "180";
//
// SV2_POS
//
this.SV2_POS.Location = new System.Drawing.Point(57, 288);
this.SV2_POS.Name = "SV2_POS";
this.SV2_POS.Size = new System.Drawing.Size(39, 20);
this.SV2_POS.TabIndex = 145;
this.SV2_POS.Text = "60";
//
// SV1_POS
//
this.SV1_POS.Location = new System.Drawing.Point(57, 262);
this.SV1_POS.Name = "SV1_POS";
this.SV1_POS.Size = new System.Drawing.Size(39, 20);
this.SV1_POS.TabIndex = 144;
this.SV1_POS.Text = "-60";
//
// HS3_REV
//
this.HS3_REV.AutoSize = true;
this.HS3_REV.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.HS3_REV.Location = new System.Drawing.Point(105, 317);
this.HS3_REV.Name = "HS3_REV";
this.HS3_REV.Size = new System.Drawing.Size(15, 14);
this.HS3_REV.TabIndex = 143;
this.HS3_REV.UseVisualStyleBackColor = true;
//
// HS2_REV
//
this.HS2_REV.AutoSize = true;
this.HS2_REV.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.HS2_REV.Location = new System.Drawing.Point(105, 291);
this.HS2_REV.Name = "HS2_REV";
this.HS2_REV.Size = new System.Drawing.Size(15, 14);
this.HS2_REV.TabIndex = 142;
this.HS2_REV.UseVisualStyleBackColor = true;
//
// HS1_REV
//
this.HS1_REV.AutoSize = true;
this.HS1_REV.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.HS1_REV.Location = new System.Drawing.Point(105, 268);
this.HS1_REV.Name = "HS1_REV";
this.HS1_REV.Size = new System.Drawing.Size(15, 14);
this.HS1_REV.TabIndex = 141;
this.HS1_REV.UseVisualStyleBackColor = true;
//
// label17
//
this.label17.AutoSize = true;
this.label17.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.label17.Location = new System.Drawing.Point(42, 66);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(109, 13);
this.label17.TabIndex = 140;
this.label17.Text = "Swash-Servo position";
//
// HS4
//
this.HS4.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(68)))), ((int)(((byte)(69)))));
this.HS4.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.HS4.Label = "Rudder";
this.HS4.Location = new System.Drawing.Point(396, 93);
this.HS4.Maximum = 2200;
this.HS4.maxline = 0;
this.HS4.Minimum = 800;
this.HS4.minline = 0;
this.HS4.Name = "HS4";
this.HS4.Size = new System.Drawing.Size(242, 42);
this.HS4.TabIndex = 152;
this.HS4.Value = 1500;
this.HS4.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(148)))), ((int)(((byte)(193)))), ((int)(((byte)(31)))));
//
// HS3
//
this.HS3.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(68)))), ((int)(((byte)(69)))));
this.HS3.BorderColor = System.Drawing.SystemColors.ActiveBorder;
this.HS3.Label = "Collective";
this.HS3.Location = new System.Drawing.Point(239, 95);
this.HS3.Maximum = 2200;
this.HS3.maxline = 0;
this.HS3.Minimum = 800;
this.HS3.minline = 0;
this.HS3.Name = "HS3";
this.HS3.Size = new System.Drawing.Size(42, 213);
this.HS3.TabIndex = 151;
this.HS3.Value = 1500;
this.HS3.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(148)))), ((int)(((byte)(193)))), ((int)(((byte)(31)))));
//
// Gservoloc
//
this.Gservoloc.BackColor = System.Drawing.Color.Transparent;
this.Gservoloc.BackgroundImage = global::ArdupilotMega.Properties.Resources.Gaugebg;
this.Gservoloc.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.Gservoloc.BaseArcColor = System.Drawing.Color.Transparent;
this.Gservoloc.BaseArcRadius = 60;
this.Gservoloc.BaseArcStart = 90;
this.Gservoloc.BaseArcSweep = 360;
this.Gservoloc.BaseArcWidth = 2;
this.Gservoloc.basesize = new System.Drawing.Size(150, 150);
this.Gservoloc.Cap_Idx = ((byte)(0));
this.Gservoloc.CapColor = System.Drawing.Color.White;
this.Gservoloc.CapColors = new System.Drawing.Color[] {
System.Drawing.Color.White,
System.Drawing.Color.Black,
System.Drawing.Color.Black,
System.Drawing.Color.Black,
System.Drawing.Color.Black};
this.Gservoloc.CapPosition = new System.Drawing.Point(55, 85);
this.Gservoloc.CapsPosition = new System.Drawing.Point[] {
new System.Drawing.Point(55, 85),
new System.Drawing.Point(40, 67),
new System.Drawing.Point(10, 10),
new System.Drawing.Point(10, 10),
new System.Drawing.Point(10, 10)};
this.Gservoloc.CapsText = new string[] {
"Position",
"",
"",
"",
""};
this.Gservoloc.CapText = "Position";
this.Gservoloc.Center = new System.Drawing.Point(75, 75);
this.Gservoloc.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
this.Gservoloc.Location = new System.Drawing.Point(20, 93);
this.Gservoloc.Margin = new System.Windows.Forms.Padding(0);
this.Gservoloc.MaxValue = 180F;
this.Gservoloc.MinValue = -180F;
this.Gservoloc.Name = "Gservoloc";
this.Gservoloc.Need_Idx = ((byte)(3));
this.Gservoloc.NeedleColor1 = AGaugeApp.AGauge.NeedleColorEnum.Gray;
this.Gservoloc.NeedleColor2 = System.Drawing.Color.White;
this.Gservoloc.NeedleEnabled = false;
this.Gservoloc.NeedleRadius = 80;
this.Gservoloc.NeedlesColor1 = new AGaugeApp.AGauge.NeedleColorEnum[] {
AGaugeApp.AGauge.NeedleColorEnum.Gray,
AGaugeApp.AGauge.NeedleColorEnum.Red,
AGaugeApp.AGauge.NeedleColorEnum.Green,
AGaugeApp.AGauge.NeedleColorEnum.Gray};
this.Gservoloc.NeedlesColor2 = new System.Drawing.Color[] {
System.Drawing.Color.White,
System.Drawing.Color.White,
System.Drawing.Color.White,
System.Drawing.Color.White};
this.Gservoloc.NeedlesEnabled = new bool[] {
true,
true,
true,
false};
this.Gservoloc.NeedlesRadius = new int[] {
60,
60,
60,
80};
this.Gservoloc.NeedlesType = new int[] {
0,
0,
0,
0};
this.Gservoloc.NeedlesWidth = new int[] {
2,
2,
2,
2};
this.Gservoloc.NeedleType = 0;
this.Gservoloc.NeedleWidth = 2;
this.Gservoloc.Range_Idx = ((byte)(0));
this.Gservoloc.RangeColor = System.Drawing.Color.LightGreen;
this.Gservoloc.RangeEnabled = false;
this.Gservoloc.RangeEndValue = 360F;
this.Gservoloc.RangeInnerRadius = 1;
this.Gservoloc.RangeOuterRadius = 60;
this.Gservoloc.RangesColor = new System.Drawing.Color[] {
System.Drawing.Color.LightGreen,
System.Drawing.Color.Red,
System.Drawing.Color.Orange,
System.Drawing.SystemColors.Control,
System.Drawing.SystemColors.Control};
this.Gservoloc.RangesEnabled = new bool[] {
false,
false,
false,
false,
false};
this.Gservoloc.RangesEndValue = new float[] {
360F,
200F,
150F,
0F,
0F};
this.Gservoloc.RangesInnerRadius = new int[] {
1,
1,
1,
70,
70};
this.Gservoloc.RangesOuterRadius = new int[] {
60,
60,
60,
80,
80};
this.Gservoloc.RangesStartValue = new float[] {
0F,
150F,
75F,
0F,
0F};
this.Gservoloc.RangeStartValue = 0F;
this.Gservoloc.ScaleLinesInterColor = System.Drawing.Color.White;
this.Gservoloc.ScaleLinesInterInnerRadius = 52;
this.Gservoloc.ScaleLinesInterOuterRadius = 60;
this.Gservoloc.ScaleLinesInterWidth = 1;
this.Gservoloc.ScaleLinesMajorColor = System.Drawing.Color.White;
this.Gservoloc.ScaleLinesMajorInnerRadius = 50;
this.Gservoloc.ScaleLinesMajorOuterRadius = 60;
this.Gservoloc.ScaleLinesMajorStepValue = 30F;
this.Gservoloc.ScaleLinesMajorWidth = 2;
this.Gservoloc.ScaleLinesMinorColor = System.Drawing.Color.White;
this.Gservoloc.ScaleLinesMinorInnerRadius = 55;
this.Gservoloc.ScaleLinesMinorNumOf = 2;
this.Gservoloc.ScaleLinesMinorOuterRadius = 60;
this.Gservoloc.ScaleLinesMinorWidth = 1;
this.Gservoloc.ScaleNumbersColor = System.Drawing.Color.White;
this.Gservoloc.ScaleNumbersFormat = null;
this.Gservoloc.ScaleNumbersRadius = 44;
this.Gservoloc.ScaleNumbersRotation = 45;
this.Gservoloc.ScaleNumbersStartScaleLine = 2;
this.Gservoloc.ScaleNumbersStepScaleLines = 1;
this.Gservoloc.Size = new System.Drawing.Size(150, 150);
this.Gservoloc.TabIndex = 139;
this.Gservoloc.Value = 0F;
this.Gservoloc.Value0 = -60F;
this.Gservoloc.Value1 = 60F;
this.Gservoloc.Value2 = 180F;
this.Gservoloc.Value3 = 0F;
//
// ConfigTradHeli
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox5);
this.Controls.Add(this.BUT_swash_manual);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.BUT_HS4save);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.HS3_TRIM);
this.Controls.Add(this.HS2_TRIM);
this.Controls.Add(this.HS1_TRIM);
this.Controls.Add(this.label39);
this.Controls.Add(this.label38);
this.Controls.Add(this.label37);
this.Controls.Add(this.label36);
this.Controls.Add(this.label26);
this.Controls.Add(this.PIT_MAX);
this.Controls.Add(this.label25);
this.Controls.Add(this.ROL_MAX);
this.Controls.Add(this.label23);
this.Controls.Add(this.label22);
this.Controls.Add(this.label20);
this.Controls.Add(this.label19);
this.Controls.Add(this.label18);
this.Controls.Add(this.SV3_POS);
this.Controls.Add(this.SV2_POS);
this.Controls.Add(this.SV1_POS);
this.Controls.Add(this.HS3_REV);
this.Controls.Add(this.HS2_REV);
this.Controls.Add(this.HS1_REV);
this.Controls.Add(this.label17);
this.Controls.Add(this.HS4);
this.Controls.Add(this.HS3);
this.Controls.Add(this.Gservoloc);
this.Name = "ConfigTradHeli";
this.Size = new System.Drawing.Size(654, 397);
this.groupBox5.ResumeLayout(false);
this.groupBox5.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.HS3_TRIM)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.HS2_TRIM)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.HS1_TRIM)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.RadioButton H1_ENABLE;
private System.Windows.Forms.RadioButton CCPM;
private MyButton BUT_swash_manual;
private System.Windows.Forms.Label label41;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.Label label46;
private System.Windows.Forms.Label label45;
private System.Windows.Forms.CheckBox GYR_ENABLE;
private System.Windows.Forms.TextBox GYR_GAIN;
private MyButton BUT_HS4save;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.TextBox COL_MIN;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.TextBox COL_MID;
private System.Windows.Forms.TextBox COL_MAX;
private MyButton BUT_0collective;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Label label24;
private System.Windows.Forms.TextBox HS4_MIN;
private System.Windows.Forms.TextBox HS4_MAX;
private System.Windows.Forms.Label label40;
private System.Windows.Forms.NumericUpDown HS3_TRIM;
private System.Windows.Forms.NumericUpDown HS2_TRIM;
private System.Windows.Forms.NumericUpDown HS1_TRIM;
private System.Windows.Forms.Label label39;
private System.Windows.Forms.Label label38;
private System.Windows.Forms.Label label37;
private System.Windows.Forms.Label label36;
private System.Windows.Forms.Label label26;
private System.Windows.Forms.TextBox PIT_MAX;
private System.Windows.Forms.Label label25;
private System.Windows.Forms.TextBox ROL_MAX;
private System.Windows.Forms.Label label23;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.Label label20;
private System.Windows.Forms.Label label19;
private System.Windows.Forms.Label label18;
private System.Windows.Forms.TextBox SV3_POS;
private System.Windows.Forms.TextBox SV2_POS;
private System.Windows.Forms.TextBox SV1_POS;
private System.Windows.Forms.CheckBox HS3_REV;
private System.Windows.Forms.CheckBox HS2_REV;
private System.Windows.Forms.CheckBox HS1_REV;
private System.Windows.Forms.Label label17;
private HorizontalProgressBar2 HS4;
private VerticalProgressBar2 HS3;
private AGaugeApp.AGauge Gservoloc;
}
}

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class ConfigTradHeli : UserControl
{
public ConfigTradHeli()
{
InitializeComponent();
}
}
}

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,59 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class Configuration
{
/// <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(Configuration));
this.backstageView = new ArdupilotMega.Controls.BackstageView.BackstageView();
this.SuspendLayout();
//
// backstageView
//
this.backstageView.AutoSize = true;
this.backstageView.Dock = System.Windows.Forms.DockStyle.Fill;
this.backstageView.Location = new System.Drawing.Point(0, 0);
this.backstageView.Name = "backstageView";
this.backstageView.Size = new System.Drawing.Size(634, 336);
this.backstageView.TabIndex = 0;
//
// Configuration
//
this.ClientSize = new System.Drawing.Size(634, 336);
this.Controls.Add(this.backstageView);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Configuration";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private Controls.BackstageView.BackstageView backstageView;
}
}

View File

@ -0,0 +1,31 @@
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;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class Configuration : Form
{
public Configuration()
{
InitializeComponent();
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigRadioInput(), "Radio Calibration"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigFlightModes(), "Flight Modes"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigHardwareOptions(), "Hardware Options"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigBatteryMonitoring(), "Battery Monitor"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibration(), "Level Calibration"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArducopter(), "Arducopter Setup"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArduplane(), "Arduplane Setup"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArduplane(), "Heli Setup"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigRawParams(), "Raw params (Advanced)"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigPlanner(), "Planner"));
}
}
}

View File

@ -0,0 +1,197 @@
<?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="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOxkjAtnoOAKpJ4vyiK
c+8nh3D/J4Zv/yeHcP8oi3PvKpJ4vy6fg4AzsZIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjGo2AyspPfLZ+D/yiQ
d/8hlXj/G6F9/xeqg/8XqYL/GKqD/xuhfv8ilnn/KZB3/y2fhP8yspPfN8ajYAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvRrDA1vpzfL6uN/yel
hP8XvJD/DMyY/wfQl/8FzJP/A8qS/wPJkf8EypL/BsyU/wnRmP8PzZn/Gb2R/yemhP8tqoz/Mb2a3zbQ
qkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAA4y6ZgMbWV/yin
iP8WwZP/Btqf/wDPlf8AyI7/A8aP/yfNnv9T2LP/UNax/03XsP8506b/G8ya/wHKkf8F0Zf/CNuf/xLB
kv8fpYT/J7KQ/y7IomAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAANcajny+w
kf8hqoj/CNSd/wDRlf8Axor/Hcyd/3Lhwf+p7Nj/o+vV/57m0/+X5dD/k+TN/4/jzf+K5Mz/fuHH/0PW
rf8HzJT/ANCT/wDRlv8OpX//HayI/yrFn58AAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAADDC
nmAtro7/H62J/wPWmv8Ay47/AMaO/3XhxP+e6tT/mObP/5Pjy/+Q4sr/jODJ/4ffx/+C3MT/f9vC/3nb
wf9y2r7/adq7/2DauP8ZzZv/Fdae/8T/9/9WxKj/HKuI/y7IomAAAAAAAAAAAAAAAAD///8AAAAAAAAA
AAAiuZMwKKyM/x6ohf8C1Zr/AMmL/wHGjv+49OL///////////9+3ML/f9zD/4Dcwv9+28L/e9rA/3bZ
vv9w1rr/Z9S4/17Rs/9Qz63/Qcyn/3LewP////////////n///8MpH7/JbKP/zXQqUAAAAAAAAAAAP//
/wAAAAAAAAAAABymhN8dnn//BNGa/wDKjP8AxY3/sfHf/////////////////2nXt/9w1rv/c9e8/3TX
vP9x17z/a9W5/2TTtf9Y0K//SMyp/zXFoP9i07X/////////////////f/LR/wDQlf8epYT/Mb2a3wAA
AAAAAAAA////AAAAAAADlnJgFZR1/wq4iv8AzpH/AMCD/4rmzf//////////////////////WdGv/2PU
tf9p1rf/atS4/2nUtv9i0rT/Vc+u/0fKpv8zxZz/Ws+w//////////////////////8GyJL/ANCS/xLB
kv8tq4z/OMajYAAAAAD///8AAAAAAACHZt8NkW//ANKV/wDChP9i27r//////////////////////9Dx
6P9MzKn/Vc+v/17Rsv9g0rP/XNCx/1XNrv9Fyaf/McSd/1fPr///////////////////////QM2m/ynK
oP8JzJX/C9yh/ymmhf80spPfAAAAAP///wAAcUwwAHtc/wCrfP8AyIv/AMKK////////////////////
/////////////5Dgyv9Gyqb/TMyq/07Nq/9MzKn/Qcmj/y/Fnf9Wzq3//////////////////////57k
0v8av5T/Lceg/yzOo/8M05v/Hr6T/zCghf80spIw////AABoRYAAclT/AL2H/wDBhf9R1rL/////////
////////4vfw//////////////////H8+P9KzKn/Ocah/zTFnv8qwpj/Us2t////////////////////
////////DLqM/yDBlv8wxp//OM6m/xPPm/8Xz53/LZF5/y+fg4////8AAGNAvwB7Wf8Aw4j/ALyC/4bj
yP+g5tL/g93E/2HSsv9Pzqz/Us6s//////////////////////9Yzq//Gr2S/0jLp///////////////
/////////////yrDm/8SvI//JMGY/zDHn/81zKT/Is2e/xTUnf8nl3v/LJJ5v////wAAXz3vAIlg/wDA
hf8AuoD/quzZ/5Hjyv9628D/ada2/1jRsP9Jy6f/a9a4//////////////////////+Y4s7/////////
//////////////////+c4tD/AbaH/xW8kf8jwZj/LcWd/y/Jn/8kzJ3/E9Ca/yGjgf8ri3Tv////AABd
PP8Ak2b/AL6D/w/Ekv+m6tf/j+HJ/3vawP9p1rf/W9Gx/0rNqf85yJ//Nsaf////////////////////
/////////////////////////////wCwe/8AtoT/ELqP/xu+k/8jwZj/KMeb/yHKm/8QzZf/HqyG/ymI
cf////8AAF07/wCSZP8AvYL/GMWU/6Dn1P+K38f/ddi+/27Wuf+E3MX/leHN/6fm1f+l5tX/neLQ////
////////////////////////////////////////j9/J/27Vuv9Tzq7/JsKY/xa/kv8aw5T/FcaW/wvL
lf8aqoT/J4dw/////wAAXTv/AJFk/wC9gP8GwY3/mObQ/5rkz/+26dv/y/Hl/8Dt3/+06tz/pebV/5bg
zP+g5NL//////////////v///f7+//7+/v//////7fn2////////////tOnb/6Ll0v+v6Nj/jeDI/zXK
o/8IxJD/BMqS/xaqgv8lh2//////AABeO+8AgVf/AL1//wDBif/R9uv/1PPq/8Tv5P+36t3/rujY/6Lk
0v+U4cv/jt7J//j8+///////+/38//f8+//2+/r/+Pz7//3+/v/m9/P/9Pv6//D6+P9/28L/jd7J/5jj
z/+h5dL/qOvX/4Hmyf8f1J//E596/yOJcO////8AAGA8vwB3U/8p06P/hufM/8Ty5f/D7+T/s+vb/6bm
1P+c4c//j9/K/4vcyP/t+fb///7///j8/P/0+/r/8vr5//P7+f/1+/r/+/39///////i9fL/ZNO1/3HW
vP992sH/htzG/4vhyv+S5dD/mO7W/6X74v80noT/Io90v////wAAZkCAAHla/33ny/945cb/nunV/7Xr
3v+l5tT/luDN/4ndxv992cL/1vLq//v9/P/1+/n/8vv4//L69//z+/j/9Pv5/7Xo2//x+vn/////////
//+y59n/aNS3/3LWvP932r//fNzD/4Ljyf+J7ND/l/bd/yORdf8knH6A////AABuRzAAdlT/Xc6x/23o
xv9s4MH/qurZ/5jiz/+I3cb/edjA/8ju5f/3/Pv/8vv4//H6+P/y+/j/6/f0/7np3v/7/fz//v7+/6fk
1f+56tz///////////9h0bT/aNW4/23Wu/9v3L//dOLG/37w0f9m1rn/Hpt8/ymujTD///8AAAAAAACD
X98po4X/Z+7K/1vgvP+A4sf/jOHK/3rZwv+r59f/9Pv6/+/69//v+vf/8vr4/9fy6/9n0rf/VM6t/6Di
0v/N7+f/adO4/1PMrf9t1Lr/i9zI/1/Rs/9h0rX/ZNe4/2bbvf9s5sb/ePfV/z2ylf8lrozfAAAAAP//
/wAAAAAAAJNsYAWQbf9U1rP/Vee//0rYsf993sb/pebV//P7+v/s+Pb/6/f1/+749v+s5tj/Vc2u/1jP
r/9ZzrD/btW5/1bOr/9Wza//Vs6v/1fOr/9Z0LD/WdCy/1vTtP9d1rX/Xt+8/2btyP9k4L//IaaF/y7D
nmAAAAAA////AAAAAAAAAAAAD6J9zyCjgv9S68L/P9+0/2Pevv/5////7/v6/+v59//j9/L/gtvF/1PN
r/9Wz7D/Wc+x/1nQsf9Zz7H/WM6w/1fPsP9UzrD/VM+w/1TPrv9U0a//U9Oy/1Tatv9Z5sD/Y/LL/zSx
lP8qupbPAAAAAAAAAAD///8AAAAAAAAAAAAYto4wGaeE/y23lP8+5rn/6/////j////w//3/ve/i/2bV
uP9Tzq7/Vc+v/1jPsP9Z0LL/WM+w/1fOsf9Wz7D/Us2w/1HOrf9Qzq3/T9Cu/0zSr/9M2LP/TeC5/1bt
xP9HxaX/KLKQ/zTPqDAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAkvpdgG6iF/y++m//e/////P///3rl
yf9G0K3/VdKy/1bPsf9Wz7H/Vs6w/1bPsP9Sza//Ucyu/0/Nrf9NzKz/S82s/0fOrP9G0a7/QdWv/0Le
tP9I6L7/Q8Ok/yitjP8yyKJgAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAmwJlgG6iF/yK3
kP8k3q7/H9el/x7Pn/8tzKT/Q9Cs/1HQsP9Q0K7/TM6u/0nMrf9Hzaz/RMyp/0LNqf8+zqn/ONGo/zTV
qf833rD/O+S4/zvCof8orIv/MMSfYAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAkvpdgG6iE/xukgv8gy53/HNql/xzRn/8czJz/HcmZ/yXJnP8qyp7/Lcqg/yzLn/8nypz/JMqc/yTO
n/8l1KT/KN2r/y3Tpv8nq4n/JaqJ/yzAm2AAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAato8wFKN/zxCScv8RnHn/DbqM/wjIlP8GyZT/BsaS/wbFkf8GxZH/B8WR/wfH
k/8IypX/DMmV/xG3jP8WoX3/Fph2/xqkgs8ft5EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVvYACGZM8Aelr/AHlZ/wCFX/8AiWL/AJlr/wCb
bP8AlGf/AI5k/wB/W/8AeFj/AHtb/wCHZd8ClXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwSzAAaESAAGI/vwBf
Pd8AXTz/AF08/wBdPP8AXz3fAGJAvwBoRIAAcUswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A/+AD//+AAP/+AAA//AAAH/gAAA/wAAAH4AAAA+AAAAPAAAABwAAAAYAA
AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAwAAAAcAAAAHgAAAD4AAAA/AA
AAf4AAAP/AAAH/4AAD//gAD//+AD//////8=
</value>
</data>
</root>

View File

@ -0,0 +1,59 @@
namespace ArdupilotMega.GCSViews.ConfigurationView
{
partial class Setup
{
/// <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(Setup));
this.backstageView = new ArdupilotMega.Controls.BackstageView.BackstageView();
this.SuspendLayout();
//
// backstageView
//
this.backstageView.AutoSize = true;
this.backstageView.Dock = System.Windows.Forms.DockStyle.Fill;
this.backstageView.Location = new System.Drawing.Point(0, 0);
this.backstageView.Name = "backstageView";
this.backstageView.Size = new System.Drawing.Size(831, 455);
this.backstageView.TabIndex = 0;
//
// Setup
//
this.ClientSize = new System.Drawing.Size(831, 455);
this.Controls.Add(this.backstageView);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Setup";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private Controls.BackstageView.BackstageView backstageView;
}
}

View File

@ -0,0 +1,27 @@
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;
namespace ArdupilotMega.GCSViews.ConfigurationView
{
public partial class Setup : Form
{
public Setup()
{
InitializeComponent();
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigRadioInput(), "Radio Calibration"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigFlightModes(), "Flight Modes"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigHardwareOptions(), "Hardware Options"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigBatteryMonitoring(), "Battery Monitor"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibration(), "Level Calibration"));
this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigTradHeli(), "Heli Setup"));
}
}
}

View File

@ -0,0 +1,197 @@
<?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="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOxkjAtnoOAKpJ4vyiK
c+8nh3D/J4Zv/yeHcP8oi3PvKpJ4vy6fg4AzsZIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjGo2AyspPfLZ+D/yiQ
d/8hlXj/G6F9/xeqg/8XqYL/GKqD/xuhfv8ilnn/KZB3/y2fhP8yspPfN8ajYAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvRrDA1vpzfL6uN/yel
hP8XvJD/DMyY/wfQl/8FzJP/A8qS/wPJkf8EypL/BsyU/wnRmP8PzZn/Gb2R/yemhP8tqoz/Mb2a3zbQ
qkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAA4y6ZgMbWV/yin
iP8WwZP/Btqf/wDPlf8AyI7/A8aP/yfNnv9T2LP/UNax/03XsP8506b/G8ya/wHKkf8F0Zf/CNuf/xLB
kv8fpYT/J7KQ/y7IomAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAANcajny+w
kf8hqoj/CNSd/wDRlf8Axor/Hcyd/3Lhwf+p7Nj/o+vV/57m0/+X5dD/k+TN/4/jzf+K5Mz/fuHH/0PW
rf8HzJT/ANCT/wDRlv8OpX//HayI/yrFn58AAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAADDC
nmAtro7/H62J/wPWmv8Ay47/AMaO/3XhxP+e6tT/mObP/5Pjy/+Q4sr/jODJ/4ffx/+C3MT/f9vC/3nb
wf9y2r7/adq7/2DauP8ZzZv/Fdae/8T/9/9WxKj/HKuI/y7IomAAAAAAAAAAAAAAAAD///8AAAAAAAAA
AAAiuZMwKKyM/x6ohf8C1Zr/AMmL/wHGjv+49OL///////////9+3ML/f9zD/4Dcwv9+28L/e9rA/3bZ
vv9w1rr/Z9S4/17Rs/9Qz63/Qcyn/3LewP////////////n///8MpH7/JbKP/zXQqUAAAAAAAAAAAP//
/wAAAAAAAAAAABymhN8dnn//BNGa/wDKjP8AxY3/sfHf/////////////////2nXt/9w1rv/c9e8/3TX
vP9x17z/a9W5/2TTtf9Y0K//SMyp/zXFoP9i07X/////////////////f/LR/wDQlf8epYT/Mb2a3wAA
AAAAAAAA////AAAAAAADlnJgFZR1/wq4iv8AzpH/AMCD/4rmzf//////////////////////WdGv/2PU
tf9p1rf/atS4/2nUtv9i0rT/Vc+u/0fKpv8zxZz/Ws+w//////////////////////8GyJL/ANCS/xLB
kv8tq4z/OMajYAAAAAD///8AAAAAAACHZt8NkW//ANKV/wDChP9i27r//////////////////////9Dx
6P9MzKn/Vc+v/17Rsv9g0rP/XNCx/1XNrv9Fyaf/McSd/1fPr///////////////////////QM2m/ynK
oP8JzJX/C9yh/ymmhf80spPfAAAAAP///wAAcUwwAHtc/wCrfP8AyIv/AMKK////////////////////
/////////////5Dgyv9Gyqb/TMyq/07Nq/9MzKn/Qcmj/y/Fnf9Wzq3//////////////////////57k
0v8av5T/Lceg/yzOo/8M05v/Hr6T/zCghf80spIw////AABoRYAAclT/AL2H/wDBhf9R1rL/////////
////////4vfw//////////////////H8+P9KzKn/Ocah/zTFnv8qwpj/Us2t////////////////////
////////DLqM/yDBlv8wxp//OM6m/xPPm/8Xz53/LZF5/y+fg4////8AAGNAvwB7Wf8Aw4j/ALyC/4bj
yP+g5tL/g93E/2HSsv9Pzqz/Us6s//////////////////////9Yzq//Gr2S/0jLp///////////////
/////////////yrDm/8SvI//JMGY/zDHn/81zKT/Is2e/xTUnf8nl3v/LJJ5v////wAAXz3vAIlg/wDA
hf8AuoD/quzZ/5Hjyv9628D/ada2/1jRsP9Jy6f/a9a4//////////////////////+Y4s7/////////
//////////////////+c4tD/AbaH/xW8kf8jwZj/LcWd/y/Jn/8kzJ3/E9Ca/yGjgf8ri3Tv////AABd
PP8Ak2b/AL6D/w/Ekv+m6tf/j+HJ/3vawP9p1rf/W9Gx/0rNqf85yJ//Nsaf////////////////////
/////////////////////////////wCwe/8AtoT/ELqP/xu+k/8jwZj/KMeb/yHKm/8QzZf/HqyG/ymI
cf////8AAF07/wCSZP8AvYL/GMWU/6Dn1P+K38f/ddi+/27Wuf+E3MX/leHN/6fm1f+l5tX/neLQ////
////////////////////////////////////////j9/J/27Vuv9Tzq7/JsKY/xa/kv8aw5T/FcaW/wvL
lf8aqoT/J4dw/////wAAXTv/AJFk/wC9gP8GwY3/mObQ/5rkz/+26dv/y/Hl/8Dt3/+06tz/pebV/5bg
zP+g5NL//////////////v///f7+//7+/v//////7fn2////////////tOnb/6Ll0v+v6Nj/jeDI/zXK
o/8IxJD/BMqS/xaqgv8lh2//////AABeO+8AgVf/AL1//wDBif/R9uv/1PPq/8Tv5P+36t3/rujY/6Lk
0v+U4cv/jt7J//j8+///////+/38//f8+//2+/r/+Pz7//3+/v/m9/P/9Pv6//D6+P9/28L/jd7J/5jj
z/+h5dL/qOvX/4Hmyf8f1J//E596/yOJcO////8AAGA8vwB3U/8p06P/hufM/8Ty5f/D7+T/s+vb/6bm
1P+c4c//j9/K/4vcyP/t+fb///7///j8/P/0+/r/8vr5//P7+f/1+/r/+/39///////i9fL/ZNO1/3HW
vP992sH/htzG/4vhyv+S5dD/mO7W/6X74v80noT/Io90v////wAAZkCAAHla/33ny/945cb/nunV/7Xr
3v+l5tT/luDN/4ndxv992cL/1vLq//v9/P/1+/n/8vv4//L69//z+/j/9Pv5/7Xo2//x+vn/////////
//+y59n/aNS3/3LWvP932r//fNzD/4Ljyf+J7ND/l/bd/yORdf8knH6A////AABuRzAAdlT/Xc6x/23o
xv9s4MH/qurZ/5jiz/+I3cb/edjA/8ju5f/3/Pv/8vv4//H6+P/y+/j/6/f0/7np3v/7/fz//v7+/6fk
1f+56tz///////////9h0bT/aNW4/23Wu/9v3L//dOLG/37w0f9m1rn/Hpt8/ymujTD///8AAAAAAACD
X98po4X/Z+7K/1vgvP+A4sf/jOHK/3rZwv+r59f/9Pv6/+/69//v+vf/8vr4/9fy6/9n0rf/VM6t/6Di
0v/N7+f/adO4/1PMrf9t1Lr/i9zI/1/Rs/9h0rX/ZNe4/2bbvf9s5sb/ePfV/z2ylf8lrozfAAAAAP//
/wAAAAAAAJNsYAWQbf9U1rP/Vee//0rYsf993sb/pebV//P7+v/s+Pb/6/f1/+749v+s5tj/Vc2u/1jP
r/9ZzrD/btW5/1bOr/9Wza//Vs6v/1fOr/9Z0LD/WdCy/1vTtP9d1rX/Xt+8/2btyP9k4L//IaaF/y7D
nmAAAAAA////AAAAAAAAAAAAD6J9zyCjgv9S68L/P9+0/2Pevv/5////7/v6/+v59//j9/L/gtvF/1PN
r/9Wz7D/Wc+x/1nQsf9Zz7H/WM6w/1fPsP9UzrD/VM+w/1TPrv9U0a//U9Oy/1Tatv9Z5sD/Y/LL/zSx
lP8qupbPAAAAAAAAAAD///8AAAAAAAAAAAAYto4wGaeE/y23lP8+5rn/6/////j////w//3/ve/i/2bV
uP9Tzq7/Vc+v/1jPsP9Z0LL/WM+w/1fOsf9Wz7D/Us2w/1HOrf9Qzq3/T9Cu/0zSr/9M2LP/TeC5/1bt
xP9HxaX/KLKQ/zTPqDAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAkvpdgG6iF/y++m//e/////P///3rl
yf9G0K3/VdKy/1bPsf9Wz7H/Vs6w/1bPsP9Sza//Ucyu/0/Nrf9NzKz/S82s/0fOrP9G0a7/QdWv/0Le
tP9I6L7/Q8Ok/yitjP8yyKJgAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAmwJlgG6iF/yK3
kP8k3q7/H9el/x7Pn/8tzKT/Q9Cs/1HQsP9Q0K7/TM6u/0nMrf9Hzaz/RMyp/0LNqf8+zqn/ONGo/zTV
qf833rD/O+S4/zvCof8orIv/MMSfYAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAkvpdgG6iE/xukgv8gy53/HNql/xzRn/8czJz/HcmZ/yXJnP8qyp7/Lcqg/yzLn/8nypz/JMqc/yTO
n/8l1KT/KN2r/y3Tpv8nq4n/JaqJ/yzAm2AAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAato8wFKN/zxCScv8RnHn/DbqM/wjIlP8GyZT/BsaS/wbFkf8GxZH/B8WR/wfH
k/8IypX/DMmV/xG3jP8WoX3/Fph2/xqkgs8ft5EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVvYACGZM8Aelr/AHlZ/wCFX/8AiWL/AJlr/wCb
bP8AlGf/AI5k/wB/W/8AeFj/AHtb/wCHZd8ClXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwSzAAaESAAGI/vwBf
Pd8AXTz/AF08/wBdPP8AXz3fAGJAvwBoRIAAcUswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A/+AD//+AAP/+AAA//AAAH/gAAA/wAAAH4AAAA+AAAAPAAAABwAAAAYAA
AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAwAAAAcAAAAHgAAAD4AAAA/AA
AAf4AAAP/AAAH/4AAD//gAD//+AD//////8=
</value>
</data>
</root>

View File

@ -219,6 +219,7 @@ namespace ArdupilotMega.GCSViews
private void FlightData_Load(object sender, EventArgs e)
{
MainV2.bs = bindingSource1;
System.Threading.Thread t11 = new System.Threading.Thread(new System.Threading.ThreadStart(mainloop))
{
@ -1670,7 +1671,7 @@ namespace ArdupilotMega.GCSViews
return;
}
MainV2.comPort.setMountConfigure(MAVLink.MAV_MOUNT_MODE.MAV_MOUNT_MODE_GPS_POINT, true, true, true);
MainV2.comPort.setMountConfigure(MAVLink.MAV_MOUNT_MODE.GPS_POINT, true, true, true);
MainV2.comPort.setMountControl(gotolocation.Lat, gotolocation.Lng, (int)(intalt / MainV2.cs.multiplierdist), true);
}

View File

@ -51,7 +51,7 @@ namespace ArdupilotMega.GCSViews
// gps buffer
int gpsbufferindex = 0;
ArdupilotMega.MAVLink.__mavlink_gps_raw_t[] gpsbuffer = new MAVLink.__mavlink_gps_raw_t[2];
ArdupilotMega.MAVLink.mavlink_gps_raw_t[] gpsbuffer = new MAVLink.mavlink_gps_raw_t[5];
// set defaults
int rollgain = 10000;
@ -704,10 +704,10 @@ namespace ArdupilotMega.GCSViews
float oldax = 0, olday = 0, oldaz = 0;
DateTime oldtime = DateTime.Now;
#if MAVLINK10
ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t oldgps = new MAVLink.__mavlink_gps_raw_int_t();
ArdupilotMega.MAVLink.mavlink_gps_raw_int_t oldgps = new MAVLink.mavlink_gps_raw_int_t();
#endif
ArdupilotMega.MAVLink.__mavlink_attitude_t oldatt = new ArdupilotMega.MAVLink.__mavlink_attitude_t();
ArdupilotMega.MAVLink.mavlink_attitude_t oldatt = new ArdupilotMega.MAVLink.mavlink_attitude_t();
/// <summary>
/// Recevied UDP packet, process and send required data to serial port.
@ -718,18 +718,18 @@ namespace ArdupilotMega.GCSViews
private void RECVprocess(byte[] data, int receviedbytes, ArdupilotMega.MAVLink comPort)
{
#if MAVLINK10
ArdupilotMega.MAVLink.__mavlink_hil_state_t hilstate = new ArdupilotMega.MAVLink.__mavlink_hil_state_t();
ArdupilotMega.MAVLink.mavlink_hil_state_t hilstate = new ArdupilotMega.MAVLink.mavlink_hil_state_t();
ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t gps = new ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t();
ArdupilotMega.MAVLink.mavlink_gps_raw_int_t gps = new ArdupilotMega.MAVLink.mavlink_gps_raw_int_t();
#else
ArdupilotMega.MAVLink.__mavlink_gps_raw_t gps = new ArdupilotMega.MAVLink.__mavlink_gps_raw_t();
ArdupilotMega.MAVLink.mavlink_gps_raw_t gps = new ArdupilotMega.MAVLink.mavlink_gps_raw_t();
#endif
ArdupilotMega.MAVLink.__mavlink_raw_imu_t imu = new ArdupilotMega.MAVLink.__mavlink_raw_imu_t();
ArdupilotMega.MAVLink.mavlink_raw_imu_t imu = new ArdupilotMega.MAVLink.mavlink_raw_imu_t();
ArdupilotMega.MAVLink.__mavlink_attitude_t att = new ArdupilotMega.MAVLink.__mavlink_attitude_t();
ArdupilotMega.MAVLink.mavlink_attitude_t att = new ArdupilotMega.MAVLink.mavlink_attitude_t();
ArdupilotMega.MAVLink.__mavlink_vfr_hud_t asp = new ArdupilotMega.MAVLink.__mavlink_vfr_hud_t();
ArdupilotMega.MAVLink.mavlink_vfr_hud_t asp = new ArdupilotMega.MAVLink.mavlink_vfr_hud_t();
if (data[0] == 'D' && data[1] == 'A')
{
@ -1245,7 +1245,7 @@ namespace ArdupilotMega.GCSViews
#endif
MAVLink.__mavlink_raw_pressure_t pres = new MAVLink.__mavlink_raw_pressure_t();
MAVLink.mavlink_raw_pressure_t pres = new MAVLink.mavlink_raw_pressure_t();
double calc = (101325 * Math.Pow(1 - 2.25577 * Math.Pow(10, -5) * gps.alt, 5.25588)); // updated from valid gps
pres.press_diff1 = (short)(int)(calc - 101325); // 0 alt is 0 pa
@ -1263,6 +1263,8 @@ namespace ArdupilotMega.GCSViews
// save current fix = 3
gpsbuffer[gpsbufferindex % gpsbuffer.Length] = gps;
// Console.WriteLine((gpsbufferindex % gpsbuffer.Length) + " " + ((gpsbufferindex + (gpsbuffer.Length - 1)) % gpsbuffer.Length));
// return buffer index + 5 = (3 + 5) = 8 % 6 = 2
comPort.sendPacket(gpsbuffer[(gpsbufferindex + (gpsbuffer.Length - 1)) % gpsbuffer.Length]);

View File

@ -330,14 +330,14 @@ namespace ArdupilotMega.HIL
// send to apm
#if MAVLINK10
ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t gps = new ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t();
ArdupilotMega.MAVLink.mavlink_gps_raw_int_t gps = new ArdupilotMega.MAVLink.mavlink_gps_raw_int_t();
#else
ArdupilotMega.MAVLink.__mavlink_gps_raw_t gps = new ArdupilotMega.MAVLink.__mavlink_gps_raw_t();
ArdupilotMega.MAVLink.mavlink_gps_raw_t gps = new ArdupilotMega.MAVLink.mavlink_gps_raw_t();
#endif
ArdupilotMega.MAVLink.__mavlink_attitude_t att = new ArdupilotMega.MAVLink.__mavlink_attitude_t();
ArdupilotMega.MAVLink.mavlink_attitude_t att = new ArdupilotMega.MAVLink.mavlink_attitude_t();
ArdupilotMega.MAVLink.__mavlink_vfr_hud_t asp = new ArdupilotMega.MAVLink.__mavlink_vfr_hud_t();
ArdupilotMega.MAVLink.mavlink_vfr_hud_t asp = new ArdupilotMega.MAVLink.mavlink_vfr_hud_t();
att.roll = (float)roll * deg2rad;
att.pitch = (float)pitch * deg2rad;
@ -380,7 +380,7 @@ namespace ArdupilotMega.HIL
MainV2.comPort.sendPacket(att);
MAVLink.__mavlink_raw_pressure_t pres = new MAVLink.__mavlink_raw_pressure_t();
MAVLink.mavlink_raw_pressure_t pres = new MAVLink.mavlink_raw_pressure_t();
double calc = (101325 * Math.Pow(1 - 2.25577 * Math.Pow(10, -5) * gps.alt, 5.25588));
pres.press_diff1 = (short)(int)(calc); // 0 alt is 0 pa

View File

@ -148,7 +148,7 @@ namespace ArdupilotMega
}
else
{
MAVLink.__mavlink_rc_channels_override_t rc = new MAVLink.__mavlink_rc_channels_override_t();
MAVLink.mavlink_rc_channels_override_t rc = new MAVLink.mavlink_rc_channels_override_t();
rc.target_component = MainV2.comPort.compid;
rc.target_system = MainV2.comPort.sysid;

View File

@ -269,7 +269,7 @@ namespace ArdupilotMega
if (buffer.Length > 5 && buffer1.Length > 5 && buffer[3] == buffer1[3] && buffer[4] == buffer1[4])
{
__mavlink_heartbeat_t hb = buffer.ByteArrayToStructure<__mavlink_heartbeat_t>(6);
mavlink_heartbeat_t hb = buffer.ByteArrayToStructure<mavlink_heartbeat_t>(6);
mavlinkversion = hb.mavlink_version;
aptype = hb.type;
@ -345,7 +345,7 @@ namespace ArdupilotMega
{
bool validPacket = false;
byte a = 0;
foreach (Type ty in mavstructs)
foreach (Type ty in MAVLINK_MESSAGE_INFO)
{
if (ty == indata.GetType())
{
@ -432,7 +432,7 @@ namespace ArdupilotMega
try
{
if (logfile != null)
if (logfile != null && logfile.BaseStream.CanWrite)
{
lock (logwritelock)
{
@ -491,7 +491,7 @@ namespace ArdupilotMega
MainV2.giveComport = true;
__mavlink_param_set_t req = new __mavlink_param_set_t();
mavlink_param_set_t req = new mavlink_param_set_t();
req.target_system = sysid;
req.target_component = compid;
@ -534,7 +534,7 @@ namespace ArdupilotMega
{
if (buffer[5] == MAVLINK_MSG_ID_PARAM_VALUE)
{
__mavlink_param_value_t par = buffer.ByteArrayToStructure<__mavlink_param_value_t>(6);
mavlink_param_value_t par = buffer.ByteArrayToStructure<mavlink_param_value_t>(6);
string st = System.Text.ASCIIEncoding.ASCII.GetString(par.param_id);
@ -612,7 +612,7 @@ namespace ArdupilotMega
goagain:
__mavlink_param_request_list_t req = new __mavlink_param_request_list_t();
mavlink_param_request_list_t req = new mavlink_param_request_list_t();
req.target_system = sysid;
req.target_component = compid;
@ -657,7 +657,7 @@ namespace ArdupilotMega
restart = DateTime.Now;
start = DateTime.Now;
__mavlink_param_value_t par = buffer.ByteArrayToStructure<__mavlink_param_value_t>(6);
mavlink_param_value_t par = buffer.ByteArrayToStructure<mavlink_param_value_t>(6);
// set new target
param_total = (par.param_count - 1);
@ -755,7 +755,7 @@ namespace ArdupilotMega
/// </summary>
public void stopall(bool forget)
{
__mavlink_request_data_stream_t req = new __mavlink_request_data_stream_t();
mavlink_request_data_stream_t req = new mavlink_request_data_stream_t();
req.target_system = sysid;
req.target_component = compid;
@ -780,14 +780,14 @@ namespace ArdupilotMega
public void setWPACK()
{
#if MAVLINK10
MAVLink.__mavlink_mission_ack_t req = new MAVLink.__mavlink_mission_ack_t();
MAVLink.mavlink_mission_ack_t req = new MAVLink.mavlink_mission_ack_t();
req.target_system = sysid;
req.target_component = compid;
req.type = 0;
generatePacket(MAVLINK_MSG_ID_MISSION_ACK, req);
#else
MAVLink.__mavlink_waypoint_ack_t req = new MAVLink.__mavlink_waypoint_ack_t();
MAVLink.mavlink_waypoint_ack_t req = new MAVLink.mavlink_waypoint_ack_t();
req.target_system = sysid;
req.target_component = compid;
req.type = 0;
@ -802,7 +802,7 @@ namespace ArdupilotMega
MainV2.givecomport = true;
byte[] buffer;
__mavlink_mission_set_current_t req = new __mavlink_mission_set_current_t();
mavlink_mission_set_current_t req = new mavlink_mission_set_current_t();
req.target_system = sysid;
req.target_component = compid;
@ -847,7 +847,7 @@ namespace ArdupilotMega
MainV2.givecomport = true;
byte[] buffer;
__mavlink_command_long_t req = new __mavlink_command_long_t();
mavlink_command_long_t req = new mavlink_command_long_t();
req.target_system = sysid;
req.target_component = compid;
@ -899,7 +899,7 @@ namespace ArdupilotMega
{
var ack = buffer.ByteArrayToStructure<__mavlink_command_ack_t>(6);
var ack = buffer.ByteArrayToStructure<mavlink_command_ack_t>(6);
if (ack.result == (byte)MAV_RESULT.MAV_RESULT_ACCEPTED)
@ -919,7 +919,7 @@ namespace ArdupilotMega
MainV2.giveComport = true;
byte[] buffer;
__mavlink_waypoint_set_current_t req = new __mavlink_waypoint_set_current_t();
mavlink_waypoint_set_current_t req = new mavlink_waypoint_set_current_t();
req.target_system = sysid;
req.target_component = compid;
@ -963,7 +963,7 @@ namespace ArdupilotMega
MainV2.giveComport = true;
byte[] buffer;
__mavlink_action_t req = new __mavlink_action_t();
mavlink_action_t req = new mavlink_action_t();
req.target = sysid;
req.target_component = compid;
@ -1063,9 +1063,9 @@ namespace ArdupilotMega
}
break;
case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA3:
if (packetspersecondbuild[MAVLINK_MSG_ID_DCM] < DateTime.Now.AddSeconds(-2))
if (packetspersecondbuild[MAVLINK_MSG_ID_AHRS] < DateTime.Now.AddSeconds(-2))
break;
pps = packetspersecond[MAVLINK_MSG_ID_DCM];
pps = packetspersecond[MAVLINK_MSG_ID_AHRS];
if (hzratecheck(pps, hzrate))
{
return;
@ -1154,7 +1154,7 @@ namespace ArdupilotMega
void getDatastream(byte id, byte hzrate)
{
__mavlink_request_data_stream_t req = new __mavlink_request_data_stream_t();
mavlink_request_data_stream_t req = new mavlink_request_data_stream_t();
req.target_system = sysid;
req.target_component = compid;
@ -1176,7 +1176,7 @@ namespace ArdupilotMega
MainV2.giveComport = true;
byte[] buffer;
#if MAVLINK10
__mavlink_mission_request_list_t req = new __mavlink_mission_request_list_t();
mavlink_mission_request_list_t req = new mavlink_mission_request_list_t();
req.target_system = sysid;
req.target_component = compid;
@ -1212,7 +1212,7 @@ namespace ArdupilotMega
var count = buffer.ByteArrayToStructure<__mavlink_mission_count_t>(6);
var count = buffer.ByteArrayToStructure<mavlink_mission_count_t>(6);
log.Info("wpcount: " + count.count);
@ -1227,7 +1227,7 @@ namespace ArdupilotMega
}
#else
__mavlink_waypoint_request_list_t req = new __mavlink_waypoint_request_list_t();
mavlink_waypoint_request_list_t req = new mavlink_waypoint_request_list_t();
req.target_system = sysid;
req.target_component = compid;
@ -1284,7 +1284,7 @@ namespace ArdupilotMega
MainV2.giveComport = true;
Locationwp loc = new Locationwp();
#if MAVLINK10
__mavlink_mission_request_t req = new __mavlink_mission_request_t();
mavlink_mission_request_t req = new mavlink_mission_request_t();
req.target_system = sysid;
req.target_component = compid;
@ -1326,12 +1326,12 @@ namespace ArdupilotMega
//Array.Copy(buffer, 6, buffer, 0, buffer.Length - 6);
var wp = buffer.ByteArrayToStructure<__mavlink_mission_item_t>(6);
var wp = buffer.ByteArrayToStructure<mavlink_mission_item_t>(6);
#else
__mavlink_waypoint_request_t req = new __mavlink_waypoint_request_t();
mavlink_waypoint_request_t req = new mavlink_waypoint_request_t();
req.target_system = sysid;
req.target_component = compid;
@ -1369,7 +1369,7 @@ namespace ArdupilotMega
if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT)
{
//Console.WriteLine("getwp ans " + DateTime.Now.Millisecond);
__mavlink_waypoint_t wp = buffer.ByteArrayToStructure<__mavlink_waypoint_t>(6);
mavlink_waypoint_t wp = buffer.ByteArrayToStructure<mavlink_waypoint_t>(6);
#endif
@ -1499,7 +1499,7 @@ namespace ArdupilotMega
textoutput = string.Format("{0:X} {1:X} {2:X} {3:X} {4:X} {5:X} ", header, length, seq, sysid, compid, messid);
object data = Activator.CreateInstance(mavstructs[messid]);
object data = Activator.CreateInstance(MAVLINK_MESSAGE_INFO[messid]);
MavlinkUtil.ByteArrayToStructure(datin, ref data, 6);
@ -1562,7 +1562,7 @@ namespace ArdupilotMega
{
#if MAVLINK10
MainV2.givecomport = true;
__mavlink_mission_count_t req = new __mavlink_mission_count_t();
mavlink_mission_count_t req = new mavlink_mission_count_t();
req.target_system = sysid;
req.target_component = compid; // MAVLINK_MSG_ID_MISSION_COUNT
@ -1597,7 +1597,7 @@ namespace ArdupilotMega
var request = buffer.ByteArrayToStructure<__mavlink_mission_request_t>(6);
var request = buffer.ByteArrayToStructure<mavlink_mission_request_t>(6);
if (request.seq == 0)
{
@ -1617,7 +1617,7 @@ namespace ArdupilotMega
}
#else
MainV2.giveComport = true;
__mavlink_waypoint_count_t req = new __mavlink_waypoint_count_t();
mavlink_waypoint_count_t req = new mavlink_waypoint_count_t();
req.target_system = sysid;
req.target_component = compid; // MAVLINK_MSG_ID_WAYPOINT_COUNT
@ -1649,7 +1649,7 @@ namespace ArdupilotMega
{
if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT_REQUEST)
{
__mavlink_waypoint_request_t request = buffer.ByteArrayToStructure<__mavlink_waypoint_request_t>(6);
mavlink_waypoint_request_t request = buffer.ByteArrayToStructure<mavlink_waypoint_request_t>(6);
if (request.seq == 0)
{
@ -1682,9 +1682,9 @@ namespace ArdupilotMega
{
MainV2.giveComport = true;
#if MAVLINK10
__mavlink_mission_item_t req = new __mavlink_mission_item_t();
mavlink_mission_item_t req = new mavlink_mission_item_t();
#else
__mavlink_waypoint_t req = new __mavlink_waypoint_t();
mavlink_waypoint_t req = new mavlink_waypoint_t();
#endif
req.target_system = sysid;
@ -1797,7 +1797,7 @@ namespace ArdupilotMega
{
var ans = buffer.ByteArrayToStructure<__mavlink_mission_ack_t>(6);
var ans = buffer.ByteArrayToStructure<mavlink_mission_ack_t>(6);
log.Info("set wp " + index + " ACK 47 : " + buffer[5] + " ans " + Enum.Parse(typeof(MAV_MISSION_RESULT), ans.type.ToString()));
@ -1805,7 +1805,7 @@ namespace ArdupilotMega
}
else if (buffer[5] == MAVLINK_MSG_ID_MISSION_REQUEST)
{
var ans = buffer.ByteArrayToStructure<__mavlink_mission_request_t>(6);
var ans = buffer.ByteArrayToStructure<mavlink_mission_request_t>(6);
@ -1828,13 +1828,13 @@ namespace ArdupilotMega
}
#else
if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT_ACK)
{ //__mavlink_waypoint_request_t
{ //mavlink_waypoint_request_t
log.Info("set wp " + index + " ACK 47 : " + buffer[5]);
break;
}
else if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT_REQUEST)
{
__mavlink_waypoint_request_t ans = buffer.ByteArrayToStructure<__mavlink_waypoint_request_t>(6);
mavlink_waypoint_request_t ans = buffer.ByteArrayToStructure<mavlink_waypoint_request_t>(6);
if (ans.seq == (index + 1))
{
@ -1859,7 +1859,7 @@ namespace ArdupilotMega
public void setMountConfigure(MAV_MOUNT_MODE mountmode, bool stabroll, bool stabpitch, bool stabyaw)
{
__mavlink_mount_configure_t req = new __mavlink_mount_configure_t();
mavlink_mount_configure_t req = new mavlink_mount_configure_t();
req.target_system = sysid;
req.target_component = compid;
@ -1875,7 +1875,7 @@ namespace ArdupilotMega
public void setMountControl(double pa, double pb, double pc, bool islatlng)
{
__mavlink_mount_control_t req = new __mavlink_mount_control_t();
mavlink_mount_control_t req = new mavlink_mount_control_t();
req.target_system = sysid;
req.target_component = compid;
@ -1902,7 +1902,7 @@ namespace ArdupilotMega
#if MAVLINK10
try
{
MAVLink.__mavlink_set_mode_t mode = new MAVLink.__mavlink_set_mode_t();
MAVLink.mavlink_set_mode_t mode = new MAVLink.mavlink_set_mode_t();
if (Common.translateMode(modein, ref mode))
{
@ -1915,9 +1915,9 @@ namespace ArdupilotMega
#else
try
{
MAVLink.__mavlink_set_nav_mode_t navmode = new MAVLink.__mavlink_set_nav_mode_t();
MAVLink.mavlink_set_nav_mode_t navmode = new MAVLink.mavlink_set_nav_mode_t();
MAVLink.__mavlink_set_mode_t mode = new MAVLink.__mavlink_set_mode_t();
MAVLink.mavlink_set_mode_t mode = new MAVLink.mavlink_set_mode_t();
if (Common.translateMode(modein, ref navmode, ref mode))
{
@ -2026,7 +2026,7 @@ namespace ArdupilotMega
if (BaseStream.IsOpen)
{
temp[count] = (byte)BaseStream.ReadByte();
if (rawlogfile != null)
if (rawlogfile != null && rawlogfile.BaseStream.CanWrite)
rawlogfile.Write(temp[count]);
}
}
@ -2092,7 +2092,7 @@ namespace ArdupilotMega
if (BaseStream.IsOpen)
{
int read = BaseStream.Read(temp, 6, length - 4);
if (rawlogfile != null)
if (rawlogfile != null && rawlogfile.BaseStream.CanWrite)
{
rawlogfile.Write(temp, 0, read);
rawlogfile.BaseStream.Flush();
@ -2243,7 +2243,7 @@ namespace ArdupilotMega
try
{
if (logfile != null)
if (logfile != null && logfile.BaseStream.CanWrite)
{
lock (logwritelock)
{
@ -2282,7 +2282,7 @@ namespace ArdupilotMega
if (buffer[5] == MAVLink.MAVLINK_MSG_ID_MISSION_ITEM)
{
__mavlink_mission_item_t wp = buffer.ByteArrayToStructure<__mavlink_mission_item_t>(6);
mavlink_mission_item_t wp = buffer.ByteArrayToStructure<mavlink_mission_item_t>(6);
#else
if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT_COUNT)
@ -2293,7 +2293,7 @@ namespace ArdupilotMega
if (buffer[5] == MAVLink.MAVLINK_MSG_ID_WAYPOINT)
{
__mavlink_waypoint_t wp = buffer.ByteArrayToStructure<__mavlink_waypoint_t>(6);
mavlink_waypoint_t wp = buffer.ByteArrayToStructure<mavlink_waypoint_t>(6);
#endif
wps[wp.seq] = new PointLatLngAlt(wp.x, wp.y, wp.z, wp.seq.ToString());
@ -2307,7 +2307,7 @@ namespace ArdupilotMega
MainV2.giveComport = true;
PointLatLngAlt plla = new PointLatLngAlt();
__mavlink_fence_fetch_point_t req = new __mavlink_fence_fetch_point_t();
mavlink_fence_fetch_point_t req = new mavlink_fence_fetch_point_t();
req.idx = (byte)no;
req.target_component = compid;
@ -2342,7 +2342,7 @@ namespace ArdupilotMega
{
MainV2.giveComport = false;
__mavlink_fence_point_t fp = buffer.ByteArrayToStructure<__mavlink_fence_point_t>(6);
mavlink_fence_point_t fp = buffer.ByteArrayToStructure<mavlink_fence_point_t>(6);
plla.Lat = fp.lat;
plla.Lng = fp.lng;
@ -2358,7 +2358,7 @@ namespace ArdupilotMega
public bool setFencePoint(byte index, PointLatLngAlt plla, byte fencepointcount)
{
__mavlink_fence_point_t fp = new __mavlink_fence_point_t();
mavlink_fence_point_t fp = new mavlink_fence_point_t();
fp.idx = index;
fp.count = fencepointcount;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -98,9 +98,9 @@ namespace ArdupilotMega
if (packet == null)
continue;
if (packet.GetType() == typeof(MAVLink.__mavlink_vfr_hud_t))
if (packet.GetType() == typeof(MAVLink.mavlink_vfr_hud_t))
{
if (((MAVLink.__mavlink_vfr_hud_t)packet).throttle >= throttleThreshold)
if (((MAVLink.mavlink_vfr_hud_t)packet).throttle >= throttleThreshold)
{
useData = true;
}
@ -111,35 +111,35 @@ namespace ArdupilotMega
}
if (packet.GetType() == typeof(MAVLink.__mavlink_sensor_offsets_t))
if (packet.GetType() == typeof(MAVLink.mavlink_sensor_offsets_t))
{
offset = new Tuple<float, float, float>(
((MAVLink.__mavlink_sensor_offsets_t)packet).mag_ofs_x,
((MAVLink.__mavlink_sensor_offsets_t)packet).mag_ofs_y,
((MAVLink.__mavlink_sensor_offsets_t)packet).mag_ofs_z);
((MAVLink.mavlink_sensor_offsets_t)packet).mag_ofs_x,
((MAVLink.mavlink_sensor_offsets_t)packet).mag_ofs_y,
((MAVLink.mavlink_sensor_offsets_t)packet).mag_ofs_z);
}
else if (packet.GetType() == typeof(MAVLink.__mavlink_raw_imu_t) && useData)
else if (packet.GetType() == typeof(MAVLink.mavlink_raw_imu_t) && useData)
{
int div = 20;
// fox dxf
vertex = new Polyline3dVertex(new Vector3f(
((MAVLink.__mavlink_raw_imu_t)packet).xmag - offset.Item1,
((MAVLink.__mavlink_raw_imu_t)packet).ymag - offset.Item2,
((MAVLink.__mavlink_raw_imu_t)packet).zmag - offset.Item3)
((MAVLink.mavlink_raw_imu_t)packet).xmag - offset.Item1,
((MAVLink.mavlink_raw_imu_t)packet).ymag - offset.Item2,
((MAVLink.mavlink_raw_imu_t)packet).zmag - offset.Item3)
);
vertexes.Add(vertex);
// for old method
setMinorMax(((MAVLink.__mavlink_raw_imu_t)packet).xmag - offset.Item1, ref minx, ref maxx);
setMinorMax(((MAVLink.__mavlink_raw_imu_t)packet).ymag - offset.Item2, ref miny, ref maxy);
setMinorMax(((MAVLink.__mavlink_raw_imu_t)packet).zmag - offset.Item3, ref minz, ref maxz);
setMinorMax(((MAVLink.mavlink_raw_imu_t)packet).xmag - offset.Item1, ref minx, ref maxx);
setMinorMax(((MAVLink.mavlink_raw_imu_t)packet).ymag - offset.Item2, ref miny, ref maxy);
setMinorMax(((MAVLink.mavlink_raw_imu_t)packet).zmag - offset.Item3, ref minz, ref maxz);
// for new lease sq
string item = (int)(((MAVLink.__mavlink_raw_imu_t)packet).xmag / div) + "," +
(int)(((MAVLink.__mavlink_raw_imu_t)packet).ymag / div) + "," +
(int)(((MAVLink.__mavlink_raw_imu_t)packet).zmag / div);
string item = (int)(((MAVLink.mavlink_raw_imu_t)packet).xmag / div) + "," +
(int)(((MAVLink.mavlink_raw_imu_t)packet).ymag / div) + "," +
(int)(((MAVLink.mavlink_raw_imu_t)packet).zmag / div);
if (filter.ContainsKey(item))
{
@ -155,9 +155,9 @@ namespace ArdupilotMega
data.Add(new Tuple<float, float, float>(
((MAVLink.__mavlink_raw_imu_t)packet).xmag - offset.Item1,
((MAVLink.__mavlink_raw_imu_t)packet).ymag - offset.Item2,
((MAVLink.__mavlink_raw_imu_t)packet).zmag - offset.Item3));
((MAVLink.mavlink_raw_imu_t)packet).xmag - offset.Item1,
((MAVLink.mavlink_raw_imu_t)packet).ymag - offset.Item2,
((MAVLink.mavlink_raw_imu_t)packet).zmag - offset.Item3));
}

View File

@ -58,6 +58,8 @@ namespace ArdupilotMega
bool serialThread = false;
static internal BindingSource bs;
TcpListener listener;
DateTime heatbeatSend = DateTime.Now;
@ -187,7 +189,6 @@ namespace ArdupilotMega
if (config["MainWidth"] != null)
this.Width = int.Parse(config["MainWidth"].ToString());
if (config["CMB_rateattitude"] != null)
MainV2.cs.rateattitude = byte.Parse(config["CMB_rateattitude"].ToString());
if (config["rateposition"] != null)
@ -794,7 +795,7 @@ namespace ArdupilotMega
if (joystick != null && joystick.enabled)
{
MAVLink.__mavlink_rc_channels_override_t rc = new MAVLink.__mavlink_rc_channels_override_t();
MAVLink.mavlink_rc_channels_override_t rc = new MAVLink.mavlink_rc_channels_override_t();
rc.target_component = comPort.compid;
rc.target_system = comPort.sysid;
@ -956,7 +957,7 @@ namespace ArdupilotMega
{
// Console.WriteLine("remote lost {0}", cs.packetdropremote);
MAVLink.__mavlink_heartbeat_t htb = new MAVLink.__mavlink_heartbeat_t();
MAVLink.mavlink_heartbeat_t htb = new MAVLink.mavlink_heartbeat_t();
#if MAVLINK10
htb.type = (byte)MAVLink.MAV_TYPE.MAV_TYPE_GCS;
@ -1862,7 +1863,7 @@ namespace ArdupilotMega
}
if (keyData == (Keys.Control | Keys.W)) // test
{
Form frm = new GCSViews.ConfigurationView.Configuration();
Form frm = new GCSViews.ConfigurationView.Setup();
ThemeManager.ApplyThemeTo(frm);
frm.Show();
return true;
@ -1942,6 +1943,9 @@ namespace ArdupilotMega
if (comPort.rawlogfile != null)
comPort.rawlogfile.Close();
comPort.logfile = null;
comPort.rawlogfile = null;
}
catch { }

View File

@ -744,7 +744,7 @@ namespace ArdupilotMega
int colorvalue = ColourValues[step % ColourValues.Length];
step++;
myCurve = zg1.GraphPane.AddCurve(lookforfields[a].Replace("__mavlink_", ""), lists[a], Color.FromArgb(unchecked(colorvalue + (int)0xff000000)), SymbolType.None);
myCurve = zg1.GraphPane.AddCurve(lookforfields[a].Replace("mavlink_", ""), lists[a], Color.FromArgb(unchecked(colorvalue + (int)0xff000000)), SymbolType.None);
double xMin, xMax, yMin, yMax;
@ -795,6 +795,12 @@ namespace ArdupilotMega
object data = MavlinkInterface.DebugPacket(packet, false);
if (data == null)
{
log.Info("No info on packet");
continue;
}
Type test = data.GetType();
foreach (var field in test.GetFields())
@ -890,9 +896,9 @@ namespace ArdupilotMega
PointPairList list = ((PointPairList)this.data[field]);
PointPairList listx = ((PointPairList)this.data["xmag __mavlink_raw_imu_t"]);
PointPairList listy = ((PointPairList)this.data["ymag __mavlink_raw_imu_t"]);
PointPairList listz = ((PointPairList)this.data["zmag __mavlink_raw_imu_t"]);
PointPairList listx = ((PointPairList)this.data["xmag mavlink_raw_imu_t"]);
PointPairList listy = ((PointPairList)this.data["ymag mavlink_raw_imu_t"]);
PointPairList listz = ((PointPairList)this.data["zmag mavlink_raw_imu_t"]);
//(float)Math.Sqrt(Math.Pow(mx, 2) + Math.Pow(my, 2) + Math.Pow(mz, 2));
@ -949,13 +955,13 @@ namespace ArdupilotMega
int colorvalue = ColourValues[colorStep % ColourValues.Length];
colorStep++;
myCurve = zg1.GraphPane.AddCurve(((CheckBox)sender).Name.Replace("__mavlink_", ""), (PointPairList)data[((CheckBox)sender).Name], Color.FromArgb(unchecked(colorvalue + (int)0xff000000)), SymbolType.None);
myCurve = zg1.GraphPane.AddCurve(((CheckBox)sender).Name.Replace("mavlink_", ""), (PointPairList)data[((CheckBox)sender).Name], Color.FromArgb(unchecked(colorvalue + (int)0xff000000)), SymbolType.None);
myCurve.Tag = ((CheckBox)sender).Name;
if (myCurve.Tag.ToString() == "roll __mavlink_attitude_t" ||
myCurve.Tag.ToString() == "pitch __mavlink_attitude_t" ||
myCurve.Tag.ToString() == "yaw __mavlink_attitude_t")
if (myCurve.Tag.ToString() == "roll mavlink_attitude_t" ||
myCurve.Tag.ToString() == "pitch mavlink_attitude_t" ||
myCurve.Tag.ToString() == "yaw mavlink_attitude_t")
{
PointPairList ppl = new PointPairList((PointPairList)data[((CheckBox)sender).Name]);
for (int a = 0; a < ppl.Count; a++)

View File

@ -23,100 +23,100 @@
<Permission User="Everyone" GenericAll="yes" />
</CreateFolder>
</Component>
<Component Id="_comp0" Guid="ac593651-82f6-4297-bb94-f8a233d91b6f">
<File Id="_1" Source="..\bin\release\AeroSimRCAPMHil.zip" />
<File Id="_2" Source="..\bin\release\alglibnet2.dll" />
<File Id="_3" Source="..\bin\release\arducopter-xplane.zip" />
<File Id="_4" Source="..\bin\release\ArdupilotMegaPlanner.exe" />
<File Id="_5" Source="..\bin\release\ArdupilotMegaPlanner.exe.config" />
<File Id="_6" Source="..\bin\release\ArdupilotMegaPlanner.pdb" />
<File Id="_7" Source="..\bin\release\block_plane_0.dae" />
<File Id="_8" Source="..\bin\release\BSE.Windows.Forms.dll" />
<File Id="_9" Source="..\bin\release\Core.dll" />
<File Id="_10" Source="..\bin\release\dataflashlog.xml" />
<File Id="_11" Source="..\bin\release\DirectShowLib-2005.dll" />
<File Id="_12" Source="..\bin\release\GMap.NET.Core.dll" />
<File Id="_13" Source="..\bin\release\GMap.NET.WindowsForms.dll" />
<File Id="_14" Source="..\bin\release\hud.html" />
<File Id="_15" Source="..\bin\release\ICSharpCode.SharpZipLib.dll" />
<File Id="_16" Source="..\bin\release\Ionic.Zip.Reduced.dll" />
<File Id="_17" Source="..\bin\release\IronPython.dll" />
<File Id="_18" Source="..\bin\release\IronPython.Modules.dll" />
<File Id="_19" Source="..\bin\release\JSBSim.exe" />
<File Id="_20" Source="..\bin\release\KMLib.dll" />
<File Id="_21" Source="..\bin\release\log4net.dll" />
<File Id="_22" Source="..\bin\release\mavcmd.xml" />
<File Id="_23" Source="..\bin\release\MAVLink.xml" />
<File Id="_24" Source="..\bin\release\MetaDataExtractor.dll" />
<File Id="_25" Source="..\bin\release\Microsoft.Dynamic.dll" />
<File Id="_26" Source="..\bin\release\Microsoft.Scripting.Core.dll" />
<File Id="_27" Source="..\bin\release\Microsoft.Scripting.Debugging.dll" />
<File Id="_28" Source="..\bin\release\Microsoft.Scripting.dll" />
<File Id="_29" Source="..\bin\release\Microsoft.Scripting.ExtensionAttribute.dll" />
<File Id="_30" Source="..\bin\release\netDxf.dll" />
<File Id="_31" Source="..\bin\release\OpenTK.dll" />
<File Id="_32" Source="..\bin\release\OpenTK.GLControl.dll" />
<File Id="_33" Source="..\bin\release\quadhil.xml" />
<File Id="_34" Source="..\bin\release\SharpKml.dll" />
<File Id="_35" Source="..\bin\release\System.Data.SQLite.dll" />
<File Id="_36" Source="..\bin\release\System.Speech.dll" />
<File Id="_37" Source="..\bin\release\Updater.exe" />
<File Id="_38" Source="..\bin\release\Updater.exe.config" />
<File Id="_39" Source="..\bin\release\Updater.pdb" />
<File Id="_40" Source="..\bin\release\ZedGraph.dll" />
<Component Id="_comp1" Guid="34295c8e-0d23-4735-b56d-d2b6652756e5">
<File Id="_2" Source="..\bin\release\AeroSimRCAPMHil.zip" />
<File Id="_3" Source="..\bin\release\alglibnet2.dll" />
<File Id="_4" Source="..\bin\release\arducopter-xplane.zip" />
<File Id="_5" Source="..\bin\release\ArdupilotMegaPlanner.exe" />
<File Id="_6" Source="..\bin\release\ArdupilotMegaPlanner.exe.config" />
<File Id="_7" Source="..\bin\release\ArdupilotMegaPlanner.pdb" />
<File Id="_8" Source="..\bin\release\block_plane_0.dae" />
<File Id="_9" Source="..\bin\release\BSE.Windows.Forms.dll" />
<File Id="_10" Source="..\bin\release\Core.dll" />
<File Id="_11" Source="..\bin\release\dataflashlog.xml" />
<File Id="_12" Source="..\bin\release\DirectShowLib-2005.dll" />
<File Id="_13" Source="..\bin\release\GMap.NET.Core.dll" />
<File Id="_14" Source="..\bin\release\GMap.NET.WindowsForms.dll" />
<File Id="_15" Source="..\bin\release\hud.html" />
<File Id="_16" Source="..\bin\release\ICSharpCode.SharpZipLib.dll" />
<File Id="_17" Source="..\bin\release\Ionic.Zip.Reduced.dll" />
<File Id="_18" Source="..\bin\release\IronPython.dll" />
<File Id="_19" Source="..\bin\release\IronPython.Modules.dll" />
<File Id="_20" Source="..\bin\release\JSBSim.exe" />
<File Id="_21" Source="..\bin\release\KMLib.dll" />
<File Id="_22" Source="..\bin\release\log4net.dll" />
<File Id="_23" Source="..\bin\release\mavcmd.xml" />
<File Id="_24" Source="..\bin\release\MAVLink.xml" />
<File Id="_25" Source="..\bin\release\MetaDataExtractor.dll" />
<File Id="_26" Source="..\bin\release\Microsoft.Dynamic.dll" />
<File Id="_27" Source="..\bin\release\Microsoft.Scripting.Core.dll" />
<File Id="_28" Source="..\bin\release\Microsoft.Scripting.Debugging.dll" />
<File Id="_29" Source="..\bin\release\Microsoft.Scripting.dll" />
<File Id="_30" Source="..\bin\release\Microsoft.Scripting.ExtensionAttribute.dll" />
<File Id="_31" Source="..\bin\release\netDxf.dll" />
<File Id="_32" Source="..\bin\release\OpenTK.dll" />
<File Id="_33" Source="..\bin\release\OpenTK.GLControl.dll" />
<File Id="_34" Source="..\bin\release\quadhil.xml" />
<File Id="_35" Source="..\bin\release\SharpKml.dll" />
<File Id="_36" Source="..\bin\release\System.Data.SQLite.dll" />
<File Id="_37" Source="..\bin\release\System.Speech.dll" />
<File Id="_38" Source="..\bin\release\Updater.exe" />
<File Id="_39" Source="..\bin\release\Updater.exe.config" />
<File Id="_40" Source="..\bin\release\Updater.pdb" />
<File Id="_41" Source="..\bin\release\ZedGraph.dll" />
</Component>
<Directory Id="Driver" Name="Driver">
<Component Id="_comp40" Guid="2fdf06ca-6e78-41c1-a558-0b0970ef8cdd">
<File Id="_41" Source="..\bin\release\Driver\Arduino MEGA 2560.inf" />
<Directory Id="Driver41" Name="Driver">
<Component Id="_comp42" Guid="3975a290-2f19-4aa9-97b9-37d45672d063">
<File Id="_43" Source="..\bin\release\Driver\Arduino MEGA 2560.inf" />
</Component>
</Directory>
<Directory Id="es_ES" Name="es-ES">
<Component Id="_comp41" Guid="7c2d0e6e-be62-414e-87d3-15c3408a6689">
<File Id="_42" Source="..\bin\release\es-ES\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="es_ES43" Name="es-ES">
<Component Id="_comp44" Guid="02407d9c-9e9f-4e5d-a48d-d7d9fc0846a7">
<File Id="_45" Source="..\bin\release\es-ES\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="fr" Name="fr">
<Component Id="_comp42" Guid="a96af704-563a-4606-902c-f5ada5f0e2e4">
<File Id="_43" Source="..\bin\release\fr\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="fr45" Name="fr">
<Component Id="_comp46" Guid="74e19d89-486a-487d-9053-be1c34b8e7d9">
<File Id="_47" Source="..\bin\release\fr\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="it_IT" Name="it-IT">
<Component Id="_comp43" Guid="f25da795-c709-42ed-b395-68b30354db54">
<File Id="_44" Source="..\bin\release\it-IT\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="it_IT47" Name="it-IT">
<Component Id="_comp48" Guid="0003cdb4-191e-4771-a098-4e35e5eea039">
<File Id="_49" Source="..\bin\release\it-IT\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="m3u" Name="m3u">
<Component Id="_comp44" Guid="201b2c11-e385-4176-ba7f-cff62934e41f">
<File Id="_45" Source="..\bin\release\m3u\both.m3u" />
<File Id="_46" Source="..\bin\release\m3u\hud.m3u" />
<File Id="_47" Source="..\bin\release\m3u\map.m3u" />
<File Id="_48" Source="..\bin\release\m3u\networklink.kml" />
<Directory Id="m3u49" Name="m3u">
<Component Id="_comp50" Guid="fc43d9e6-6966-4682-884f-655b48d2cb21">
<File Id="_51" Source="..\bin\release\m3u\both.m3u" />
<File Id="_52" Source="..\bin\release\m3u\hud.m3u" />
<File Id="_53" Source="..\bin\release\m3u\map.m3u" />
<File Id="_54" Source="..\bin\release\m3u\networklink.kml" />
</Component>
</Directory>
<Directory Id="pl" Name="pl">
<Component Id="_comp48" Guid="91e14b63-64b9-43d5-9f3c-dc3eccac202f">
<File Id="_49" Source="..\bin\release\pl\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="pl54" Name="pl">
<Component Id="_comp55" Guid="f8b404d3-6d8b-459b-81ae-5538993f5f93">
<File Id="_56" Source="..\bin\release\pl\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="Resources" Name="Resources">
<Component Id="_comp49" Guid="16f71db5-f216-4ce9-8379-1c5d8e9cfc1a">
<File Id="_50" Source="..\bin\release\Resources\MAVCmd.txt" />
<File Id="_51" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf" />
<Directory Id="Resources56" Name="Resources">
<Component Id="_comp57" Guid="455d632e-d45a-4d33-8686-48c2e734c6a2">
<File Id="_58" Source="..\bin\release\Resources\MAVCmd.txt" />
<File Id="_59" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf" />
</Component>
</Directory>
<Directory Id="ru_RU" Name="ru-RU">
<Component Id="_comp51" Guid="41050916-508f-4f5e-b547-5374fe279b0f">
<File Id="_52" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="ru_RU59" Name="ru-RU">
<Component Id="_comp60" Guid="d8f500bc-350b-4b04-9926-ba6308e4dbb4">
<File Id="_61" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_Hans" Name="zh-Hans">
<Component Id="_comp52" Guid="bbcbc38d-f1d3-4686-895d-9db643ac93aa">
<File Id="_53" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="zh_Hans61" Name="zh-Hans">
<Component Id="_comp62" Guid="698d99e5-250c-435f-b596-dd99d9c68e64">
<File Id="_63" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_TW" Name="zh-TW">
<Component Id="_comp53" Guid="1abb66a4-ec2e-46a5-8ec7-df5ead6615ac">
<File Id="_54" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner.resources.dll" />
<Directory Id="zh_TW63" Name="zh-TW">
<Component Id="_comp64" Guid="d051d520-b580-4990-b1ab-12107aa8571f">
<File Id="_65" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
@ -157,17 +157,17 @@
<Feature Id="MyFeature" Title="My 1st Feature" Level="1">
<ComponentRef Id="InstallDirPermissions" />
<ComponentRef Id="_comp0" />
<ComponentRef Id="_comp40" />
<ComponentRef Id="_comp41" />
<ComponentRef Id="_comp1" />
<ComponentRef Id="_comp42" />
<ComponentRef Id="_comp43" />
<ComponentRef Id="_comp44" />
<ComponentRef Id="_comp46" />
<ComponentRef Id="_comp48" />
<ComponentRef Id="_comp49" />
<ComponentRef Id="_comp51" />
<ComponentRef Id="_comp52" />
<ComponentRef Id="_comp53" />
<ComponentRef Id="_comp50" />
<ComponentRef Id="_comp55" />
<ComponentRef Id="_comp57" />
<ComponentRef Id="_comp60" />
<ComponentRef Id="_comp62" />
<ComponentRef Id="_comp64" />
<ComponentRef Id="ApplicationShortcut" />
@ -188,7 +188,7 @@
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch APM Planner" />
<!-- Step 3: Include the custom action -->
<Property Id="WixShellExecTarget" Value="[#_4]" />
<Property Id="WixShellExecTarget" Value="[#_5]" />
<CustomAction Id="LaunchApplication"
BinaryKey="WixCA"
DllEntry="WixShellExec"

View File

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

View File

@ -55,12 +55,12 @@
this.RS3 = new System.Windows.Forms.ComboBox();
this.RS2 = new System.Windows.Forms.ComboBox();
this.RS1 = new System.Windows.Forms.ComboBox();
this.RSSI = new System.Windows.Forms.TextBox();
this.RS0 = new System.Windows.Forms.TextBox();
this.label9 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.RTI = new System.Windows.Forms.TextBox();
this.ATI = new System.Windows.Forms.TextBox();
this.RSSI = new System.Windows.Forms.TextBox();
this.label11 = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label();
this.BUT_savesettings = new ArdupilotMega.MyButton();
@ -139,13 +139,16 @@
//
this.S2.FormattingEnabled = true;
this.S2.Items.AddRange(new object[] {
"250",
"192",
"160",
"128",
"96",
"64",
"32",
"16"});
"16",
"8",
"4",
"2"});
this.S2.Location = new System.Drawing.Point(87, 168);
this.S2.Name = "S2";
this.S2.Size = new System.Drawing.Size(80, 21);
@ -283,9 +286,9 @@
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(15, 311);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(68, 13);
this.label8.Size = new System.Drawing.Size(61, 13);
this.label8.TabIndex = 20;
this.label8.Text = "Op Pre Send";
this.label8.Text = "Op Resend";
//
// S7
//
@ -395,13 +398,16 @@
//
this.RS2.FormattingEnabled = true;
this.RS2.Items.AddRange(new object[] {
"250",
"192",
"160",
"128",
"96",
"64",
"32",
"16"});
"16",
"8",
"4",
"2"});
this.RS2.Location = new System.Drawing.Point(201, 168);
this.RS2.Name = "RS2";
this.RS2.Size = new System.Drawing.Size(80, 21);
@ -429,6 +435,16 @@
this.RS1.TabIndex = 22;
this.toolTip1.SetToolTip(this.RS1, "Serial baud rate in rounded kbps. So 57 means 57600. \r\n");
//
// RSSI
//
this.RSSI.Location = new System.Drawing.Point(87, 51);
this.RSSI.Multiline = true;
this.RSSI.Name = "RSSI";
this.RSSI.ReadOnly = true;
this.RSSI.Size = new System.Drawing.Size(194, 58);
this.RSSI.TabIndex = 34;
this.toolTip1.SetToolTip(this.RSSI, resources.GetString("RSSI.ToolTip"));
//
// RS0
//
this.RS0.Location = new System.Drawing.Point(201, 115);
@ -471,16 +487,6 @@
this.ATI.Size = new System.Drawing.Size(80, 20);
this.ATI.TabIndex = 32;
//
// RSSI
//
this.RSSI.Location = new System.Drawing.Point(87, 51);
this.RSSI.Multiline = true;
this.RSSI.Name = "RSSI";
this.RSSI.ReadOnly = true;
this.RSSI.Size = new System.Drawing.Size(194, 58);
this.RSSI.TabIndex = 34;
this.toolTip1.SetToolTip(this.RSSI, resources.GetString("RSSI.ToolTip"));
//
// label11
//
this.label11.AutoSize = true;
@ -501,6 +507,7 @@
//
// BUT_savesettings
//
this.BUT_savesettings.Enabled = false;
this.BUT_savesettings.Location = new System.Drawing.Point(99, 330);
this.BUT_savesettings.Name = "BUT_savesettings";
this.BUT_savesettings.Size = new System.Drawing.Size(75, 39);

View File

@ -29,9 +29,10 @@ namespace ArdupilotMega
bool getFirmware()
{
//https://raw.github.com/tridge/SiK/master/Firmware/dst/radio.hm_trp.hex
// was https://raw.github.com/tridge/SiK/master/Firmware/dst/radio.hm_trp.hex
// now http://www.samba.org/tridge/UAV/3DR/radio.hm_trp.hex
return Common.getFilefromNet("https://raw.github.com/tridge/SiK/master/Firmware/dst/radio.hm_trp.hex", firmwarefile);
return Common.getFilefromNet("http://www.samba.org/tridge/UAV/3DR/radio.hm_trp.hex", firmwarefile);
}
void Sleep(int mstimeout)
@ -449,6 +450,9 @@ namespace ArdupilotMega
{
Control[] controls = this.Controls.Find("R" + values[0].Trim(), false);
if (controls.Length == 0)
continue;
if (controls[0].GetType() == typeof(CheckBox))
{
((CheckBox)controls[0]).Checked = values[2].Trim() == "1";
@ -485,6 +489,8 @@ namespace ArdupilotMega
}
comPort.Close();
BUT_savesettings.Enabled = true;
}
string Serial_ReadLine(ArdupilotMega.ICommsSerial comPort)

View File

@ -120,9 +120,6 @@
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="S3.ToolTip" xml:space="preserve">
<value>NETID is a 16 bit 'network ID'. This is used to seed the frequency hopping sequence and to identify packets as coming from the right radio. Make sure you use a different NETID from anyone else running the same sort of radio in the area. </value>
</data>

View File

@ -14,7 +14,7 @@ namespace ArdupilotMega
static Microsoft.Scripting.Hosting.ScriptScope scope;
// keeps history
MAVLink.__mavlink_rc_channels_override_t rc = new MAVLink.__mavlink_rc_channels_override_t();
MAVLink.mavlink_rc_channels_override_t rc = new MAVLink.mavlink_rc_channels_override_t();
public Script()
{

File diff suppressed because it is too large Load Diff

View File

@ -86,7 +86,7 @@
<location unit="IN">
<x> 68.9 </x>
<y> 0 </y>
<z> -3 </z>
<z> -13.1 </z>
</location>
<static_friction> 8.0 </static_friction>
<dynamic_friction> 5.0 </dynamic_friction>

View File

@ -4,11 +4,55 @@ using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace wix
{
class Program
{
/// <summary>
/// The operation completed successfully.
/// </summary>
public const int ERROR_SUCCESS = 0;
/// <summary>
/// Incorrect function.
/// </summary>
public const int ERROR_INVALID_FUNCTION = 1;
/// <summary>
/// The system cannot find the file specified.
/// </summary>
public const int ERROR_FILE_NOT_FOUND = 2;
/// <summary>
/// The system cannot find the path specified.
/// </summary>
public const int ERROR_PATH_NOT_FOUND = 3;
/// <summary>
/// The system cannot open the file.
/// </summary>
public const int ERROR_TOO_MANY_OPEN_FILES = 4;
/// <summary>
/// Access is denied.
/// </summary>
public const int ERROR_ACCESS_DENIED = 5;
const Int32 DRIVER_PACKAGE_REPAIR = 0x00000001;
const Int32 DRIVER_PACKAGE_SILENT = 0x00000002;
const Int32 DRIVER_PACKAGE_FORCE = 0x00000004;
const Int32 DRIVER_PACKAGE_ONLY_IF_DEVICE_PRESENT = 0x00000008;
const Int32 DRIVER_PACKAGE_LEGACY_MODE = 0x00000010;
const Int32 DRIVER_PACKAGE_DELETE_FILES = 0x00000020;
[DllImport("DIFXApi.dll", CharSet = CharSet.Unicode)]
public static extern Int32 DriverPackagePreinstall(string DriverPackageInfPath, Int32 Flags);
static void driverinstall()
{
int result = DriverPackagePreinstall(@"..\Driver\Arduino MEGA 2560.inf", 0);
if (result != 0)
MessageBox.Show("Driver installation failed. " + result);
}
static int no = 0;
static StreamWriter sw;
@ -25,6 +69,12 @@ namespace wix
return;
}
if (args[0] == "driver")
{
driverinstall();
return;
}
string path = args[0];
string file = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar+ "installer.wxs";
@ -190,12 +240,13 @@ data = @"
string[] dirs = Directory.GetDirectories(path);
if (level != 0)
sw.WriteLine("<Directory Id=\"" + Path.GetFileName(path).Replace('-', '_') + "\" Name=\"" + Path.GetFileName(path) + "\">");
sw.WriteLine("<Directory Id=\"" + Path.GetFileName(path).Replace('-', '_') + no + "\" Name=\"" + Path.GetFileName(path) + "\">");
string[] files = Directory.GetFiles(path);
sw.WriteLine("<Component Id=\"_comp"+no+"\" Guid=\""+ System.Guid.NewGuid().ToString() +"\">");
no++;
sw.WriteLine("<Component Id=\"_comp"+no+"\" Guid=\""+ System.Guid.NewGuid().ToString() +"\">");
components.Add("_comp"+no);
foreach (string filepath in files)

View File

@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.261
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace wix.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("wix.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
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">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</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.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:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.261
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace wix.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@ -0,0 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
</SettingsFile>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Specifying requestedExecutionLevel node will disable file and registry virtualization.
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of all Windows versions that this application is designed to work with. Windows will automatically select the most compatible environment.-->
<!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
</application>
</compatibility>
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
<!-- <dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>-->
</asmv1:assembly>

View File

@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>wix</RootNamespace>
<AssemblyName>wix</AssemblyName>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
@ -49,6 +49,16 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup />
<PropertyGroup>
<TargetZone>LocalIntranet</TargetZone>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>false</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
@ -58,9 +68,24 @@
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Properties\app.manifest" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
@ -79,6 +104,12 @@
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.