diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Terminal.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Terminal.cs
index 9916791714..7051ee6006 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/Terminal.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/Terminal.cs
@@ -168,6 +168,8 @@ namespace ArdupilotMega.GCSViews
comPort.ReadBufferSize = 1024 * 1024;
+ comPort.PortName = MainV2.comportname;
+
comPort.Open();
System.Threading.Thread t11 = new System.Threading.Thread(delegate()
diff --git a/Tools/ArdupilotMegaPlanner/Log.cs b/Tools/ArdupilotMegaPlanner/Log.cs
index 01628a95ea..54fc20c46c 100644
--- a/Tools/ArdupilotMegaPlanner/Log.cs
+++ b/Tools/ArdupilotMegaPlanner/Log.cs
@@ -56,7 +56,7 @@ namespace ArdupilotMega
public Log()
{
InitializeComponent();
-
+
Control.CheckForIllegalCrossThreadCalls = false; // so can update display from another thread
}
@@ -75,7 +75,8 @@ namespace ArdupilotMega
comPort.DtrEnable = true;
//comPort.Open();
}
- catch (Exception) {
+ catch (Exception)
+ {
MessageBox.Show("Error opening comport");
}
@@ -99,7 +100,7 @@ namespace ArdupilotMega
comPort_DataReceived((object)null, (SerialDataReceivedEventArgs)null);
}
}
- catch (Exception ex) { Console.WriteLine("crash in comport reader "+ex.ToString()); } // cant exit unless told to
+ catch (Exception ex) { Console.WriteLine("crash in comport reader " + ex.ToString()); } // cant exit unless told to
}
Console.WriteLine("Comport thread close");
});
@@ -158,7 +159,8 @@ namespace ArdupilotMega
if (!line.Contains("\n"))
line = line + "\n";
}
- catch {
+ catch
+ {
line = comPort.ReadExisting();
//byte[] data = readline(comPort);
//line = Encoding.ASCII.GetString(data, 0, data.Length);
@@ -172,26 +174,26 @@ namespace ArdupilotMega
{
case serialstatus.Connecting:
- if (line.Contains("reset to FLY") || line.Contains("interactive setup"))
- {
- comPort.Write("logs\r");
- }
- if (line.Contains("logs"))
- {
- Regex regex2 = new Regex(@"^([0-9]+)", RegexOptions.IgnoreCase);
- if (regex2.IsMatch(line))
- {
- MatchCollection matchs = regex2.Matches(line);
- logcount = int.Parse(matchs[0].Groups[0].Value);
- genchkcombo(logcount);
- status = serialstatus.Done;
- }
- }
- if (line.Contains("No logs"))
+ if (line.Contains("reset to FLY") || line.Contains("interactive setup") || line.Contains("CLI:"))
+ {
+ comPort.Write("logs\r");
+ }
+ if (line.Contains("logs"))
+ {
+ Regex regex2 = new Regex(@"^([0-9]+)", RegexOptions.IgnoreCase);
+ if (regex2.IsMatch(line))
{
+ MatchCollection matchs = regex2.Matches(line);
+ logcount = int.Parse(matchs[0].Groups[0].Value);
+ genchkcombo(logcount);
status = serialstatus.Done;
}
-
+ }
+ if (line.Contains("No logs"))
+ {
+ status = serialstatus.Done;
+ }
+
break;
case serialstatus.Closefile:
sw.Close();
@@ -199,19 +201,25 @@ namespace ArdupilotMega
MainV2.cs.firmware = MainV2.Firmwares.ArduPlane;
+ TXT_seriallog.AppendText("Createing KML for " + logfile);
+
while (tr.Peek() != -1)
{
processLine(tr.ReadLine());
}
-
- tr.Close();
- writeKML(logfile + ".kml");
+ tr.Close();
+
+ try
+ {
+ writeKML(logfile + ".kml");
+ }
+ catch { } // usualy invalid lat long error
status = serialstatus.Done;
break;
case serialstatus.Createfile:
receivedbytes = 0;
- Directory.CreateDirectory(Path.GetDirectoryName(Application.ExecutablePath)+ Path.DirectorySeparatorChar +@"logs");
+ Directory.CreateDirectory(Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + @"logs");
logfile = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + @"logs" + Path.DirectorySeparatorChar + DateTime.Now.ToString("yyyy-MM-dd hh-mm") + " " + currentlog + ".log";
sw = new StreamWriter(logfile);
status = serialstatus.Waiting;
@@ -242,32 +250,32 @@ namespace ArdupilotMega
}
break;
}
- lock (thisLock)
+ lock (thisLock)
+ {
+ this.BeginInvoke((System.Threading.ThreadStart)delegate()
+ {
+
+ Console.Write(line);
+
+ TXT_seriallog.AppendText(line);
+
+ // auto scroll
+ if (TXT_seriallog.TextLength >= 10000)
{
- this.BeginInvoke((System.Threading.ThreadStart)delegate()
- {
-
- Console.Write(line);
-
- TXT_seriallog.AppendText(line);
-
- // auto scroll
- if (TXT_seriallog.TextLength >= 10000)
- {
- TXT_seriallog.Text = TXT_seriallog.Text.Substring(TXT_seriallog.TextLength / 2);
- }
-
- TXT_seriallog.SelectionStart = TXT_seriallog.Text.Length;
-
- TXT_seriallog.ScrollToCaret();
-
- TXT_seriallog.Refresh();
-
- });
-
-
-
+ TXT_seriallog.Text = TXT_seriallog.Text.Substring(TXT_seriallog.TextLength / 2);
}
+
+ TXT_seriallog.SelectionStart = TXT_seriallog.Text.Length;
+
+ TXT_seriallog.ScrollToCaret();
+
+ TXT_seriallog.Refresh();
+
+ });
+
+
+
+ }
}
Console.WriteLine("exit while");
@@ -286,17 +294,20 @@ namespace ArdupilotMega
{
try
{
+ Application.DoEvents();
+
line = line.Replace(", ", ",");
line = line.Replace(": ", ":");
- string[] items = line.Split(',',':');
+ string[] items = line.Split(',', ':');
- if (items[0].Contains("CMD")) {
+ if (items[0].Contains("CMD"))
+ {
if (flightdata.Count == 0)
{
if (int.Parse(items[2]) <= (int)MAVLink.MAV_CMD.LAST) // wps
{
- PointLatLngAlt temp = new PointLatLngAlt(double.Parse(items[5],new System.Globalization.CultureInfo("en-US")) / 10000000, double.Parse(items[6],new System.Globalization.CultureInfo("en-US")) / 10000000, double.Parse(items[4],new System.Globalization.CultureInfo("en-US")) / 100, items[1].ToString());
+ PointLatLngAlt temp = new PointLatLngAlt(double.Parse(items[5], new System.Globalization.CultureInfo("en-US")) / 10000000, double.Parse(items[6], new System.Globalization.CultureInfo("en-US")) / 10000000, double.Parse(items[4], new System.Globalization.CultureInfo("en-US")) / 100, items[1].ToString());
cmd.Add(temp);
}
}
@@ -305,7 +316,7 @@ namespace ArdupilotMega
{
positionindex++;
modelist.Add(""); // i cant be bothered doing this properly
- modelist.Add("");
+ modelist.Add("");
modelist[positionindex] = (items[1]);
}
if (items[0].Contains("GPS") && items[2] == "1" && items[4] != "0" && items[4] != "-1" && lastline != line) // check gps line and fixed status
@@ -317,9 +328,9 @@ namespace ArdupilotMega
if (items.Length == 11 && items[6] == "0.0000")
alt = double.Parse(items[7], new System.Globalization.CultureInfo("en-US"));
-
- position[positionindex].Add(new Point3D(double.Parse(items[5],new System.Globalization.CultureInfo("en-US")), double.Parse(items[4],new System.Globalization.CultureInfo("en-US")), alt));
+
+ position[positionindex].Add(new Point3D(double.Parse(items[5], new System.Globalization.CultureInfo("en-US")), double.Parse(items[4], new System.Globalization.CultureInfo("en-US")), alt));
oldlastpos = lastpos;
lastpos = (position[positionindex][position[positionindex].Count - 1]);
lastline = line;
@@ -355,23 +366,23 @@ namespace ArdupilotMega
{
if (lastpos.X != 0 && oldlastpos != lastpos)
{
- Data dat = new Data();
+ Data dat = new Data();
- runmodel = new Model();
+ runmodel = new Model();
- runmodel.Location.longitude = lastpos.X;
- runmodel.Location.latitude = lastpos.Y;
- runmodel.Location.altitude = lastpos.Z;
+ runmodel.Location.longitude = lastpos.X;
+ runmodel.Location.latitude = lastpos.Y;
+ runmodel.Location.altitude = lastpos.Z;
- runmodel.Orientation.roll = double.Parse(items[1], new System.Globalization.CultureInfo("en-US")) / -100;
- runmodel.Orientation.tilt = double.Parse(items[2], new System.Globalization.CultureInfo("en-US")) / -100;
- runmodel.Orientation.heading = double.Parse(items[3], new System.Globalization.CultureInfo("en-US")) / 100;
+ runmodel.Orientation.roll = double.Parse(items[1], new System.Globalization.CultureInfo("en-US")) / -100;
+ runmodel.Orientation.tilt = double.Parse(items[2], new System.Globalization.CultureInfo("en-US")) / -100;
+ runmodel.Orientation.heading = double.Parse(items[3], new System.Globalization.CultureInfo("en-US")) / 100;
- dat.model = runmodel;
- dat.ctun = ctunlast;
- dat.ntun = ntunlast;
+ dat.model = runmodel;
+ dat.ctun = ctunlast;
+ dat.ntun = ntunlast;
- flightdata.Add(dat);
+ flightdata.Add(dat);
}
}
catch { }
@@ -443,11 +454,11 @@ namespace ArdupilotMega
stylecode = colours[g % (colours.Length - 1)].ToArgb();
Style style2 = new Style();
- Color color = Color.FromArgb(0xff, (stylecode >> 16) & 0xff,(stylecode >> 8) & 0xff,(stylecode >> 0) & 0xff);
- Console.WriteLine("colour " + color.ToArgb().ToString("X") + " "+ color.ToKnownColor().ToString());
+ Color color = Color.FromArgb(0xff, (stylecode >> 16) & 0xff, (stylecode >> 8) & 0xff, (stylecode >> 0) & 0xff);
+ Console.WriteLine("colour " + color.ToArgb().ToString("X") + " " + color.ToKnownColor().ToString());
style2.Add(new LineStyle(color, 4));
-
+
pm.AddStyle(style2);
@@ -529,22 +540,27 @@ namespace ArdupilotMega
}
catch { }
- pmplane.Point = new KmlPoint((float)model.Location.longitude, (float)model.Location.latitude, (float)model.Location.altitude);
- pmplane.Point.AltitudeMode = altmode;
+ try
+ {
- Link link = new Link();
- link.href = "block_plane_0.dae";
+ pmplane.Point = new KmlPoint((float)model.Location.longitude, (float)model.Location.latitude, (float)model.Location.altitude);
+ pmplane.Point.AltitudeMode = altmode;
- model.Link = link;
+ Link link = new Link();
+ link.href = "block_plane_0.dae";
- pmplane.Model = model;
+ model.Link = link;
- planes.Add(pmplane);
+ pmplane.Model = model;
+
+ planes.Add(pmplane);
+ }
+ catch { } // bad lat long value
lastmodel = mod.model;
a++;
- }
+ }
kml.Document.Add(fldr);
@@ -552,7 +568,7 @@ namespace ArdupilotMega
// create kmz - aka zip file
- FileStream fs = File.Open(filename.Replace(".log.kml",".kmz"),FileMode.Create);
+ FileStream fs = File.Open(filename.Replace(".log.kml", ".kmz"), FileMode.Create);
ZipOutputStream zipStream = new ZipOutputStream(fs);
zipStream.SetLevel(9); //0-9, 9 being the highest level of compression
zipStream.UseZip64 = UseZip64.Off; // older zipfile
@@ -632,7 +648,7 @@ namespace ArdupilotMega
}
}
- private void downloadthread(int startlognum,int endlognum)
+ private void downloadthread(int startlognum, int endlognum)
{
for (int a = startlognum; a <= endlognum; a++)
{
@@ -642,8 +658,9 @@ namespace ArdupilotMega
System.Threading.Thread.Sleep(100);
comPort.Write(a.ToString() + "\r");
status = serialstatus.Createfile;
-
- while (status != serialstatus.Done) {
+
+ while (status != serialstatus.Done)
+ {
System.Threading.Thread.Sleep(100);
}
@@ -660,7 +677,7 @@ namespace ArdupilotMega
System.Threading.Thread.Sleep(500);
comPort.Write("dump ");
System.Threading.Thread.Sleep(100);
- comPort.Write(a.ToString()+"\r");
+ comPort.Write(a.ToString() + "\r");
status = serialstatus.Createfile;
while (status != serialstatus.Done)
@@ -687,6 +704,7 @@ namespace ArdupilotMega
System.Threading.Thread.Sleep(500);
comPort.Write("erase\r");
System.Threading.Thread.Sleep(100);
+ TXT_seriallog.AppendText("!!Allow 30 seconds for erase\n");
status = serialstatus.Done;
}
@@ -699,7 +717,7 @@ namespace ArdupilotMega
openFileDialog1.Multiselect = true;
try
{
- openFileDialog1.InitialDirectory = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + @"logs"+ Path.DirectorySeparatorChar ;
+ openFileDialog1.InitialDirectory = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + @"logs" + Path.DirectorySeparatorChar;
}
catch { } // incase dir doesnt exist
@@ -780,7 +798,7 @@ namespace ArdupilotMega
{
foreach (string logfile in openFileDialog1.FileNames)
{
- TXT_seriallog.AppendText("\n\nProcessing " + logfile+"\n");
+ TXT_seriallog.AppendText("\n\nProcessing " + logfile + "\n");
this.Refresh();
try
@@ -922,4 +940,4 @@ namespace ArdupilotMega
}
}
-}
+}
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/MainV2.cs b/Tools/ArdupilotMegaPlanner/MainV2.cs
index 95f2199f23..fc89344aea 100644
--- a/Tools/ArdupilotMegaPlanner/MainV2.cs
+++ b/Tools/ArdupilotMegaPlanner/MainV2.cs
@@ -321,6 +321,13 @@ namespace ArdupilotMega
RichTextBox txtr = (RichTextBox)ctl;
txtr.BorderStyle = BorderStyle.None;
}
+ else if (((Type)ctl.GetType()) == typeof(CheckedListBox))
+ {
+ ctl.BackColor = Color.FromArgb(0x43, 0x44, 0x45);
+ ctl.ForeColor = Color.White;
+ CheckedListBox txtr = (CheckedListBox)ctl;
+ txtr.BorderStyle = BorderStyle.None;
+ }
else if (((Type)ctl.GetType()) == typeof(TabPage))
{
ctl.BackColor = Color.FromArgb(0x26, 0x27, 0x28); //Color.FromArgb(0x43, 0x44, 0x45);
@@ -682,7 +689,7 @@ namespace ArdupilotMega
private void CMB_serialport_SelectedIndexChanged(object sender, EventArgs e)
{
comportname = CMB_serialport.Text;
- if (comportname == "UDP")
+ if (comportname == "UDP" || comportname == "TCP")
CMB_baudrate.Enabled = false;
else
CMB_baudrate.Enabled = true;
diff --git a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs
index 04800efbd9..f9d0b01b3a 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.83")]
+[assembly: AssemblyFileVersion("1.0.84")]
[assembly: NeutralResourcesLanguageAttribute("")]
diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application
index 408b405505..cb43d874f2 100644
--- a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application
+++ b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.application
@@ -11,7 +11,7 @@
- xG04b9X6TXBWirLuQOgI+3TR8H0=
+ sVd4w+f3LroCsyok5UsAi4Bq9eI=