APM Planner 1.1.30
add OF_LOITER add AC TUNE options fix default alt issues. make Scripts, 1 at a time. update aerosim-rc plugin. add new "follow me" mode- need a nmea gps and xbee on pc. control-F > follow me
This commit is contained in:
parent
9c5f77926f
commit
4d6850fd34
@ -253,6 +253,12 @@
|
||||
<Compile Include="Controls\XorPlus.Designer.cs">
|
||||
<DependentUpon>XorPlus.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SerialInput.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SerialInput.Designer.cs">
|
||||
<DependentUpon>SerialInput.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GCSViews\Firmware.Designer.cs">
|
||||
<DependentUpon>Firmware.cs</DependentUpon>
|
||||
</Compile>
|
||||
@ -432,6 +438,9 @@
|
||||
<EmbeddedResource Include="Controls\XorPlus.resx">
|
||||
<DependentUpon>XorPlus.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SerialInput.resx">
|
||||
<DependentUpon>SerialInput.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="GCSViews\Configuration.fr.resx">
|
||||
<DependentUpon>Configuration.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
@ -198,11 +198,43 @@ namespace ArdupilotMega
|
||||
this.Lng = pll.Lng;
|
||||
}
|
||||
|
||||
public PointLatLngAlt(PointLatLngAlt plla)
|
||||
{
|
||||
this.Lat = plla.Lat;
|
||||
this.Lng = plla.Lng;
|
||||
this.Alt = plla.Alt;
|
||||
this.color = plla.color;
|
||||
this.Tag = plla.Tag;
|
||||
}
|
||||
|
||||
public PointLatLng Point()
|
||||
{
|
||||
return new PointLatLng(Lat, Lng);
|
||||
}
|
||||
|
||||
public override bool Equals(Object pllaobj)
|
||||
{
|
||||
PointLatLngAlt plla = (PointLatLngAlt)pllaobj;
|
||||
|
||||
if (plla == null)
|
||||
return false;
|
||||
|
||||
if (this.Lat == plla.Lat &&
|
||||
this.Lng == plla.Lng &&
|
||||
this.Alt == plla.Alt &&
|
||||
this.color == plla.color &&
|
||||
this.Tag == plla.Tag)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return (int)((Lat + Lng + Alt) * 100);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Calc Distance in M
|
||||
/// </summary>
|
||||
@ -263,7 +295,8 @@ namespace ArdupilotMega
|
||||
RTL = 6, // AUTO control
|
||||
CIRCLE = 7,
|
||||
POSITION = 8,
|
||||
LAND = 9 // AUTO control
|
||||
LAND = 9, // AUTO control
|
||||
OF_LOITER = 10
|
||||
}
|
||||
|
||||
public static void linearRegression()
|
||||
|
@ -30,8 +30,8 @@
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Configuration));
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
this.Params = new System.Windows.Forms.DataGridView();
|
||||
this.Command = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Value = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
@ -285,6 +285,8 @@
|
||||
this.BUT_load = new ArdupilotMega.MyButton();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.BUT_compare = new ArdupilotMega.MyButton();
|
||||
this.myLabel2 = new ArdupilotMega.MyLabel();
|
||||
this.TUNE = new System.Windows.Forms.ComboBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.Params)).BeginInit();
|
||||
this.ConfigTabs.SuspendLayout();
|
||||
this.TabAP.SuspendLayout();
|
||||
@ -405,14 +407,14 @@
|
||||
this.Params.AllowUserToAddRows = false;
|
||||
this.Params.AllowUserToDeleteRows = false;
|
||||
resources.ApplyResources(this.Params, "Params");
|
||||
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;
|
||||
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle3.BackColor = System.Drawing.Color.Maroon;
|
||||
dataGridViewCellStyle3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle3.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.Params.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3;
|
||||
this.Params.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.Params.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.Command,
|
||||
@ -421,14 +423,14 @@
|
||||
this.mavScale,
|
||||
this.RawValue});
|
||||
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;
|
||||
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.ActiveCaption;
|
||||
dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.Params.RowHeadersDefaultCellStyle = dataGridViewCellStyle4;
|
||||
this.Params.RowHeadersVisible = false;
|
||||
this.Params.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.Params_CellValueChanged);
|
||||
//
|
||||
@ -1089,6 +1091,8 @@
|
||||
//
|
||||
// TabAC
|
||||
//
|
||||
this.TabAC.Controls.Add(this.myLabel2);
|
||||
this.TabAC.Controls.Add(this.TUNE);
|
||||
this.TabAC.Controls.Add(this.myLabel1);
|
||||
this.TabAC.Controls.Add(this.CH7_OPT);
|
||||
this.TabAC.Controls.Add(this.groupBox17);
|
||||
@ -2092,6 +2096,40 @@
|
||||
this.BUT_compare.UseVisualStyleBackColor = true;
|
||||
this.BUT_compare.Click += new System.EventHandler(this.BUT_compare_Click);
|
||||
//
|
||||
// myLabel2
|
||||
//
|
||||
resources.ApplyResources(this.myLabel2, "myLabel2");
|
||||
this.myLabel2.Name = "myLabel2";
|
||||
this.myLabel2.resize = false;
|
||||
//
|
||||
// TUNE
|
||||
//
|
||||
this.TUNE.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.TUNE.FormattingEnabled = true;
|
||||
this.TUNE.Items.AddRange(new object[] {
|
||||
resources.GetString("TUNE.Items"),
|
||||
resources.GetString("TUNE.Items1"),
|
||||
resources.GetString("TUNE.Items2"),
|
||||
resources.GetString("TUNE.Items3"),
|
||||
resources.GetString("TUNE.Items4"),
|
||||
resources.GetString("TUNE.Items5"),
|
||||
resources.GetString("TUNE.Items6"),
|
||||
resources.GetString("TUNE.Items7"),
|
||||
resources.GetString("TUNE.Items8"),
|
||||
resources.GetString("TUNE.Items9"),
|
||||
resources.GetString("TUNE.Items10"),
|
||||
resources.GetString("TUNE.Items11"),
|
||||
resources.GetString("TUNE.Items12"),
|
||||
resources.GetString("TUNE.Items13"),
|
||||
resources.GetString("TUNE.Items14"),
|
||||
resources.GetString("TUNE.Items15"),
|
||||
resources.GetString("TUNE.Items16"),
|
||||
resources.GetString("TUNE.Items17"),
|
||||
resources.GetString("TUNE.Items18"),
|
||||
resources.GetString("TUNE.Items19")});
|
||||
resources.ApplyResources(this.TUNE, "TUNE");
|
||||
this.TUNE.Name = "TUNE";
|
||||
//
|
||||
// Configuration
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
@ -2479,5 +2517,7 @@
|
||||
private System.Windows.Forms.Label label48;
|
||||
private MyLabel myLabel1;
|
||||
private System.Windows.Forms.ComboBox CH7_OPT;
|
||||
private MyLabel myLabel2;
|
||||
private System.Windows.Forms.ComboBox TUNE;
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -134,7 +134,7 @@
|
||||
<value>Point Camera Here</value>
|
||||
</data>
|
||||
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>175, 48</value>
|
||||
<value>175, 70</value>
|
||||
</data>
|
||||
<data name=">>contextMenuStrip1.Name" xml:space="preserve">
|
||||
<value>contextMenuStrip1</value>
|
||||
|
@ -290,11 +290,13 @@ namespace ArdupilotMega.GCSViews
|
||||
}
|
||||
|
||||
float ans;
|
||||
if (float.TryParse(TXT_homealt.Text, out result) && float.TryParse(cell.Value.ToString(), out ans))
|
||||
if (float.TryParse(cell.Value.ToString(), out ans))
|
||||
{
|
||||
ans = (int)ans;
|
||||
if (alt != 0)
|
||||
if (alt != 0) // use passed in value;
|
||||
cell.Value = alt.ToString();
|
||||
if (ans == 0)
|
||||
cell.Value = 50;
|
||||
// online verify height
|
||||
if (isonline && CHK_geheight.Checked)
|
||||
{
|
||||
@ -314,7 +316,7 @@ namespace ArdupilotMega.GCSViews
|
||||
{
|
||||
cell.Value = (float.Parse(TXT_homealt.Text) + int.Parse(TXT_DefaultAlt.Text)).ToString();
|
||||
} // is relative and check height
|
||||
else if (float.TryParse(TXT_homealt.Text, out result) && isonline && CHK_geheight.Checked)
|
||||
else if (isonline && CHK_geheight.Checked)
|
||||
{
|
||||
alt = (int)getGEAlt(lat, lng);
|
||||
|
||||
@ -328,10 +330,6 @@ namespace ArdupilotMega.GCSViews
|
||||
cell.Style.BackColor = Color.LightGreen;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cell.Value = 100 ;
|
||||
}
|
||||
|
||||
}
|
||||
cell.DataGridView.EndEdit();
|
||||
|
@ -348,7 +348,6 @@ namespace ArdupilotMega.GCSViews
|
||||
ArdupilotMega.MainV2.config["REV_pitch"] = CHKREV_pitch.Checked.ToString();
|
||||
ArdupilotMega.MainV2.config["REV_rudder"] = CHKREV_rudder.Checked.ToString();
|
||||
ArdupilotMega.MainV2.config["GPSrate"] = GPSrate.Text;
|
||||
ArdupilotMega.MainV2.config["Xplanes"] = RAD_softXplanes.Checked.ToString();
|
||||
|
||||
ArdupilotMega.MainV2.config["MAVrollgain"] = TXT_rollgain.Text;
|
||||
ArdupilotMega.MainV2.config["MAVpitchgain"] = TXT_pitchgain.Text;
|
||||
@ -389,9 +388,6 @@ namespace ArdupilotMega.GCSViews
|
||||
case "GPSrate":
|
||||
GPSrate.Text = ArdupilotMega.MainV2.config[key].ToString();
|
||||
break;
|
||||
case "Xplanes":
|
||||
RAD_softXplanes.Checked = bool.Parse(ArdupilotMega.MainV2.config[key].ToString());
|
||||
break;
|
||||
case "MAVrollgain":
|
||||
TXT_rollgain.Text = ArdupilotMega.MainV2.config[key].ToString();
|
||||
break;
|
||||
|
@ -2006,7 +2006,7 @@ namespace ArdupilotMega
|
||||
}
|
||||
catch (Exception e) { Console.WriteLine("MAVLink readpacket read error: " + e.Message); break; }
|
||||
|
||||
if (temp[0] != 254 && temp[0] != 'U' || lastbad[0] == 'I' && lastbad[1] == 'M') // out of sync
|
||||
if (temp[0] != 254 && temp[0] != 'U' || lastbad[0] == 'I' && lastbad[1] == 'M' || lastbad[1] == 'G') // out of sync
|
||||
{
|
||||
if (temp[0] >= 0x20 && temp[0] <= 127 || temp[0] == '\n' || temp[0] == '\r')
|
||||
{
|
||||
|
@ -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.29")]
|
||||
[assembly: AssemblyFileVersion("1.1.30")]
|
||||
[assembly: NeutralResourcesLanguageAttribute("")]
|
||||
|
@ -10,8 +10,8 @@ namespace ArdupilotMega
|
||||
{
|
||||
DateTime timeout = DateTime.Now;
|
||||
List<string> items = new List<string>();
|
||||
Microsoft.Scripting.Hosting.ScriptEngine engine;
|
||||
Microsoft.Scripting.Hosting.ScriptScope scope;
|
||||
static Microsoft.Scripting.Hosting.ScriptEngine engine;
|
||||
static Microsoft.Scripting.Hosting.ScriptScope scope;
|
||||
|
||||
// keeps history
|
||||
MAVLink.__mavlink_rc_channels_override_t rc = new MAVLink.__mavlink_rc_channels_override_t();
|
||||
|
135
Tools/ArdupilotMegaPlanner/SerialInput.Designer.cs
generated
Normal file
135
Tools/ArdupilotMegaPlanner/SerialInput.Designer.cs
generated
Normal file
@ -0,0 +1,135 @@
|
||||
namespace ArdupilotMega
|
||||
{
|
||||
partial class SerialInput
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SerialInput));
|
||||
this.CMB_serialport = new System.Windows.Forms.ComboBox();
|
||||
this.BUT_connect = new ArdupilotMega.MyButton();
|
||||
this.CMB_baudrate = new System.Windows.Forms.ComboBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.LBL_location = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// CMB_serialport
|
||||
//
|
||||
this.CMB_serialport.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.CMB_serialport.FormattingEnabled = true;
|
||||
this.CMB_serialport.Location = new System.Drawing.Point(13, 13);
|
||||
this.CMB_serialport.Name = "CMB_serialport";
|
||||
this.CMB_serialport.Size = new System.Drawing.Size(121, 21);
|
||||
this.CMB_serialport.TabIndex = 0;
|
||||
//
|
||||
// BUT_connect
|
||||
//
|
||||
this.BUT_connect.Location = new System.Drawing.Point(279, 12);
|
||||
this.BUT_connect.Name = "BUT_connect";
|
||||
this.BUT_connect.Size = new System.Drawing.Size(75, 23);
|
||||
this.BUT_connect.TabIndex = 1;
|
||||
this.BUT_connect.Text = "Connect";
|
||||
this.BUT_connect.UseVisualStyleBackColor = true;
|
||||
this.BUT_connect.Click += new System.EventHandler(this.BUT_connect_Click);
|
||||
//
|
||||
// CMB_baudrate
|
||||
//
|
||||
this.CMB_baudrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.CMB_baudrate.FormattingEnabled = true;
|
||||
this.CMB_baudrate.Items.AddRange(new object[] {
|
||||
"4800",
|
||||
"9600",
|
||||
"14400",
|
||||
"19200",
|
||||
"28800",
|
||||
"38400",
|
||||
"57600",
|
||||
"115200"});
|
||||
this.CMB_baudrate.Location = new System.Drawing.Point(140, 12);
|
||||
this.CMB_baudrate.Name = "CMB_baudrate";
|
||||
this.CMB_baudrate.Size = new System.Drawing.Size(121, 21);
|
||||
this.CMB_baudrate.TabIndex = 2;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(90, 47);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(187, 13);
|
||||
this.label1.TabIndex = 3;
|
||||
this.label1.Text = "Pick the Nmea gps port and baud rate\r\n";
|
||||
//
|
||||
// LBL_location
|
||||
//
|
||||
this.LBL_location.AutoSize = true;
|
||||
this.LBL_location.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.LBL_location.Location = new System.Drawing.Point(9, 78);
|
||||
this.LBL_location.Name = "LBL_location";
|
||||
this.LBL_location.Size = new System.Drawing.Size(50, 24);
|
||||
this.LBL_location.TabIndex = 4;
|
||||
this.LBL_location.Text = "0,0,0";
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Enabled = false;
|
||||
this.textBox1.Location = new System.Drawing.Point(19, 126);
|
||||
this.textBox1.Multiline = true;
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(335, 133);
|
||||
this.textBox1.TabIndex = 5;
|
||||
this.textBox1.Text = resources.GetString("textBox1.Text");
|
||||
//
|
||||
// SerialInput
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(369, 300);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.LBL_location);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.CMB_baudrate);
|
||||
this.Controls.Add(this.BUT_connect);
|
||||
this.Controls.Add(this.CMB_serialport);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "SerialInput";
|
||||
this.Text = "Follow Me";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SerialOutput_FormClosing);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ComboBox CMB_serialport;
|
||||
private MyButton BUT_connect;
|
||||
private System.Windows.Forms.ComboBox CMB_baudrate;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label LBL_location;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
}
|
||||
}
|
224
Tools/ArdupilotMegaPlanner/SerialInput.cs
Normal file
224
Tools/ArdupilotMegaPlanner/SerialInput.cs
Normal file
@ -0,0 +1,224 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.IO.Ports;
|
||||
|
||||
namespace ArdupilotMega
|
||||
{
|
||||
public partial class SerialInput : Form
|
||||
{
|
||||
System.Threading.Thread t12;
|
||||
static bool threadrun = false;
|
||||
static internal SerialPort comPort = new SerialPort();
|
||||
static internal PointLatLngAlt lastgotolocation = new PointLatLngAlt(0, 0, 0, "Goto last");
|
||||
static internal PointLatLngAlt gotolocation = new PointLatLngAlt(0, 0, 0, "Goto");
|
||||
static internal int intalt = 100;
|
||||
|
||||
public SerialInput()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
CMB_serialport.DataSource = SerialPort.GetPortNames();
|
||||
|
||||
if (threadrun)
|
||||
{
|
||||
BUT_connect.Text = "Stop";
|
||||
}
|
||||
}
|
||||
|
||||
private void BUT_connect_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (comPort.IsOpen)
|
||||
{
|
||||
threadrun = false;
|
||||
comPort.Close();
|
||||
BUT_connect.Text = "Connect";
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
comPort.PortName = CMB_serialport.Text;
|
||||
}
|
||||
catch { MessageBox.Show("Invalid PortName"); return; }
|
||||
try {
|
||||
comPort.BaudRate = int.Parse(CMB_baudrate.Text);
|
||||
} catch {MessageBox.Show("Invalid BaudRate"); return;}
|
||||
try {
|
||||
comPort.Open();
|
||||
} catch {MessageBox.Show("Error Connecting\nif using com0com please rename the ports to COM??"); return;}
|
||||
|
||||
|
||||
string alt = "100";
|
||||
|
||||
if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2)
|
||||
{
|
||||
alt = (10 * MainV2.cs.multiplierdist).ToString("0");
|
||||
}
|
||||
else
|
||||
{
|
||||
alt = (100 * MainV2.cs.multiplierdist).ToString("0");
|
||||
}
|
||||
if (DialogResult.Cancel == Common.InputBox("Enter Alt", "Enter Alt", ref alt))
|
||||
return;
|
||||
|
||||
intalt = (int)(100 * MainV2.cs.multiplierdist);
|
||||
if (!int.TryParse(alt, out intalt))
|
||||
{
|
||||
MessageBox.Show("Bad Alt");
|
||||
return;
|
||||
}
|
||||
|
||||
t12 = new System.Threading.Thread(new System.Threading.ThreadStart(mainloop))
|
||||
{
|
||||
IsBackground = true,
|
||||
Name = "Nmea Input"
|
||||
};
|
||||
t12.Start();
|
||||
|
||||
BUT_connect.Text = "Stop";
|
||||
}
|
||||
}
|
||||
|
||||
void mainloop()
|
||||
{
|
||||
|
||||
|
||||
threadrun = true;
|
||||
int counter = 0;
|
||||
while (threadrun)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = comPort.ReadLine();
|
||||
|
||||
|
||||
//string line = string.Format("$GP{0},{1:HHmmss},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},", "GGA", DateTime.Now.ToUniversalTime(), Math.Abs(lat * 100), MainV2.cs.lat < 0 ? "S" : "N", Math.Abs(lng * 100), MainV2.cs.lng < 0 ? "W" : "E", MainV2.cs.gpsstatus, MainV2.cs.satcount, MainV2.cs.gpshdop, MainV2.cs.alt, "M", 0, "M", "");
|
||||
if (line.StartsWith("$GPGGA")) //
|
||||
{
|
||||
int c1 = line.IndexOf(',',0)+ 1;
|
||||
int c2 = line.IndexOf(',', c1) + 1;
|
||||
int c3 = line.IndexOf(',', c2) + 1;
|
||||
int c4 = line.IndexOf(',', c3 ) + 1;
|
||||
int c5 = line.IndexOf(',', c4 ) + 1;
|
||||
int c6 = line.IndexOf(',', c5 ) + 1;
|
||||
int c7 = line.IndexOf(',', c6 ) + 1;
|
||||
int c8 = line.IndexOf(',', c7 ) + 1;
|
||||
int c9 = line.IndexOf(',', c8 ) + 1;
|
||||
int c10 = line.IndexOf(',', c9 ) + 1;
|
||||
int c11 = line.IndexOf(',', c10 ) + 1;
|
||||
int c12 = line.IndexOf(',', c11) + 1;
|
||||
|
||||
gotolocation.Lat = double.Parse(line.Substring(c2, c3 - c2 - 1)) / 100.0;
|
||||
|
||||
gotolocation.Lat = (int)gotolocation.Lat + ((gotolocation.Lat - (int)gotolocation.Lat) / 0.60);
|
||||
|
||||
if (line.Substring(c3, c4 - c3 - 1) == "S")
|
||||
gotolocation.Lat *= -1;
|
||||
|
||||
gotolocation.Lng = double.Parse(line.Substring(c4, c5 - c4 - 1)) / 100.0;
|
||||
|
||||
gotolocation.Lng = (int)gotolocation.Lng + ((gotolocation.Lng - (int)gotolocation.Lng) / 0.60);
|
||||
|
||||
if (line.Substring(c5, c6 - c5 - 1) == "W")
|
||||
gotolocation.Lng *= -1;
|
||||
|
||||
gotolocation.Alt = intalt; // double.Parse(line.Substring(c9, c10 - c9 - 1)) +
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (counter % 10 == 0 && gotolocation.Lat != 0 && gotolocation.Lng != 0 && gotolocation.Alt != 0) // 200 * 10 = 2 sec /// lastgotolocation != gotolocation &&
|
||||
{
|
||||
Console.WriteLine("Sending follow wp " +DateTime.Now.ToString("h:MM:ss")+" "+ gotolocation.Lat + " " + gotolocation.Lng + " " +gotolocation.Alt);
|
||||
lastgotolocation = new PointLatLngAlt(gotolocation);
|
||||
|
||||
Locationwp gotohere = new Locationwp();
|
||||
|
||||
gotohere.id = (byte)MAVLink.MAV_CMD.WAYPOINT;
|
||||
gotohere.alt = (float)(gotolocation.Alt);
|
||||
gotohere.lat = (float)(gotolocation.Lat);
|
||||
gotohere.lng = (float)(gotolocation.Lng);
|
||||
|
||||
try
|
||||
{
|
||||
updateLocationLabel(gotohere);
|
||||
}
|
||||
catch { }
|
||||
|
||||
if (MainV2.comPort.BaseStream.IsOpen && MainV2.givecomport == false)
|
||||
{
|
||||
try
|
||||
{
|
||||
MainV2.givecomport = true;
|
||||
|
||||
MainV2.comPort.setWP(gotohere, 0, MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL_RELATIVE_ALT, (byte)2);
|
||||
|
||||
MainV2.givecomport = false;
|
||||
}
|
||||
catch { MainV2.givecomport = false; }
|
||||
}
|
||||
}
|
||||
|
||||
System.Threading.Thread.Sleep(200);
|
||||
counter++;
|
||||
}
|
||||
catch { System.Threading.Thread.Sleep(2000); }
|
||||
}
|
||||
}
|
||||
|
||||
private void updateLocationLabel(Locationwp plla)
|
||||
{
|
||||
this.BeginInvoke((MethodInvoker)delegate
|
||||
{
|
||||
LBL_location.Text = gotolocation.Lat + " " + gotolocation.Lng + " " + gotolocation.Alt;
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
private void SerialOutput_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
// Calculates the checksum for a sentence
|
||||
string GetChecksum(string sentence)
|
||||
{
|
||||
// Loop through all chars to get a checksum
|
||||
int Checksum = 0;
|
||||
foreach (char Character in sentence.ToCharArray())
|
||||
{
|
||||
switch (Character)
|
||||
{
|
||||
case '$':
|
||||
// Ignore the dollar sign
|
||||
break;
|
||||
case '*':
|
||||
// Stop processing before the asterisk
|
||||
continue;
|
||||
default:
|
||||
// Is this the first value for the checksum?
|
||||
if (Checksum == 0)
|
||||
{
|
||||
// Yes. Set the checksum to the value
|
||||
Checksum = Convert.ToByte(Character);
|
||||
}
|
||||
else
|
||||
{
|
||||
// No. XOR the checksum with this character's value
|
||||
Checksum = Checksum ^ Convert.ToByte(Character);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Return the checksum formatted as a two-character hexadecimal
|
||||
return Checksum.ToString("X2");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
208
Tools/ArdupilotMegaPlanner/SerialInput.resx
Normal file
208
Tools/ArdupilotMegaPlanner/SerialInput.resx
Normal file
@ -0,0 +1,208 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="textBox1.Text" xml:space="preserve">
|
||||
<value>What this does.
|
||||
1. gets the current gps coords from a nmea gps.
|
||||
2. sends a guided mode WP to the AP every 2 seconds.
|
||||
|
||||
How to use it
|
||||
1. connect to ap.
|
||||
2. take off, test guided mode is working.
|
||||
3. open this and pick your comport, and baud rate for your nmea gps.
|
||||
4. it should now be following you.</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA
|
||||
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOxkjAtnoOAKpJ4vyiK
|
||||
c+8nh3D/J4Zv/yeHcP8oi3PvKpJ4vy6fg4AzsZIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjGo2AyspPfLZ+D/yiQ
|
||||
d/8hlXj/G6F9/xeqg/8XqYL/GKqD/xuhfv8ilnn/KZB3/y2fhP8yspPfN8ajYAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvRrDA1vpzfL6uN/yel
|
||||
hP8XvJD/DMyY/wfQl/8FzJP/A8qS/wPJkf8EypL/BsyU/wnRmP8PzZn/Gb2R/yemhP8tqoz/Mb2a3zbQ
|
||||
qkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAA4y6ZgMbWV/yin
|
||||
iP8WwZP/Btqf/wDPlf8AyI7/A8aP/yfNnv9T2LP/UNax/03XsP8506b/G8ya/wHKkf8F0Zf/CNuf/xLB
|
||||
kv8fpYT/J7KQ/y7IomAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAANcajny+w
|
||||
kf8hqoj/CNSd/wDRlf8Axor/Hcyd/3Lhwf+p7Nj/o+vV/57m0/+X5dD/k+TN/4/jzf+K5Mz/fuHH/0PW
|
||||
rf8HzJT/ANCT/wDRlv8OpX//HayI/yrFn58AAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAADDC
|
||||
nmAtro7/H62J/wPWmv8Ay47/AMaO/3XhxP+e6tT/mObP/5Pjy/+Q4sr/jODJ/4ffx/+C3MT/f9vC/3nb
|
||||
wf9y2r7/adq7/2DauP8ZzZv/Fdae/8T/9/9WxKj/HKuI/y7IomAAAAAAAAAAAAAAAAD///8AAAAAAAAA
|
||||
AAAiuZMwKKyM/x6ohf8C1Zr/AMmL/wHGjv+49OL///////////9+3ML/f9zD/4Dcwv9+28L/e9rA/3bZ
|
||||
vv9w1rr/Z9S4/17Rs/9Qz63/Qcyn/3LewP////////////n///8MpH7/JbKP/zXQqUAAAAAAAAAAAP//
|
||||
/wAAAAAAAAAAABymhN8dnn//BNGa/wDKjP8AxY3/sfHf/////////////////2nXt/9w1rv/c9e8/3TX
|
||||
vP9x17z/a9W5/2TTtf9Y0K//SMyp/zXFoP9i07X/////////////////f/LR/wDQlf8epYT/Mb2a3wAA
|
||||
AAAAAAAA////AAAAAAADlnJgFZR1/wq4iv8AzpH/AMCD/4rmzf//////////////////////WdGv/2PU
|
||||
tf9p1rf/atS4/2nUtv9i0rT/Vc+u/0fKpv8zxZz/Ws+w//////////////////////8GyJL/ANCS/xLB
|
||||
kv8tq4z/OMajYAAAAAD///8AAAAAAACHZt8NkW//ANKV/wDChP9i27r//////////////////////9Dx
|
||||
6P9MzKn/Vc+v/17Rsv9g0rP/XNCx/1XNrv9Fyaf/McSd/1fPr///////////////////////QM2m/ynK
|
||||
oP8JzJX/C9yh/ymmhf80spPfAAAAAP///wAAcUwwAHtc/wCrfP8AyIv/AMKK////////////////////
|
||||
/////////////5Dgyv9Gyqb/TMyq/07Nq/9MzKn/Qcmj/y/Fnf9Wzq3//////////////////////57k
|
||||
0v8av5T/Lceg/yzOo/8M05v/Hr6T/zCghf80spIw////AABoRYAAclT/AL2H/wDBhf9R1rL/////////
|
||||
////////4vfw//////////////////H8+P9KzKn/Ocah/zTFnv8qwpj/Us2t////////////////////
|
||||
////////DLqM/yDBlv8wxp//OM6m/xPPm/8Xz53/LZF5/y+fg4////8AAGNAvwB7Wf8Aw4j/ALyC/4bj
|
||||
yP+g5tL/g93E/2HSsv9Pzqz/Us6s//////////////////////9Yzq//Gr2S/0jLp///////////////
|
||||
/////////////yrDm/8SvI//JMGY/zDHn/81zKT/Is2e/xTUnf8nl3v/LJJ5v////wAAXz3vAIlg/wDA
|
||||
hf8AuoD/quzZ/5Hjyv9628D/ada2/1jRsP9Jy6f/a9a4//////////////////////+Y4s7/////////
|
||||
//////////////////+c4tD/AbaH/xW8kf8jwZj/LcWd/y/Jn/8kzJ3/E9Ca/yGjgf8ri3Tv////AABd
|
||||
PP8Ak2b/AL6D/w/Ekv+m6tf/j+HJ/3vawP9p1rf/W9Gx/0rNqf85yJ//Nsaf////////////////////
|
||||
/////////////////////////////wCwe/8AtoT/ELqP/xu+k/8jwZj/KMeb/yHKm/8QzZf/HqyG/ymI
|
||||
cf////8AAF07/wCSZP8AvYL/GMWU/6Dn1P+K38f/ddi+/27Wuf+E3MX/leHN/6fm1f+l5tX/neLQ////
|
||||
////////////////////////////////////////j9/J/27Vuv9Tzq7/JsKY/xa/kv8aw5T/FcaW/wvL
|
||||
lf8aqoT/J4dw/////wAAXTv/AJFk/wC9gP8GwY3/mObQ/5rkz/+26dv/y/Hl/8Dt3/+06tz/pebV/5bg
|
||||
zP+g5NL//////////////v///f7+//7+/v//////7fn2////////////tOnb/6Ll0v+v6Nj/jeDI/zXK
|
||||
o/8IxJD/BMqS/xaqgv8lh2//////AABeO+8AgVf/AL1//wDBif/R9uv/1PPq/8Tv5P+36t3/rujY/6Lk
|
||||
0v+U4cv/jt7J//j8+///////+/38//f8+//2+/r/+Pz7//3+/v/m9/P/9Pv6//D6+P9/28L/jd7J/5jj
|
||||
z/+h5dL/qOvX/4Hmyf8f1J//E596/yOJcO////8AAGA8vwB3U/8p06P/hufM/8Ty5f/D7+T/s+vb/6bm
|
||||
1P+c4c//j9/K/4vcyP/t+fb///7///j8/P/0+/r/8vr5//P7+f/1+/r/+/39///////i9fL/ZNO1/3HW
|
||||
vP992sH/htzG/4vhyv+S5dD/mO7W/6X74v80noT/Io90v////wAAZkCAAHla/33ny/945cb/nunV/7Xr
|
||||
3v+l5tT/luDN/4ndxv992cL/1vLq//v9/P/1+/n/8vv4//L69//z+/j/9Pv5/7Xo2//x+vn/////////
|
||||
//+y59n/aNS3/3LWvP932r//fNzD/4Ljyf+J7ND/l/bd/yORdf8knH6A////AABuRzAAdlT/Xc6x/23o
|
||||
xv9s4MH/qurZ/5jiz/+I3cb/edjA/8ju5f/3/Pv/8vv4//H6+P/y+/j/6/f0/7np3v/7/fz//v7+/6fk
|
||||
1f+56tz///////////9h0bT/aNW4/23Wu/9v3L//dOLG/37w0f9m1rn/Hpt8/ymujTD///8AAAAAAACD
|
||||
X98po4X/Z+7K/1vgvP+A4sf/jOHK/3rZwv+r59f/9Pv6/+/69//v+vf/8vr4/9fy6/9n0rf/VM6t/6Di
|
||||
0v/N7+f/adO4/1PMrf9t1Lr/i9zI/1/Rs/9h0rX/ZNe4/2bbvf9s5sb/ePfV/z2ylf8lrozfAAAAAP//
|
||||
/wAAAAAAAJNsYAWQbf9U1rP/Vee//0rYsf993sb/pebV//P7+v/s+Pb/6/f1/+749v+s5tj/Vc2u/1jP
|
||||
r/9ZzrD/btW5/1bOr/9Wza//Vs6v/1fOr/9Z0LD/WdCy/1vTtP9d1rX/Xt+8/2btyP9k4L//IaaF/y7D
|
||||
nmAAAAAA////AAAAAAAAAAAAD6J9zyCjgv9S68L/P9+0/2Pevv/5////7/v6/+v59//j9/L/gtvF/1PN
|
||||
r/9Wz7D/Wc+x/1nQsf9Zz7H/WM6w/1fPsP9UzrD/VM+w/1TPrv9U0a//U9Oy/1Tatv9Z5sD/Y/LL/zSx
|
||||
lP8qupbPAAAAAAAAAAD///8AAAAAAAAAAAAYto4wGaeE/y23lP8+5rn/6/////j////w//3/ve/i/2bV
|
||||
uP9Tzq7/Vc+v/1jPsP9Z0LL/WM+w/1fOsf9Wz7D/Us2w/1HOrf9Qzq3/T9Cu/0zSr/9M2LP/TeC5/1bt
|
||||
xP9HxaX/KLKQ/zTPqDAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAkvpdgG6iF/y++m//e/////P///3rl
|
||||
yf9G0K3/VdKy/1bPsf9Wz7H/Vs6w/1bPsP9Sza//Ucyu/0/Nrf9NzKz/S82s/0fOrP9G0a7/QdWv/0Le
|
||||
tP9I6L7/Q8Ok/yitjP8yyKJgAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAmwJlgG6iF/yK3
|
||||
kP8k3q7/H9el/x7Pn/8tzKT/Q9Cs/1HQsP9Q0K7/TM6u/0nMrf9Hzaz/RMyp/0LNqf8+zqn/ONGo/zTV
|
||||
qf833rD/O+S4/zvCof8orIv/MMSfYAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAkvpdgG6iE/xukgv8gy53/HNql/xzRn/8czJz/HcmZ/yXJnP8qyp7/Lcqg/yzLn/8nypz/JMqc/yTO
|
||||
n/8l1KT/KN2r/y3Tpv8nq4n/JaqJ/yzAm2AAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAato8wFKN/zxCScv8RnHn/DbqM/wjIlP8GyZT/BsaS/wbFkf8GxZH/B8WR/wfH
|
||||
k/8IypX/DMmV/xG3jP8WoX3/Fph2/xqkgs8ft5EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVvYACGZM8Aelr/AHlZ/wCFX/8AiWL/AJlr/wCb
|
||||
bP8AlGf/AI5k/wB/W/8AeFj/AHtb/wCHZd8ClXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwSzAAaESAAGI/vwBf
|
||||
Pd8AXTz/AF08/wBdPP8AXz3fAGJAvwBoRIAAcUswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
|
||||
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
|
||||
/wD///8A////AP///wD///8A/+AD//+AAP/+AAA//AAAH/gAAA/wAAAH4AAAA+AAAAPAAAABwAAAAYAA
|
||||
AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAwAAAAcAAAAHgAAAD4AAAA/AA
|
||||
AAf4AAAP/AAAH/4AAD//gAD//+AD//////8=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
13
Tools/ArdupilotMegaPlanner/temp.Designer.cs
generated
13
Tools/ArdupilotMegaPlanner/temp.Designer.cs
generated
@ -45,6 +45,7 @@
|
||||
this.BUT_clearcustommaps = new ArdupilotMega.MyButton();
|
||||
this.BUT_lang_edit = new ArdupilotMega.MyButton();
|
||||
this.BUT_georefimage = new ArdupilotMega.MyButton();
|
||||
this.BUT_follow_me = new ArdupilotMega.MyButton();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// button1
|
||||
@ -212,11 +213,22 @@
|
||||
this.BUT_georefimage.Text = "Geo ref images";
|
||||
this.BUT_georefimage.Click += new System.EventHandler(this.BUT_georefimage_Click);
|
||||
//
|
||||
// BUT_follow_me
|
||||
//
|
||||
this.BUT_follow_me.Location = new System.Drawing.Point(525, 164);
|
||||
this.BUT_follow_me.Name = "BUT_follow_me";
|
||||
this.BUT_follow_me.Size = new System.Drawing.Size(75, 23);
|
||||
this.BUT_follow_me.TabIndex = 17;
|
||||
this.BUT_follow_me.Text = "Follow Me";
|
||||
this.BUT_follow_me.UseVisualStyleBackColor = true;
|
||||
this.BUT_follow_me.Click += new System.EventHandler(this.BUT_follow_me_Click);
|
||||
//
|
||||
// temp
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(731, 281);
|
||||
this.Controls.Add(this.BUT_follow_me);
|
||||
this.Controls.Add(this.BUT_georefimage);
|
||||
this.Controls.Add(this.BUT_lang_edit);
|
||||
this.Controls.Add(this.BUT_clearcustommaps);
|
||||
@ -261,6 +273,7 @@
|
||||
private MyButton BUT_clearcustommaps;
|
||||
private MyButton BUT_lang_edit;
|
||||
private MyButton BUT_georefimage;
|
||||
private MyButton BUT_follow_me;
|
||||
//private SharpVectors.Renderers.Forms.SvgPictureBox svgPictureBox1;
|
||||
|
||||
}
|
||||
|
@ -871,5 +871,12 @@ namespace ArdupilotMega
|
||||
{
|
||||
new georefimage().Show();
|
||||
}
|
||||
|
||||
private void BUT_follow_me_Click(object sender, EventArgs e)
|
||||
{
|
||||
SerialInput si = new SerialInput();
|
||||
MainV2.fixtheme((Form)si);
|
||||
si.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user