From 83c6e7c421e369ce38de0857d39cc8f2dd7bf2ed Mon Sep 17 00:00:00 2001 From: Michael Oborne Date: Mon, 12 Dec 2011 20:22:13 +0800 Subject: [PATCH] APM Planner 1.1.3 add kml overlay to flight data screen remember last window location websockets functioning. add sonar types/optical flow hardware options --- .../ArdupilotMegaPlanner/ArdupilotMega.csproj | 1 + .../GCSViews/Configuration.cs | 69 ++-- .../GCSViews/FlightData.cs | 8 + .../GCSViews/FlightPlanner.cs | 56 +++- .../GCSViews/Simulation.cs | 2 +- Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs | 11 +- Tools/ArdupilotMegaPlanner/JoystickSetup.cs | 4 + Tools/ArdupilotMegaPlanner/MainV2.cs | 106 +++++- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/Resources.Designer.cs | 7 + .../Properties/Resources.resx | 4 + .../Setup/Setup.Designer.cs | 198 ++++++----- Tools/ArdupilotMegaPlanner/Setup/Setup.cs | 45 ++- Tools/ArdupilotMegaPlanner/Setup/Setup.resx | 316 +++++++++++------- .../Release/ArdupilotMegaPlanner.application | 2 +- .../ArdupilotMegaPlanner/bin/Release/hud.html | 28 +- Tools/ArdupilotMegaPlanner/georefimage.cs | 2 +- Tools/ArdupilotMegaPlanner/hud.html | 28 +- 18 files changed, 608 insertions(+), 281 deletions(-) diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj index 0ee135a3b6..0c24ba0236 100644 --- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj +++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj @@ -578,6 +578,7 @@ Always + diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs index d50d12f4e8..1ae30e302e 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs @@ -349,46 +349,51 @@ namespace ArdupilotMega.GCSViews { try { - NumericUpDown thisctl = ((NumericUpDown)ctl); - thisctl.Maximum = 9000; - thisctl.Minimum = -9000; - thisctl.Value = (decimal)(float)param[value]; - thisctl.Increment = (decimal)0.001; - if (thisctl.Name.EndsWith("_P") || thisctl.Name.EndsWith("_I") || thisctl.Name.EndsWith("_D") || thisctl.Value == 0 || thisctl.Value.ToString("0.###", new System.Globalization.CultureInfo("en-US")).Contains(".")) + if (ctl.GetType() == typeof(NumericUpDown)) { - thisctl.DecimalPlaces = 3; - } - else - { - thisctl.Increment = (decimal)1; - thisctl.DecimalPlaces = 1; - } - thisctl.Enabled = true; - - thisctl.BackColor = Color.FromArgb(0x43, 0x44, 0x45); - thisctl.Validated += null; - if (tooltips[value] != null) - { - try + NumericUpDown thisctl = ((NumericUpDown)ctl); + thisctl.Maximum = 9000; + thisctl.Minimum = -9000; + thisctl.Value = (decimal)(float)param[value]; + thisctl.Increment = (decimal)0.001; + if (thisctl.Name.EndsWith("_P") || thisctl.Name.EndsWith("_I") || thisctl.Name.EndsWith("_D") || thisctl.Value == 0 || thisctl.Value.ToString("0.###", new System.Globalization.CultureInfo("en-US")).Contains(".")) { - toolTip1.SetToolTip(ctl, ((paramsettings)tooltips[value]).desc); + thisctl.DecimalPlaces = 3; } - catch { } + else + { + thisctl.Increment = (decimal)1; + thisctl.DecimalPlaces = 1; + } + + thisctl.Enabled = true; + + thisctl.BackColor = Color.FromArgb(0x43, 0x44, 0x45); + thisctl.Validated += null; + if (tooltips[value] != null) + { + try + { + toolTip1.SetToolTip(ctl, ((paramsettings)tooltips[value]).desc); + } + catch { } + } + thisctl.Validated += new EventHandler(EEPROM_View_float_TextChanged); + + } + else if (ctl.GetType() == typeof(ComboBox)) + { + + ComboBox thisctl = ((ComboBox)ctl); + + thisctl.SelectedIndex = (int)(float)param[value]; + + thisctl.Validated += new EventHandler(ComboBox_Validated); } - thisctl.Validated += new EventHandler(EEPROM_View_float_TextChanged); } catch { } - try - { - ComboBox thisctl = ((ComboBox)ctl); - - thisctl.SelectedIndex = (int)(float)param[value]; - - thisctl.Validated += new EventHandler(ComboBox_Validated); - } catch {} - } if (text.Length == 0) { diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs index 34b0c68756..342ca1dcc0 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs @@ -59,6 +59,8 @@ namespace ArdupilotMega.GCSViews CurveItem list9curve; CurveItem list10curve; + internal static GMapOverlay kmlpolygons; + bool huddropout = false; bool huddropoutresize = false; @@ -154,6 +156,12 @@ namespace ArdupilotMega.GCSViews gMapControl1.Zoom = 3; + gMapControl1.RoutesEnabled = true; + gMapControl1.PolygonsEnabled = true; + + kmlpolygons = new GMapOverlay(gMapControl1, "kmlpolygons"); + gMapControl1.Overlays.Add(kmlpolygons); + polygons = new GMapOverlay(gMapControl1, "polygons"); gMapControl1.Overlays.Add(polygons); diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs b/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs index 7404509b1e..e2079a3679 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs @@ -630,6 +630,16 @@ namespace ArdupilotMega.GCSViews config(false); + if (MainV2.HomeLocation.Lat != 0 && MainV2.HomeLocation.Lng != 0) + { + TXT_homelat.Text = MainV2.HomeLocation.Lat.ToString(); + + TXT_homelng.Text = MainV2.HomeLocation.Lng.ToString(); + + TXT_homealt.Text = MainV2.HomeLocation.Alt.ToString(); + } + + quickadd = false; if (MainV2.config["WMSserver"] != null) @@ -700,6 +710,8 @@ namespace ArdupilotMega.GCSViews { GMapPolygon kmlpolygon = new GMapPolygon(new List(), "kmlpolygon"); + kmlpolygon.Stroke.Color = Color.Purple; + foreach (var loc in polygon.OuterBoundary.LinearRing.Coordinates) { kmlpolygon.Points.Add(new PointLatLng(loc.Latitude, loc.Longitude)); @@ -711,6 +723,8 @@ namespace ArdupilotMega.GCSViews { GMapRoute kmlroute = new GMapRoute(new List(), "kmlroute"); + kmlroute.Stroke.Color = Color.Purple; + foreach (var loc in ls.Coordinates) { kmlroute.Points.Add(new PointLatLng(loc.Latitude, loc.Longitude)); @@ -1514,15 +1528,6 @@ namespace ArdupilotMega.GCSViews { switch (key) { - case "TXT_homelat": - TXT_homelat.Text = ArdupilotMega.MainV2.config[key].ToString(); - break; - case "TXT_homelng": - TXT_homelng.Text = ArdupilotMega.MainV2.config[key].ToString(); - break; - case "TXT_homealt": - TXT_homealt.Text = ArdupilotMega.MainV2.config[key].ToString(); - break; case "TXT_WPRad": TXT_WPRad.Text = ArdupilotMega.MainV2.config[key].ToString(); break; @@ -1652,18 +1657,34 @@ namespace ArdupilotMega.GCSViews private void TXT_homelat_TextChanged(object sender, EventArgs e) { sethome = false; + try + { + MainV2.HomeLocation.Lat = double.Parse(TXT_homelat.Text); + } + catch { } writeKML(); + } private void TXT_homelng_TextChanged(object sender, EventArgs e) { sethome = false; + try + { + MainV2.HomeLocation.Lng = double.Parse(TXT_homelng.Text); + } + catch { } writeKML(); } private void TXT_homealt_TextChanged(object sender, EventArgs e) { sethome = false; + try + { + MainV2.HomeLocation.Alt = double.Parse(TXT_homealt.Text); + } + catch { } writeKML(); } @@ -1793,8 +1814,6 @@ namespace ArdupilotMega.GCSViews // polygons GMapPolygon polygon; GMapPolygon drawnpolygon; - - //static GMapRoute route; GMapOverlay kmlpolygons; // layers @@ -2877,6 +2896,9 @@ namespace ArdupilotMega.GCSViews kmlpolygons.Polygons.Clear(); kmlpolygons.Routes.Clear(); + FlightData.kmlpolygons.Routes.Clear(); + FlightData.kmlpolygons.Polygons.Clear(); + string kml = new StreamReader(File.OpenRead(file)).ReadToEnd(); kml = kml.Replace("", ""); @@ -2886,6 +2908,18 @@ namespace ArdupilotMega.GCSViews parser.ElementAdded += parser_ElementAdded; parser.ParseString(kml,true); + if (DialogResult.Yes == MessageBox.Show("Do you want to load this into the flight data screen?", "Load data", MessageBoxButtons.YesNo)) + { + foreach (var temp in kmlpolygons.Polygons) + { + FlightData.kmlpolygons.Polygons.Add(temp); + } + foreach (var temp in kmlpolygons.Routes) + { + FlightData.kmlpolygons.Routes.Add(temp); + } + } + } catch (Exception ex) { MessageBox.Show("Bad KML File :" + ex.ToString()); } } diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs index 8c1ef36029..fd2a7cd1fb 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs @@ -251,7 +251,7 @@ namespace ArdupilotMega.GCSViews { System.Diagnostics.ProcessStartInfo _procstartinfo = new System.Diagnostics.ProcessStartInfo(); _procstartinfo.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath); - _procstartinfo.Arguments = "--realtime --suspend --nice --simulation-rate=1000 --logdirectivefile=jsbsim/fgout.xml --script=jsbsim/rascal_test.xml"; + _procstartinfo.Arguments = "--realtime --suspend --nice --simulation-rate=50 --logdirectivefile=jsbsim/fgout.xml --script=jsbsim/rascal_test.xml"; _procstartinfo.FileName = "JSBSim.exe"; // Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + diff --git a/Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs b/Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs index d77b6cf3c1..736135cb5b 100644 --- a/Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs +++ b/Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs @@ -20,6 +20,7 @@ namespace ArdupilotMega.HIL double hover_throttle; double terminal_velocity; + double terminal_rotation_rate; Vector3d old_position; @@ -37,6 +38,7 @@ namespace ArdupilotMega.HIL motor_speed = new double[] { 0.0, 0.0, 0.0, 0.0 }; hover_throttle = 0.37; terminal_velocity = 30.0; + terminal_rotation_rate = 4 * 360.0; thrust_scale = (mass * gravity) / (4.0 * hover_throttle); @@ -112,7 +114,12 @@ namespace ArdupilotMega.HIL double pitch_accel = (m[2] - m[3]) * 5000.0; double yaw_accel = -((m[2] + m[3]) - (m[0] + m[1])) * 400.0; - //Console.WriteLine("roll {0} {1} {2}", roll_accel, roll_rate, roll); + //Console.WriteLine("roll {0} {1} {2}", roll_accel, roll_rate, roll); + + // rotational resistance + roll_accel -= (roll_rate / terminal_rotation_rate) * 5000.0; + pitch_accel -= (pitch_rate / terminal_rotation_rate) * 5000.0; + yaw_accel -= (yaw_rate / terminal_rotation_rate) * 400.0; //# update rotational rates roll_rate += roll_accel * delta_time.TotalSeconds; @@ -148,7 +155,7 @@ namespace ArdupilotMega.HIL Random rand = new Random(); int fixme; - + //velocity.X += .02 + rand.NextDouble() * .03; //velocity.Y += .02 + rand.NextDouble() * .03; diff --git a/Tools/ArdupilotMegaPlanner/JoystickSetup.cs b/Tools/ArdupilotMegaPlanner/JoystickSetup.cs index 4478ffa93a..782e54ee3f 100644 --- a/Tools/ArdupilotMegaPlanner/JoystickSetup.cs +++ b/Tools/ArdupilotMegaPlanner/JoystickSetup.cs @@ -467,6 +467,10 @@ namespace ArdupilotMega private void CHK_elevons_CheckedChanged(object sender, EventArgs e) { + if (MainV2.joystick == null) + { + return; + } MainV2.joystick.elevons = CHK_elevons.Checked; } diff --git a/Tools/ArdupilotMegaPlanner/MainV2.cs b/Tools/ArdupilotMegaPlanner/MainV2.cs index b2644aeeb6..53b068c165 100644 --- a/Tools/ArdupilotMegaPlanner/MainV2.cs +++ b/Tools/ArdupilotMegaPlanner/MainV2.cs @@ -33,6 +33,11 @@ namespace ArdupilotMega const int SW_SHOWNORMAL = 1; const int SW_HIDE = 0; + /// + /// Home Location + /// + public static PointLatLngAlt HomeLocation = new PointLatLngAlt(); + public static MAVLink comPort = new MAVLink(); public static string comportname = ""; public static Hashtable config = new Hashtable(); @@ -167,10 +172,17 @@ namespace ArdupilotMega if (MainV2.config["CHK_GDIPlus"] != null) GCSViews.FlightData.myhud.UseOpenGL = !bool.Parse(MainV2.config["CHK_GDIPlus"].ToString()); - changeunits(); + changeunits(); try { + if (config["MainLocX"] != null && config["MainLocY"] != null) + { + this.StartPosition = FormStartPosition.Manual; + Point startpos = new Point(int.Parse(config["MainLocX"].ToString()), int.Parse(config["MainLocY"].ToString())); + this.Location = startpos; + } + if (config["MainHeight"] != null) this.Height = int.Parse(config["MainHeight"].ToString()); if (config["MainWidth"] != null) @@ -178,7 +190,6 @@ namespace ArdupilotMega if (config["MainMaximised"] != null) this.WindowState = (FormWindowState)Enum.Parse(typeof(FormWindowState), config["MainMaximised"].ToString()); - if (config["CMB_rateattitude"] != null) MainV2.cs.rateattitude = byte.Parse(config["CMB_rateattitude"].ToString()); if (config["CMB_rateattitude"] != null) @@ -191,6 +202,20 @@ namespace ArdupilotMega if (config["speechenable"] != null) MainV2.speechenable = bool.Parse(config["speechenable"].ToString()); + + try + { + if (config["TXT_homelat"] != null) + HomeLocation.Lat = double.Parse(config["TXT_homelat"].ToString()); + + if (config["TXT_homelng"] != null) + HomeLocation.Lng = double.Parse(config["TXT_homelng"].ToString()); + + if (config["TXT_homealt"] != null) + HomeLocation.Alt = double.Parse(config["TXT_homealt"].ToString()); + } + catch { } + } catch { } @@ -834,7 +859,7 @@ namespace ArdupilotMega { try { - if (key == "") + if (key == "" || key.Contains("/")) // "/dev/blah" continue; xmlwriter.WriteElementString(key, config[key].ToString()); @@ -1212,6 +1237,24 @@ namespace ArdupilotMega t11.Start(); } + public static String ComputeWebSocketHandshakeSecurityHash09(String secWebSocketKey) + { + const String MagicKEY = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; + String secWebSocketAccept = String.Empty; + + // 1. Combine the request Sec-WebSocket-Key with magic key. + String ret = secWebSocketKey + MagicKEY; + + // 2. Compute the SHA1 hash + System.Security.Cryptography.SHA1 sha = new System.Security.Cryptography.SHA1CryptoServiceProvider(); + byte[] sha1Hash = sha.ComputeHash(Encoding.UTF8.GetBytes(ret)); + + // 3. Base64 encode the hash + secWebSocketAccept = Convert.ToBase64String(sha1Hash); + + return secWebSocketAccept; + } + /// /// little web server for sending network link kml's /// @@ -1263,29 +1306,54 @@ namespace ArdupilotMega if (url.Contains("websocket")) { - using (var writer = new StreamWriter(stream)) + using (var writer = new StreamWriter(stream,Encoding.Default)) { - writer.WriteLine("HTTP/1.1 101 Web Socket Protocol Handshake"); + writer.WriteLine("HTTP/1.1 101 WebSocket Protocol Handshake"); writer.WriteLine("Upgrade: WebSocket"); writer.WriteLine("Connection: Upgrade"); - writer.WriteLine("WebSocket-Origin: http://localhost:56781/"); writer.WriteLine("WebSocket-Location: ws://localhost:56781/websocket/server"); + + int start = head.IndexOf("Sec-WebSocket-Key:") + 19; + int end = head.IndexOf('\r', start); + if (end == -1) + end = head.IndexOf('\n', start); + string accept = ComputeWebSocketHandshakeSecurityHash09(head.Substring(start,end-start)); + + writer.WriteLine("Sec-WebSocket-Accept: " + accept); + + writer.WriteLine("Server: APM Planner"); + writer.WriteLine(""); + writer.Flush(); + while (client.Connected) { System.Threading.Thread.Sleep(200); Console.WriteLine(stream.DataAvailable + " " + client.Available); - stream.WriteByte(0x00); - writer.WriteLine("test from planner"); - stream.WriteByte(0xff); + + while (client.Available > 0) + { + Console.Write(stream.ReadByte()); + } + + byte[] packet = new byte[256]; + + string sendme = cs.roll + "," + cs.pitch + "," + cs.yaw; + + packet[0] = 0x81; // fin - binary + packet[1] = (byte)sendme.Length; + + int i = 2; + foreach (char ch in sendme) + { + packet[i++] = (byte)ch; + } + + stream.Write(packet,0,i); //break; } - - stream.WriteByte(0x00); - //message - stream.WriteByte(0xff); } } else if (url.Contains(".html")) @@ -1656,9 +1724,13 @@ namespace ArdupilotMega frm.Show(); return true; } - if (keyData == (Keys.Control | Keys.T)) // for ryan beall + if (keyData == (Keys.Control | Keys.T)) // for override connect { - MainV2.comPort.Open(false); + try + { + MainV2.comPort.Open(false); + } + catch (Exception ex) { MessageBox.Show(ex.ToString()); } return true; } if (keyData == (Keys.Control | Keys.Y)) // for ryan beall @@ -1700,6 +1772,7 @@ namespace ArdupilotMega temp.BackColor = Color.FromArgb(0x26, 0x27, 0x28); } + public void changelanguage(CultureInfo ci) { if (ci != null && !Thread.CurrentThread.CurrentUICulture.Equals(ci)) @@ -1770,6 +1843,9 @@ namespace ArdupilotMega config["MainWidth"] = this.Width; config["MainMaximised"] = this.WindowState.ToString(); + config["MainLocX"] = this.Location.X.ToString(); + config["MainLocY"] = this.Location.Y.ToString(); + try { comPort.logreadmode = false; diff --git a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs index 8940519010..5bb404633b 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.1.2")] +[assembly: AssemblyFileVersion("1.1.3")] [assembly: NeutralResourcesLanguageAttribute("")] diff --git a/Tools/ArdupilotMegaPlanner/Properties/Resources.Designer.cs b/Tools/ArdupilotMegaPlanner/Properties/Resources.Designer.cs index 30c8f96d77..9e5b401c50 100644 --- a/Tools/ArdupilotMegaPlanner/Properties/Resources.Designer.cs +++ b/Tools/ArdupilotMegaPlanner/Properties/Resources.Designer.cs @@ -109,6 +109,13 @@ namespace ArdupilotMega.Properties { } } + public static System.Drawing.Bitmap BR_0016_01_3T { + get { + object obj = ResourceManager.GetObject("BR_0016_01_3T", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + public static System.Drawing.Bitmap compass { get { object obj = ResourceManager.GetObject("compass", resourceCulture); diff --git a/Tools/ArdupilotMegaPlanner/Properties/Resources.resx b/Tools/ArdupilotMegaPlanner/Properties/Resources.resx index 9418aa7c0c..22592fa8b2 100644 --- a/Tools/ArdupilotMegaPlanner/Properties/Resources.resx +++ b/Tools/ArdupilotMegaPlanner/Properties/Resources.resx @@ -1207,4 +1207,8 @@ ..\Resources\new frames-09.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\BR-0016-01-3T.jpg;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/Setup/Setup.Designer.cs b/Tools/ArdupilotMegaPlanner/Setup/Setup.Designer.cs index 31aa448918..ecf13e02aa 100644 --- a/Tools/ArdupilotMegaPlanner/Setup/Setup.Designer.cs +++ b/Tools/ArdupilotMegaPlanner/Setup/Setup.Designer.cs @@ -40,7 +40,6 @@ this.CHK_revch1 = new System.Windows.Forms.CheckBox(); this.BUT_Calibrateradio = new ArdupilotMega.MyButton(); this.BAR8 = new ArdupilotMega.HorizontalProgressBar2(); - this.currentStateBindingSource = new System.Windows.Forms.BindingSource(this.components); this.BAR7 = new ArdupilotMega.HorizontalProgressBar2(); this.BAR6 = new ArdupilotMega.HorizontalProgressBar2(); this.BAR5 = new ArdupilotMega.HorizontalProgressBar2(); @@ -85,9 +84,6 @@ 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(); this.tabBattery = new System.Windows.Forms.TabPage(); this.TXT_ampspervolt = new System.Windows.Forms.TextBox(); this.TXT_divider = new System.Windows.Forms.TextBox(); @@ -104,13 +100,10 @@ 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.tabArducopter = new System.Windows.Forms.TabPage(); 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(); this.tabHeli = new System.Windows.Forms.TabPage(); this.groupBox3 = new System.Windows.Forms.GroupBox(); @@ -162,22 +155,25 @@ this.BUT_swash_manual = new ArdupilotMega.MyButton(); this.HS4 = new ArdupilotMega.HorizontalProgressBar2(); this.HS3 = new ArdupilotMega.VerticalProgressBar2(); - this.Gservoloc = new AGaugeApp.AGauge(); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.currentStateBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.pictureBox4 = new System.Windows.Forms.PictureBox(); + this.pictureBox3 = new System.Windows.Forms.PictureBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.pictureBox5 = new System.Windows.Forms.PictureBox(); + this.pictureBoxQuadX = new System.Windows.Forms.PictureBox(); + this.pictureBoxQuad = new System.Windows.Forms.PictureBox(); + this.Gservoloc = new AGaugeApp.AGauge(); + this.CHK_enableoptflow = new System.Windows.Forms.CheckBox(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.CMB_sonartype = new System.Windows.Forms.ComboBox(); this.tabControl1.SuspendLayout(); this.tabReset.SuspendLayout(); this.tabRadioIn.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).BeginInit(); this.tabModes.SuspendLayout(); this.tabHardware.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.tabBattery.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit(); this.tabArducopter.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).BeginInit(); this.tabHeli.SuspendLayout(); this.groupBox3.SuspendLayout(); this.groupBox2.SuspendLayout(); @@ -186,6 +182,14 @@ ((System.ComponentModel.ISupportInitialize)(this.HS3_TRIM)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.HS2_TRIM)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.HS1_TRIM)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); this.SuspendLayout(); // // tabControl1 @@ -286,10 +290,6 @@ this.BAR8.Value = 1500; this.BAR8.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255))))); // - // currentStateBindingSource - // - this.currentStateBindingSource.DataSource = typeof(ArdupilotMega.CurrentState); - // // BAR7 // this.BAR7.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255))))); @@ -611,6 +611,9 @@ // tabHardware // this.tabHardware.BackColor = System.Drawing.Color.DarkRed; + this.tabHardware.Controls.Add(this.CMB_sonartype); + this.tabHardware.Controls.Add(this.CHK_enableoptflow); + this.tabHardware.Controls.Add(this.pictureBox2); this.tabHardware.Controls.Add(this.linkLabelmagdec); this.tabHardware.Controls.Add(this.label100); this.tabHardware.Controls.Add(this.TXT_declination); @@ -663,32 +666,6 @@ this.CHK_enablecompass.UseVisualStyleBackColor = true; this.CHK_enablecompass.CheckedChanged += new System.EventHandler(this.CHK_enablecompass_CheckedChanged); // - // pictureBox4 - // - this.pictureBox4.BackColor = System.Drawing.Color.White; - this.pictureBox4.BackgroundImage = global::ArdupilotMega.Properties.Resources.airspeed; - resources.ApplyResources(this.pictureBox4, "pictureBox4"); - this.pictureBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pictureBox4.Name = "pictureBox4"; - this.pictureBox4.TabStop = false; - // - // pictureBox3 - // - this.pictureBox3.BackColor = System.Drawing.Color.White; - this.pictureBox3.BackgroundImage = global::ArdupilotMega.Properties.Resources.sonar; - resources.ApplyResources(this.pictureBox3, "pictureBox3"); - this.pictureBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pictureBox3.Name = "pictureBox3"; - this.pictureBox3.TabStop = false; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::ArdupilotMega.Properties.Resources.compass; - resources.ApplyResources(this.pictureBox1, "pictureBox1"); - this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.TabStop = false; - // // tabBattery // this.tabBattery.Controls.Add(this.TXT_ampspervolt); @@ -807,23 +784,14 @@ this.CMB_batmontype.Name = "CMB_batmontype"; this.CMB_batmontype.SelectedIndexChanged += new System.EventHandler(this.CMB_batmontype_SelectedIndexChanged); // - // pictureBox5 - // - this.pictureBox5.BackColor = System.Drawing.Color.White; - this.pictureBox5.BackgroundImage = global::ArdupilotMega.Properties.Resources.attocurrent; - resources.ApplyResources(this.pictureBox5, "pictureBox5"); - this.pictureBox5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pictureBox5.Name = "pictureBox5"; - this.pictureBox5.TabStop = false; - // // tabArducopter // this.tabArducopter.Controls.Add(this.label28); this.tabArducopter.Controls.Add(this.label16); this.tabArducopter.Controls.Add(this.label15); + this.tabArducopter.Controls.Add(this.BUT_levelac2); this.tabArducopter.Controls.Add(this.pictureBoxQuadX); this.tabArducopter.Controls.Add(this.pictureBoxQuad); - this.tabArducopter.Controls.Add(this.BUT_levelac2); resources.ApplyResources(this.tabArducopter, "tabArducopter"); this.tabArducopter.Name = "tabArducopter"; this.tabArducopter.UseVisualStyleBackColor = true; @@ -843,24 +811,6 @@ resources.ApplyResources(this.label15, "label15"); this.label15.Name = "label15"; // - // pictureBoxQuadX - // - this.pictureBoxQuadX.Cursor = System.Windows.Forms.Cursors.Hand; - this.pictureBoxQuadX.Image = global::ArdupilotMega.Properties.Resources.frames_04; - resources.ApplyResources(this.pictureBoxQuadX, "pictureBoxQuadX"); - this.pictureBoxQuadX.Name = "pictureBoxQuadX"; - 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.frames_03; - resources.ApplyResources(this.pictureBoxQuad, "pictureBoxQuad"); - this.pictureBoxQuad.Name = "pictureBoxQuad"; - this.pictureBoxQuad.TabStop = false; - this.pictureBoxQuad.Click += new System.EventHandler(this.pictureBoxQuad_Click); - // // BUT_levelac2 // resources.ApplyResources(this.BUT_levelac2, "BUT_levelac2"); @@ -1294,6 +1244,63 @@ this.HS3.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(148)))), ((int)(((byte)(193)))), ((int)(((byte)(31))))); this.HS3.Paint += new System.Windows.Forms.PaintEventHandler(this.HS3_Paint); // + // currentStateBindingSource + // + this.currentStateBindingSource.DataSource = typeof(ArdupilotMega.CurrentState); + // + // pictureBox4 + // + this.pictureBox4.BackColor = System.Drawing.Color.White; + this.pictureBox4.BackgroundImage = global::ArdupilotMega.Properties.Resources.airspeed; + resources.ApplyResources(this.pictureBox4, "pictureBox4"); + this.pictureBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox4.Name = "pictureBox4"; + this.pictureBox4.TabStop = false; + // + // pictureBox3 + // + this.pictureBox3.BackColor = System.Drawing.Color.White; + this.pictureBox3.BackgroundImage = global::ArdupilotMega.Properties.Resources.sonar; + resources.ApplyResources(this.pictureBox3, "pictureBox3"); + this.pictureBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.TabStop = false; + // + // pictureBox1 + // + this.pictureBox1.BackgroundImage = global::ArdupilotMega.Properties.Resources.compass; + resources.ApplyResources(this.pictureBox1, "pictureBox1"); + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.TabStop = false; + // + // pictureBox5 + // + this.pictureBox5.BackColor = System.Drawing.Color.White; + this.pictureBox5.BackgroundImage = global::ArdupilotMega.Properties.Resources.attocurrent; + resources.ApplyResources(this.pictureBox5, "pictureBox5"); + this.pictureBox5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox5.Name = "pictureBox5"; + this.pictureBox5.TabStop = false; + // + // pictureBoxQuadX + // + this.pictureBoxQuadX.Cursor = System.Windows.Forms.Cursors.Hand; + this.pictureBoxQuadX.Image = global::ArdupilotMega.Properties.Resources.frames_04; + resources.ApplyResources(this.pictureBoxQuadX, "pictureBoxQuadX"); + this.pictureBoxQuadX.Name = "pictureBoxQuadX"; + 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.frames_03; + resources.ApplyResources(this.pictureBoxQuad, "pictureBoxQuad"); + this.pictureBoxQuad.Name = "pictureBoxQuad"; + this.pictureBoxQuad.TabStop = false; + this.pictureBoxQuad.Click += new System.EventHandler(this.pictureBoxQuad_Click); + // // Gservoloc // this.Gservoloc.BackColor = System.Drawing.Color.Transparent; @@ -1437,6 +1444,33 @@ this.Gservoloc.Value2 = 180F; this.Gservoloc.Value3 = 0F; // + // CHK_enableoptflow + // + resources.ApplyResources(this.CHK_enableoptflow, "CHK_enableoptflow"); + this.CHK_enableoptflow.Name = "CHK_enableoptflow"; + this.CHK_enableoptflow.UseVisualStyleBackColor = true; + this.CHK_enableoptflow.CheckedChanged += new System.EventHandler(this.CHK_enableoptflow_CheckedChanged); + // + // pictureBox2 + // + this.pictureBox2.BackColor = System.Drawing.Color.White; + this.pictureBox2.BackgroundImage = global::ArdupilotMega.Properties.Resources.BR_0016_01_3T; + resources.ApplyResources(this.pictureBox2, "pictureBox2"); + this.pictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.TabStop = false; + // + // CMB_sonartype + // + this.CMB_sonartype.FormattingEnabled = true; + this.CMB_sonartype.Items.AddRange(new object[] { + resources.GetString("CMB_sonartype.Items"), + resources.GetString("CMB_sonartype.Items1"), + resources.GetString("CMB_sonartype.Items2")}); + resources.ApplyResources(this.CMB_sonartype, "CMB_sonartype"); + this.CMB_sonartype.Name = "CMB_sonartype"; + this.CMB_sonartype.SelectedIndexChanged += new System.EventHandler(this.CMB_sonartype_SelectedIndexChanged); + // // Setup // resources.ApplyResources(this, "$this"); @@ -1450,21 +1484,14 @@ this.tabReset.ResumeLayout(false); this.tabRadioIn.ResumeLayout(false); this.tabRadioIn.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).EndInit(); this.tabModes.ResumeLayout(false); this.tabModes.PerformLayout(); this.tabHardware.ResumeLayout(false); this.tabHardware.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.tabBattery.ResumeLayout(false); this.tabBattery.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit(); this.tabArducopter.ResumeLayout(false); this.tabArducopter.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).EndInit(); this.tabHeli.ResumeLayout(false); this.tabHeli.PerformLayout(); this.groupBox3.ResumeLayout(false); @@ -1477,6 +1504,14 @@ ((System.ComponentModel.ISupportInitialize)(this.HS3_TRIM)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.HS2_TRIM)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.HS1_TRIM)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); this.ResumeLayout(false); } @@ -1617,6 +1652,9 @@ private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.Label label46; private System.Windows.Forms.Label label45; + private System.Windows.Forms.CheckBox CHK_enableoptflow; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.ComboBox CMB_sonartype; } } \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/Setup/Setup.cs b/Tools/ArdupilotMegaPlanner/Setup/Setup.cs index fbe470c9be..92648b2a26 100644 --- a/Tools/ArdupilotMegaPlanner/Setup/Setup.cs +++ b/Tools/ArdupilotMegaPlanner/Setup/Setup.cs @@ -374,6 +374,11 @@ namespace ArdupilotMega.Setup if (MainV2.comPort.param["COMPASS_DEC"] != null) TXT_declination.Text = (float.Parse(MainV2.comPort.param["COMPASS_DEC"].ToString()) * rad2deg).ToString(); + + if (MainV2.comPort.param["SONAR_TYPE"] != null) + CMB_sonartype.SelectedIndex = int.Parse(MainV2.comPort.param["SONAR_TYPE"].ToString()); + + startup = false; } @@ -1192,7 +1197,8 @@ namespace ArdupilotMega.Setup HS4_MIN.Text = HS4.minline.ToString(); if (int.Parse(HS4_MAX.Text) < HS4.maxline) HS4_MAX.Text = HS4.maxline.ToString(); - } catch {} + } + catch { } } private void HS3_Paint(object sender, PaintEventArgs e) @@ -1262,5 +1268,42 @@ namespace ArdupilotMega.Setup timer.Stop(); timer.Dispose(); } + + private void CHK_enableoptflow_CheckedChanged(object sender, EventArgs e) + { + + if (startup) + return; + try + { + if (MainV2.comPort.param["FLOW_ENABLE"] == null) + { + MessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString()); + } + else + { + MainV2.comPort.setParam("FLOW_ENABLE", ((CheckBox)sender).Checked == true ? 1 : 0); + } + } + catch { MessageBox.Show("Set FLOW_ENABLE Failed"); } + } + + private void CMB_sonartype_SelectedIndexChanged(object sender, EventArgs e) + { + if (startup) + return; + try + { + if (MainV2.comPort.param["SONAR_TYPE"] == null) + { + MessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString()); + } + else + { + MainV2.comPort.setParam("SONAR_TYPE", ((ComboBox)sender).SelectedIndex); + } + } + catch { MessageBox.Show("Set SONAR_TYPE Failed"); } + } } } \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/Setup/Setup.resx b/Tools/ArdupilotMegaPlanner/Setup/Setup.resx index 4ae6d03fdf..009bae6e54 100644 --- a/Tools/ArdupilotMegaPlanner/Setup/Setup.resx +++ b/Tools/ArdupilotMegaPlanner/Setup/Setup.resx @@ -711,6 +711,90 @@ 2 + + XL-EZ0 + + + LV-EZ0 + + + XL-EXL0 + + + 308, 134 + + + 121, 21 + + + 31 + + + CMB_sonartype + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabHardware + + + 0 + + + NoControl + + + 162, 297 + + + 134, 19 + + + 30 + + + Enable Optical Flow + + + CHK_enableoptflow + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabHardware + + + 1 + + + Zoom + + + NoControl + + + 78, 271 + + + 75, 75 + + + 29 + + + pictureBox2 + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabHardware + + + 2 + True @@ -739,7 +823,7 @@ tabHardware - 0 + 3 NoControl @@ -766,7 +850,7 @@ tabHardware - 1 + 4 214, 17 @@ -793,7 +877,7 @@ tabHardware - 2 + 5 NoControl @@ -820,7 +904,7 @@ tabHardware - 3 + 6 NoControl @@ -847,7 +931,7 @@ tabHardware - 4 + 7 NoControl @@ -874,7 +958,7 @@ tabHardware - 5 + 8 Zoom @@ -901,7 +985,7 @@ tabHardware - 6 + 9 Zoom @@ -928,7 +1012,7 @@ tabHardware - 7 + 10 Zoom @@ -961,7 +1045,7 @@ tabHardware - 8 + 11 4, 22 @@ -1245,6 +1329,18 @@ 2 + + BUT_levelac2 + + + ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=38326cb7e06851fc + + + tabArducopter + + + 3 + pictureBoxQuadX @@ -1255,7 +1351,7 @@ tabArducopter - 3 + 4 pictureBoxQuad @@ -1267,18 +1363,6 @@ tabArducopter - 4 - - - BUT_levelac2 - - - ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=38326cb7e06851fc - - - tabArducopter - - 5 @@ -1983,9 +2067,6 @@ 5 - - 17, 17 - 446, 185 @@ -3414,33 +3495,6 @@ 14 - - Zoom - - - NoControl - - - 31, 21 - - - 75, 75 - - - 2 - - - pictureBox5 - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabBattery - - - 15 - True @@ -3532,60 +3586,6 @@ will work with hexa's etc 2 - - NoControl - - - 319, 140 - - - 190, 190 - - - Zoom - - - 5 - - - pictureBoxQuadX - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabArducopter - - - 3 - - - NoControl - - - 112, 140 - - - 190, 190 - - - Zoom - - - 4 - - - pictureBoxQuad - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabArducopter - - - 4 - NoControl @@ -3611,7 +3611,7 @@ will work with hexa's etc tabArducopter - 5 + 3 label46 @@ -5083,6 +5083,93 @@ will work with hexa's etc 34 + + 214, 17 + + + 17, 17 + + + Zoom + + + NoControl + + + 31, 21 + + + 75, 75 + + + 2 + + + pictureBox5 + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabBattery + + + 15 + + + NoControl + + + 319, 140 + + + 190, 190 + + + Zoom + + + 5 + + + pictureBoxQuadX + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabArducopter + + + 4 + + + NoControl + + + 112, 140 + + + 190, 190 + + + Zoom + + + 4 + + + pictureBoxQuad + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabArducopter + + + 5 + Zoom @@ -5113,9 +5200,6 @@ will work with hexa's etc 35 - - 214, 17 - True @@ -5128,18 +5212,18 @@ will work with hexa's etc APMSetup - - currentStateBindingSource - - - System.Windows.Forms.BindingSource, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - toolTip1 System.Windows.Forms.ToolTip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + currentStateBindingSource + + + System.Windows.Forms.BindingSource, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + Setup diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application index f0b8789864..19a0b429d3 100644 --- a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application +++ b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application @@ -11,7 +11,7 @@ - +BB2J7z2to1UULmX82O0PxoC594= + /35AemMq933lmTElQtJvYj/CRU0= diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/hud.html b/Tools/ArdupilotMegaPlanner/bin/Release/hud.html index ce9253d9e8..36fdb71144 100644 --- a/Tools/ArdupilotMegaPlanner/bin/Release/hud.html +++ b/Tools/ArdupilotMegaPlanner/bin/Release/hud.html @@ -19,7 +19,16 @@ socket = new WebSocket(host); //log('WebSocket - status '+socket.readyState); socket.onopen = function(msg){ socket.send("onopen"); alert("Welcome - status "+this.readyState); }; - socket.onmessage = function(msg){ alert("Received: "+msg.data); }; + socket.onmessage = function(msg){ + var b1 = msg.data.indexOf(",",0); + var b2 = msg.data.indexOf(",",b1+1); + + roll = parseFloat( msg.data.substr(0,b1)); + pitch = parseFloat( msg.data.substr(b1+1,b2 - b1)); + yaw = parseFloat( msg.data.substr(b2+1)); + + //alert("Received: "+msg.data); + }; socket.onerror = function(msg){ alert("Error: "+msg.data); }; socket.onclose = function(msg){ alert("Disconnected - status "+this.readyState); }; } @@ -27,17 +36,16 @@ } else { alert("This browser doesnt support websockets"); } - - + function draw() { - pitch -= 1.2; - roll += .75; + //pitch -= 1.2; + //roll += .75; - if (pitch < -90) - pitch = 90; - if (roll > 180) - roll = -180; + //if (pitch < -90) + //pitch = 90; + //if (roll > 180) + //roll = -180; var canvas = document.getElementById("canvas"); if (canvas.getContext) { @@ -157,7 +165,7 @@ try { - socket.send("test "+pitch+"\n"); + //socket.send("test "+pitch+"\n"); } catch (ex){ }// alert(ex); } setTimeout ( "draw()", 33 ); diff --git a/Tools/ArdupilotMegaPlanner/georefimage.cs b/Tools/ArdupilotMegaPlanner/georefimage.cs index dca2fb0919..fa4caec8c0 100644 --- a/Tools/ArdupilotMegaPlanner/georefimage.cs +++ b/Tools/ArdupilotMegaPlanner/georefimage.cs @@ -234,7 +234,7 @@ namespace ArdupilotMega this.TXT_offsetseconds.Name = "TXT_offsetseconds"; this.TXT_offsetseconds.Size = new System.Drawing.Size(100, 20); this.TXT_offsetseconds.TabIndex = 4; - this.TXT_offsetseconds.Text = "-86156"; + this.TXT_offsetseconds.Text = "0"; // // BUT_doit // diff --git a/Tools/ArdupilotMegaPlanner/hud.html b/Tools/ArdupilotMegaPlanner/hud.html index ce9253d9e8..36fdb71144 100644 --- a/Tools/ArdupilotMegaPlanner/hud.html +++ b/Tools/ArdupilotMegaPlanner/hud.html @@ -19,7 +19,16 @@ socket = new WebSocket(host); //log('WebSocket - status '+socket.readyState); socket.onopen = function(msg){ socket.send("onopen"); alert("Welcome - status "+this.readyState); }; - socket.onmessage = function(msg){ alert("Received: "+msg.data); }; + socket.onmessage = function(msg){ + var b1 = msg.data.indexOf(",",0); + var b2 = msg.data.indexOf(",",b1+1); + + roll = parseFloat( msg.data.substr(0,b1)); + pitch = parseFloat( msg.data.substr(b1+1,b2 - b1)); + yaw = parseFloat( msg.data.substr(b2+1)); + + //alert("Received: "+msg.data); + }; socket.onerror = function(msg){ alert("Error: "+msg.data); }; socket.onclose = function(msg){ alert("Disconnected - status "+this.readyState); }; } @@ -27,17 +36,16 @@ } else { alert("This browser doesnt support websockets"); } - - + function draw() { - pitch -= 1.2; - roll += .75; + //pitch -= 1.2; + //roll += .75; - if (pitch < -90) - pitch = 90; - if (roll > 180) - roll = -180; + //if (pitch < -90) + //pitch = 90; + //if (roll > 180) + //roll = -180; var canvas = document.getElementById("canvas"); if (canvas.getContext) { @@ -157,7 +165,7 @@ try { - socket.send("test "+pitch+"\n"); + //socket.send("test "+pitch+"\n"); } catch (ex){ }// alert(ex); } setTimeout ( "draw()", 33 );