From dc42103fa1a86b4eae84af6e802106f0ff57f7aa Mon Sep 17 00:00:00 2001 From: Michael Oborne Date: Tue, 11 Oct 2011 08:11:06 +0800 Subject: [PATCH] APM Planner 1.0.81 add elevons to joystick control. fixup possible autodetect problem. (was occuring when an axis was not centered on detect start) add save mode confirmation --- .../ArdupilotMegaPlanner/ArdupilotMega.csproj | 22 ++-- .../ArdupilotMega.csproj.user | 3 + Tools/ArdupilotMegaPlanner/Joystick.cs | 39 +++++- .../JoystickSetup.Designer.cs | 10 ++ Tools/ArdupilotMegaPlanner/JoystickSetup.cs | 22 +++- Tools/ArdupilotMegaPlanner/JoystickSetup.resx | 113 +++++++++++------- .../Properties/AssemblyInfo.cs | 2 +- Tools/ArdupilotMegaPlanner/Setup/Setup.cs | 1 + .../Release/ArdupilotMegaPlanner.application | 2 +- .../bin/Release/JoystickSetup.resx | 113 +++++++++++------- 10 files changed, 223 insertions(+), 104 deletions(-) diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj index c6f14bec91..41699710c2 100644 --- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj +++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj @@ -117,25 +117,25 @@ - ..\..\..\..\..\Desktop\DIYDrones&avr\myquad\greatmaps_e1bb830a18a3\Demo.WindowsForms\bin\Debug\BSE.Windows.Forms.dll + ..\..\..\..\..\Desktop\DIYDrones\myquad\greatmaps_e1bb830a18a3\Demo.WindowsForms\bin\Debug\BSE.Windows.Forms.dll - ..\..\..\..\..\Desktop\DIYDrones&avr\kml-library\KmlTestbed\bin\Release\Core.dll + ..\..\..\..\..\Desktop\DIYDrones\kml-library\KmlTestbed\bin\Release\Core.dll - ..\..\..\..\..\Desktop\DIYDrones&avr\myquad\DirectShowLib-2005.dll + ..\..\..\..\..\Desktop\DIYDrones\myquad\DirectShowLib-2005.dll - ..\..\..\..\..\Desktop\DIYDrones&avr\myquad\greatmaps_e1bb830a18a3\GMap.NET.WindowsForms\bin\Debug\GMap.NET.Core.dll + ..\..\..\..\..\Desktop\DIYDrones\myquad\greatmaps_e1bb830a18a3\GMap.NET.WindowsForms\bin\Debug\GMap.NET.Core.dll - ..\..\..\..\..\Desktop\DIYDrones&avr\myquad\greatmaps_e1bb830a18a3\GMap.NET.WindowsForms\bin\Debug\GMap.NET.WindowsForms.dll + ..\..\..\..\..\Desktop\DIYDrones\myquad\greatmaps_e1bb830a18a3\GMap.NET.WindowsForms\bin\Debug\GMap.NET.WindowsForms.dll - ..\..\..\..\..\Desktop\DIYDrones&avr\SrcSamples\bin\ICSharpCode.SharpZipLib.dll + ..\..\..\..\..\Desktop\DIYDrones\SrcSamples\bin\ICSharpCode.SharpZipLib.dll - ..\..\..\..\..\Desktop\DIYDrones&avr\kml-library\KmlTestbed\bin\Release\KMLib.dll + ..\..\..\..\..\Desktop\DIYDrones\kml-library\KmlTestbed\bin\Release\KMLib.dll False @@ -149,21 +149,21 @@ False - ..\..\..\..\..\Desktop\DIYDrones&avr\opentk\trunk\Binaries\OpenTK\Release\OpenTK.dll + ..\..\..\..\..\Desktop\DIYDrones\opentk\trunk\Binaries\OpenTK\Release\OpenTK.dll False - ..\..\..\..\..\Desktop\DIYDrones&avr\opentk\trunk\Binaries\OpenTK\Release\OpenTK.GLControl.dll + ..\..\..\..\..\Desktop\DIYDrones\opentk\trunk\Binaries\OpenTK\Release\OpenTK.GLControl.dll False - ..\..\..\..\..\Desktop\DIYDrones&avr\myquad\sharpkml\SharpKml\bin\Release\SharpKml.dll + ..\..\..\..\..\Desktop\DIYDrones\myquad\sharpkml\SharpKml\bin\Release\SharpKml.dll - ..\..\..\..\..\Desktop\DIYDrones&avr\myquad\greatmaps_e1bb830a18a3\Demo.WindowsForms\bin\Debug\x86\System.Data.SQLite.DLL + ..\..\..\..\..\Desktop\DIYDrones\myquad\greatmaps_e1bb830a18a3\Demo.WindowsForms\bin\Debug\x86\System.Data.SQLite.DLL diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj.user b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj.user index 0f2d100239..08b4166df5 100644 --- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj.user +++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj.user @@ -6,5 +6,8 @@ en-US false + publish/ + + \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/Joystick.cs b/Tools/ArdupilotMegaPlanner/Joystick.cs index b456a9c338..d0bbc9eed8 100644 --- a/Tools/ArdupilotMegaPlanner/Joystick.cs +++ b/Tools/ArdupilotMegaPlanner/Joystick.cs @@ -15,6 +15,7 @@ namespace ArdupilotMega public bool enabled = false; byte[] buttonpressed = new byte[128]; public string name; + public bool elevons = false; public static Joystick self; @@ -114,6 +115,8 @@ namespace ArdupilotMega joystick.Acquire(); + System.Windows.Forms.MessageBox.Show("Please ensure you have calibrated your joystick in Windows first"); + joystick.Poll(); JoystickState obj = joystick.CurrentJoystickState; @@ -145,7 +148,7 @@ namespace ArdupilotMega { //Console.WriteLine("Name: " + property.Name + ", Value: " + property.GetValue(obj, null)); - //Console.WriteLine("test name {0} old {1} new {2} ", property.Name, values[property.Name], int.Parse(property.GetValue(nextstate, null).ToString())); + Console.WriteLine("test name {0} old {1} new {2} ", property.Name, values[property.Name], int.Parse(property.GetValue(nextstate, null).ToString())); Console.WriteLine("{0} {1}", (int)values[property.Name], (int.Parse(property.GetValue(nextstate, null).ToString()) + threshold)); if ((int)values[property.Name] > (int.Parse(property.GetValue(nextstate, null).ToString()) + threshold) || (int)values[property.Name] < (int.Parse(property.GetValue(nextstate, null).ToString()) - threshold)) @@ -263,6 +266,21 @@ namespace ArdupilotMega JoyButtons[buttonid].buttonno = newid; } + int BOOL_TO_SIGN(bool input) + { + if (input == true) + { + return -1; + } + else + { + return 1; + } + } + + /// + /// Updates the rcoverride values and controls the mode changes + /// void mainloop() { while (enabled) @@ -276,8 +294,21 @@ namespace ArdupilotMega int[] slider = state.GetSlider(); - MainV2.cs.rcoverridech1 = pickchannel(1, JoyChannels[1].axis, JoyChannels[1].reverse, JoyChannels[1].expo);//(ushort)(((int)state.Rz / 65.535) + 1000); - MainV2.cs.rcoverridech2 = pickchannel(2, JoyChannels[2].axis, JoyChannels[2].reverse, JoyChannels[2].expo);//(ushort)(((int)state.Y / 65.535) + 1000); + if (elevons) + { +//g.channel_roll.set_pwm(BOOL_TO_SIGN(g.reverse_elevons) * (BOOL_TO_SIGN(g.reverse_ch2_elevon) * int(ch2_temp - elevon2_trim) - BOOL_TO_SIGN(g.reverse_ch1_elevon) * int(ch1_temp - elevon1_trim)) / 2 + 1500); +//g.channel_pitch.set_pwm( (BOOL_TO_SIGN(g.reverse_ch2_elevon) * int(ch2_temp - elevon2_trim) + BOOL_TO_SIGN(g.reverse_ch1_elevon) * int(ch1_temp - elevon1_trim)) / 2 + 1500); + ushort roll = pickchannel(1, JoyChannels[1].axis, false, JoyChannels[1].expo); + ushort pitch = pickchannel(2, JoyChannels[2].axis, false, JoyChannels[2].expo); + + MainV2.cs.rcoverridech1 = (ushort)(BOOL_TO_SIGN(JoyChannels[1].reverse) * ((int)(pitch - 1500) - (int)(roll - 1500)) / 2 + 1500); + MainV2.cs.rcoverridech2 = (ushort)(BOOL_TO_SIGN(JoyChannels[2].reverse) * ((int)(pitch - 1500) + (int)(roll - 1500)) / 2 + 1500); + } + else + { + MainV2.cs.rcoverridech1 = pickchannel(1, JoyChannels[1].axis, JoyChannels[1].reverse, JoyChannels[1].expo);//(ushort)(((int)state.Rz / 65.535) + 1000); + MainV2.cs.rcoverridech2 = pickchannel(2, JoyChannels[2].axis, JoyChannels[2].reverse, JoyChannels[2].expo);//(ushort)(((int)state.Y / 65.535) + 1000); + } MainV2.cs.rcoverridech3 = pickchannel(3, JoyChannels[3].axis, JoyChannels[3].reverse, JoyChannels[3].expo);//(ushort)(1000 - ((int)slider[0] / 65.535) + 1000); MainV2.cs.rcoverridech4 = pickchannel(4, JoyChannels[4].axis, JoyChannels[4].reverse, JoyChannels[4].expo);//(ushort)(((int)state.X / 65.535) + 1000); @@ -311,7 +342,7 @@ namespace ArdupilotMega //Console.WriteLine("{0} {1} {2} {3}", MainV2.cs.rcoverridech1, MainV2.cs.rcoverridech2, MainV2.cs.rcoverridech3, MainV2.cs.rcoverridech4); } - catch { Console.WriteLine("Joystick thread error"); } // so we cant fall out + catch (Exception ex) { Console.WriteLine("Joystick thread error "+ex.ToString()); } // so we cant fall out } } diff --git a/Tools/ArdupilotMegaPlanner/JoystickSetup.Designer.cs b/Tools/ArdupilotMegaPlanner/JoystickSetup.Designer.cs index c9a9268325..015970a315 100644 --- a/Tools/ArdupilotMegaPlanner/JoystickSetup.Designer.cs +++ b/Tools/ArdupilotMegaPlanner/JoystickSetup.Designer.cs @@ -63,6 +63,7 @@ this.progressBar3 = new ArdupilotMega.HorizontalProgressBar(); this.progressBar2 = new ArdupilotMega.HorizontalProgressBar(); this.progressBar1 = new ArdupilotMega.HorizontalProgressBar(); + this.CHK_elevons = new System.Windows.Forms.CheckBox(); this.SuspendLayout(); // // CMB_joysticks @@ -309,10 +310,18 @@ this.progressBar1.Name = "progressBar1"; this.progressBar1.Value = 800; // + // CHK_elevons + // + resources.ApplyResources(this.CHK_elevons, "CHK_elevons"); + this.CHK_elevons.Name = "CHK_elevons"; + this.CHK_elevons.UseVisualStyleBackColor = true; + this.CHK_elevons.CheckedChanged += new System.EventHandler(this.CHK_elevons_CheckedChanged); + // // JoystickSetup // resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.CHK_elevons); this.Controls.Add(this.BUT_detch4); this.Controls.Add(this.BUT_detch3); this.Controls.Add(this.BUT_detch2); @@ -388,5 +397,6 @@ private MyButton BUT_detch2; private MyButton BUT_detch3; private MyButton BUT_detch4; + private System.Windows.Forms.CheckBox CHK_elevons; } } \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/JoystickSetup.cs b/Tools/ArdupilotMegaPlanner/JoystickSetup.cs index 6d4b70f113..5f6658f326 100644 --- a/Tools/ArdupilotMegaPlanner/JoystickSetup.cs +++ b/Tools/ArdupilotMegaPlanner/JoystickSetup.cs @@ -63,6 +63,8 @@ namespace ArdupilotMega expo_ch2.Text = MainV2.config["expo_ch2"].ToString(); expo_ch3.Text = MainV2.config["expo_ch3"].ToString(); expo_ch4.Text = MainV2.config["expo_ch4"].ToString(); + + CHK_elevons.Checked = bool.Parse(MainV2.config["joy_elevons"].ToString()); } catch { } // IF 1 DOESNT EXIST NONE WILL @@ -103,6 +105,8 @@ namespace ArdupilotMega joy.setChannel(3, (Joystick.joystickaxis)Enum.Parse(typeof(Joystick.joystickaxis), CMB_CH3.Text), revCH3.Checked, int.Parse(expo_ch3.Text)); joy.setChannel(4, (Joystick.joystickaxis)Enum.Parse(typeof(Joystick.joystickaxis), CMB_CH4.Text), revCH4.Checked, int.Parse(expo_ch4.Text)); + joy.elevons = CHK_elevons.Checked; + for (int f = 0; f < noButtons; f++) { string name = (f + 1).ToString(); @@ -178,6 +182,8 @@ namespace ArdupilotMega MainV2.config["expo_ch3"] = expo_ch3.Text; MainV2.config["expo_ch4"] = expo_ch4.Text; + MainV2.config["joy_elevons"] = CHK_elevons.Checked; + for (int f = 0; f < noButtons; f++) { string name = (f + 1).ToString(); @@ -202,6 +208,8 @@ namespace ArdupilotMega joy.setChannel(3, (Joystick.joystickaxis)Enum.Parse(typeof(Joystick.joystickaxis), CMB_CH3.Text), revCH3.Checked, int.Parse(expo_ch3.Text)); joy.setChannel(4, (Joystick.joystickaxis)Enum.Parse(typeof(Joystick.joystickaxis), CMB_CH4.Text), revCH4.Checked, int.Parse(expo_ch4.Text)); + joy.elevons = CHK_elevons.Checked; + joy.AcquireJoystick(CMB_joysticks.Text); noButtons = joy.getNumButtons(); @@ -222,6 +230,8 @@ namespace ArdupilotMega CMB_joysticks.SelectedIndex = CMB_joysticks.Items.IndexOf(joy.name); } + MainV2.joystick.elevons = CHK_elevons.Checked; + MainV2.cs.rcoverridech1 = joy.getValueForChannel(1, CMB_joysticks.Text); MainV2.cs.rcoverridech2 = joy.getValueForChannel(2, CMB_joysticks.Text); MainV2.cs.rcoverridech3 = joy.getValueForChannel(3, CMB_joysticks.Text); @@ -401,7 +411,12 @@ namespace ArdupilotMega private void CMB_joysticks_SelectedIndexChanged(object sender, EventArgs e) { - + try + { + if (MainV2.joystick != null) + MainV2.joystick.UnAcquireJoyStick(); + } + catch { } } private void JoystickSetup_FormClosed(object sender, FormClosedEventArgs e) @@ -412,5 +427,10 @@ namespace ArdupilotMega MainV2.joystick = null; } } + + private void CHK_elevons_CheckedChanged(object sender, EventArgs e) + { + MainV2.joystick.elevons = CHK_elevons.Checked; + } } } diff --git a/Tools/ArdupilotMegaPlanner/JoystickSetup.resx b/Tools/ArdupilotMegaPlanner/JoystickSetup.resx index 27cce7e7ef..eccf946e39 100644 --- a/Tools/ArdupilotMegaPlanner/JoystickSetup.resx +++ b/Tools/ArdupilotMegaPlanner/JoystickSetup.resx @@ -138,7 +138,7 @@ $this - 31 + 32 RZ @@ -171,7 +171,7 @@ $this - 30 + 31 RZ @@ -204,7 +204,7 @@ $this - 29 + 30 RZ @@ -237,7 +237,7 @@ $this - 28 + 29 RZ @@ -270,7 +270,7 @@ $this - 27 + 28 307, 70 @@ -294,7 +294,7 @@ $this - 22 + 23 307, 97 @@ -318,7 +318,7 @@ $this - 21 + 22 False @@ -345,7 +345,7 @@ $this - 20 + 21 307, 151 @@ -369,7 +369,7 @@ $this - 19 + 20 True @@ -400,7 +400,7 @@ $this - 18 + 19 True @@ -430,7 +430,7 @@ $this - 17 + 18 True @@ -460,7 +460,7 @@ $this - 16 + 17 True @@ -490,7 +490,7 @@ $this - 15 + 16 True @@ -517,7 +517,7 @@ $this - 14 + 15 True @@ -544,7 +544,7 @@ $this - 13 + 14 True @@ -571,7 +571,7 @@ $this - 12 + 13 True @@ -598,7 +598,7 @@ $this - 11 + 12 True @@ -628,7 +628,7 @@ $this - 8 + 9 True @@ -658,7 +658,7 @@ $this - 7 + 8 True @@ -688,7 +688,7 @@ $this - 6 + 7 True @@ -718,7 +718,7 @@ $this - 5 + 6 True @@ -748,7 +748,7 @@ $this - 4 + 5 17, 17 @@ -772,13 +772,13 @@ BUT_detch4 - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 0 + 1 NoControl @@ -799,13 +799,13 @@ BUT_detch3 - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 1 + 2 NoControl @@ -826,13 +826,13 @@ BUT_detch2 - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 2 + 3 NoControl @@ -853,13 +853,13 @@ BUT_detch1 - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 3 + 4 NoControl @@ -880,13 +880,13 @@ BUT_enable - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 9 + 10 NoControl @@ -907,13 +907,13 @@ BUT_save - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 10 + 11 NoControl @@ -931,13 +931,13 @@ progressBar4 - ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 23 + 24 NoControl @@ -955,13 +955,13 @@ progressBar3 - ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 24 + 25 NoControl @@ -979,13 +979,13 @@ progressBar2 - ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 25 + 26 NoControl @@ -1003,13 +1003,40 @@ progressBar1 - ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 26 + 27 + + + True + + + 434, 81 + + + 64, 17 + + + 32 + + + Elevons + + + CHK_elevons + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 True @@ -1018,7 +1045,7 @@ 6, 13 - 479, 220 + 498, 220 diff --git a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs index 6839ce1bad..bb90e046be 100644 --- a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs +++ b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs @@ -34,5 +34,5 @@ using System.Resources; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.80")] +[assembly: AssemblyFileVersion("1.0.81")] [assembly: NeutralResourcesLanguageAttribute("")] diff --git a/Tools/ArdupilotMegaPlanner/Setup/Setup.cs b/Tools/ArdupilotMegaPlanner/Setup/Setup.cs index 63af811151..e6ca06eea1 100644 --- a/Tools/ArdupilotMegaPlanner/Setup/Setup.cs +++ b/Tools/ArdupilotMegaPlanner/Setup/Setup.cs @@ -477,6 +477,7 @@ namespace ArdupilotMega.Setup } } catch { MessageBox.Show("Failed to set Flight modes"); } + BUT_SaveModes.Text = "Complete"; } private void TXT_declination_Validating(object sender, CancelEventArgs e) diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application index ab5abf9620..be9caf9d71 100644 --- a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application +++ b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application @@ -11,7 +11,7 @@ - JxmjTgyhsfYjYCKuWvibXDaws3I= + 8RpxcyWYSVdJiQ8oEr1RbFKdPB8= diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/JoystickSetup.resx b/Tools/ArdupilotMegaPlanner/bin/Release/JoystickSetup.resx index 27cce7e7ef..eccf946e39 100644 --- a/Tools/ArdupilotMegaPlanner/bin/Release/JoystickSetup.resx +++ b/Tools/ArdupilotMegaPlanner/bin/Release/JoystickSetup.resx @@ -138,7 +138,7 @@ $this - 31 + 32 RZ @@ -171,7 +171,7 @@ $this - 30 + 31 RZ @@ -204,7 +204,7 @@ $this - 29 + 30 RZ @@ -237,7 +237,7 @@ $this - 28 + 29 RZ @@ -270,7 +270,7 @@ $this - 27 + 28 307, 70 @@ -294,7 +294,7 @@ $this - 22 + 23 307, 97 @@ -318,7 +318,7 @@ $this - 21 + 22 False @@ -345,7 +345,7 @@ $this - 20 + 21 307, 151 @@ -369,7 +369,7 @@ $this - 19 + 20 True @@ -400,7 +400,7 @@ $this - 18 + 19 True @@ -430,7 +430,7 @@ $this - 17 + 18 True @@ -460,7 +460,7 @@ $this - 16 + 17 True @@ -490,7 +490,7 @@ $this - 15 + 16 True @@ -517,7 +517,7 @@ $this - 14 + 15 True @@ -544,7 +544,7 @@ $this - 13 + 14 True @@ -571,7 +571,7 @@ $this - 12 + 13 True @@ -598,7 +598,7 @@ $this - 11 + 12 True @@ -628,7 +628,7 @@ $this - 8 + 9 True @@ -658,7 +658,7 @@ $this - 7 + 8 True @@ -688,7 +688,7 @@ $this - 6 + 7 True @@ -718,7 +718,7 @@ $this - 5 + 6 True @@ -748,7 +748,7 @@ $this - 4 + 5 17, 17 @@ -772,13 +772,13 @@ BUT_detch4 - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 0 + 1 NoControl @@ -799,13 +799,13 @@ BUT_detch3 - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 1 + 2 NoControl @@ -826,13 +826,13 @@ BUT_detch2 - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 2 + 3 NoControl @@ -853,13 +853,13 @@ BUT_detch1 - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 3 + 4 NoControl @@ -880,13 +880,13 @@ BUT_enable - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 9 + 10 NoControl @@ -907,13 +907,13 @@ BUT_save - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 10 + 11 NoControl @@ -931,13 +931,13 @@ progressBar4 - ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 23 + 24 NoControl @@ -955,13 +955,13 @@ progressBar3 - ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 24 + 25 NoControl @@ -979,13 +979,13 @@ progressBar2 - ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 25 + 26 NoControl @@ -1003,13 +1003,40 @@ progressBar1 - ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + ArdupilotMega.HorizontalProgressBar, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff91852278f5092c $this - 26 + 27 + + + True + + + 434, 81 + + + 64, 17 + + + 32 + + + Elevons + + + CHK_elevons + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 True @@ -1018,7 +1045,7 @@ 6, 13 - 479, 220 + 498, 220