diff --git a/3DRRadio/3DRRadio.csproj b/3DRRadio/3DRRadio.csproj
index 3551ef8d62..36f8749923 100644
--- a/3DRRadio/3DRRadio.csproj
+++ b/3DRRadio/3DRRadio.csproj
@@ -69,9 +69,11 @@
Linked\ArduinoSTK.cs
+ Component
Linked\ArduinoSTKv2.cs
+ Component
Linked\IArduinoComms.cs
diff --git a/ChangeLog.txt b/ChangeLog.txt
index 3b9da687eb..7edd4151fd 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,4 +1,12 @@
-* Mission Planner 1.2.90
+* Mission Planner 1.2.91
+fix non standard frame type
+add DF log download over mavlink
+fix DF to kml/gpx, using FMT now
+add more log sort criteria - 0 byte, and invalid/bad
+fix keyboard shortcuts
+bring the wizard out to play
+
+* Mission Planner 1.2.90
new df over mavlink
fix grid advanced button
remove arduino verbose logging
diff --git a/ExtLibs/Utilities/MissionPlanner.Utilities.csproj b/ExtLibs/Utilities/MissionPlanner.Utilities.csproj
index 3e2d76d65c..b0b4b32319 100644
--- a/ExtLibs/Utilities/MissionPlanner.Utilities.csproj
+++ b/ExtLibs/Utilities/MissionPlanner.Utilities.csproj
@@ -107,7 +107,6 @@
{7f7994ce-823f-4a04-bbea-d0a3808ff56d}
GeoUtility
- False
diff --git a/GCSViews/ConfigurationView/ConfigBatteryMonitoring.cs b/GCSViews/ConfigurationView/ConfigBatteryMonitoring.cs
index 58fd1b1f46..7778c534cf 100644
--- a/GCSViews/ConfigurationView/ConfigBatteryMonitoring.cs
+++ b/GCSViews/ConfigurationView/ConfigBatteryMonitoring.cs
@@ -222,7 +222,7 @@ private void CMB_batmonsensortype_SelectedIndexChanged(object sender, EventArgs
{
float maxvolt = 50f;
float maxamps = 90f;
- float mvpervolt = 100f;
+ float mvpervolt = 99f;
float mvperamp = 55.55f;
float topvolt = (maxvolt * mvpervolt) / 1000;
diff --git a/GCSViews/ConfigurationView/ConfigFrameType.cs b/GCSViews/ConfigurationView/ConfigFrameType.cs
index a75ad3a761..208d5beb0f 100644
--- a/GCSViews/ConfigurationView/ConfigFrameType.cs
+++ b/GCSViews/ConfigurationView/ConfigFrameType.cs
@@ -82,6 +82,12 @@ void DoChange(Frame frame)
radioButton_H.Checked = true;
SetFrameParam(frame);
break;
+ default:
+ radioButton_Plus.Checked = false;
+ radioButton_V.Checked = false;
+ radioButton_X.Checked = false;
+ radioButton_H.Checked = false;
+ break;
}
indochange = false;
}
diff --git a/GCSViews/FlightData.Designer.cs b/GCSViews/FlightData.Designer.cs
index f4e5b68d03..92fb56138d 100644
--- a/GCSViews/FlightData.Designer.cs
+++ b/GCSViews/FlightData.Designer.cs
@@ -8,8 +8,8 @@ private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FlightData));
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
this.contextMenuStripMap = new System.Windows.Forms.ContextMenuStrip(this.components);
this.goHereToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.flyToHereAltToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -93,6 +93,7 @@ private void InitializeComponent()
this.BUT_speed1_4 = new MissionPlanner.Controls.MyButton();
this.BUT_speed1_10 = new MissionPlanner.Controls.MyButton();
this.tablogbrowse = new System.Windows.Forms.TabPage();
+ this.BUT_DFMavlink = new MissionPlanner.Controls.MyButton();
this.but_dflogtokml = new MissionPlanner.Controls.MyButton();
this.but_bintolog = new MissionPlanner.Controls.MyButton();
this.BUT_matlab = new MissionPlanner.Controls.MyButton();
@@ -299,6 +300,8 @@ private void InitializeComponent()
this.hud1.heading = 0F;
this.hud1.hudcolor = System.Drawing.Color.White;
this.hud1.linkqualitygcs = 0F;
+ this.hud1.lowairspeed = false;
+ this.hud1.lowgroundspeed = false;
this.hud1.lowvoltagealert = false;
this.hud1.message = "";
this.hud1.messagetime = new System.DateTime(((long)(0)));
@@ -1325,6 +1328,7 @@ private void InitializeComponent()
//
// tablogbrowse
//
+ this.tablogbrowse.Controls.Add(this.BUT_DFMavlink);
this.tablogbrowse.Controls.Add(this.but_dflogtokml);
this.tablogbrowse.Controls.Add(this.but_bintolog);
this.tablogbrowse.Controls.Add(this.BUT_matlab);
@@ -1333,6 +1337,13 @@ private void InitializeComponent()
this.tablogbrowse.Name = "tablogbrowse";
this.tablogbrowse.UseVisualStyleBackColor = true;
//
+ // BUT_DFMavlink
+ //
+ resources.ApplyResources(this.BUT_DFMavlink, "BUT_DFMavlink");
+ this.BUT_DFMavlink.Name = "BUT_DFMavlink";
+ this.BUT_DFMavlink.UseVisualStyleBackColor = true;
+ this.BUT_DFMavlink.Click += new System.EventHandler(this.BUT_DFMavlink_Click);
+ //
// but_dflogtokml
//
resources.ApplyResources(this.but_dflogtokml, "but_dflogtokml");
@@ -1650,8 +1661,8 @@ private void InitializeComponent()
//
// dataGridViewImageColumn1
//
- dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.dataGridViewImageColumn1.DefaultCellStyle = dataGridViewCellStyle1;
+ dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+ this.dataGridViewImageColumn1.DefaultCellStyle = dataGridViewCellStyle5;
resources.ApplyResources(this.dataGridViewImageColumn1, "dataGridViewImageColumn1");
this.dataGridViewImageColumn1.Image = global::MissionPlanner.Properties.Resources.up;
this.dataGridViewImageColumn1.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Stretch;
@@ -1659,8 +1670,8 @@ private void InitializeComponent()
//
// dataGridViewImageColumn2
//
- dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.dataGridViewImageColumn2.DefaultCellStyle = dataGridViewCellStyle2;
+ dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+ this.dataGridViewImageColumn2.DefaultCellStyle = dataGridViewCellStyle6;
resources.ApplyResources(this.dataGridViewImageColumn2, "dataGridViewImageColumn2");
this.dataGridViewImageColumn2.Image = global::MissionPlanner.Properties.Resources.down;
this.dataGridViewImageColumn2.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Stretch;
@@ -1848,6 +1859,7 @@ private void InitializeComponent()
private Controls.WindDir windDir1;
private Controls.MyButton but_bintolog;
private Controls.MyButton but_dflogtokml;
+ private Controls.MyButton BUT_DFMavlink;
}
}
\ No newline at end of file
diff --git a/GCSViews/FlightData.cs b/GCSViews/FlightData.cs
index 8ee8e8a7e3..5bddf0f4af 100644
--- a/GCSViews/FlightData.cs
+++ b/GCSViews/FlightData.cs
@@ -3017,5 +3017,12 @@ private void but_dflogtokml_Click(object sender, EventArgs e)
}
}
}
+
+ private void BUT_DFMavlink_Click(object sender, EventArgs e)
+ {
+ var form = new Log.LogDownloadMavLink();
+
+ form.Show();
+ }
}
}
diff --git a/GCSViews/FlightData.resx b/GCSViews/FlightData.resx
index c1ba9a5e95..c84b2a8dc4 100644
--- a/GCSViews/FlightData.resx
+++ b/GCSViews/FlightData.resx
@@ -121,6 +121,15 @@
444, 17
+
+ 189, 136
+
+
+ contextMenuStripMap
+
+
+ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
188, 22
@@ -157,15 +166,6 @@
Set Home Here
-
- 189, 136
-
-
- contextMenuStripMap
-
-
- System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
Fill
@@ -191,42 +191,6 @@
714, 17
-
- 172, 22
-
-
- Record Hud to AVI
-
-
- 172, 22
-
-
- Stop Record
-
-
- 172, 22
-
-
- Set MJPEG source
-
-
- 172, 22
-
-
- Set Aspect Ratio
-
-
- 172, 22
-
-
- User Items
-
-
- 172, 22
-
-
- Russian Hud
-
173, 136
@@ -279,242 +243,1244 @@
True
-
- True
+
+ tableLayoutPanelQuick
-
- GrowAndShrink
+
+ System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 2
+
+ tabQuick
-
- 1162, 18
-
-
- Fill
+
+ 0
-
- 175, 105
+
+ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="quickView6" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="quickView5" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="quickView4" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="quickView3" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="quickView2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="quickView1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,50,Percent,50" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings>
-
- 100, 27
+
+ 4, 22
-
- 166, 46
+
+ 3, 3, 3, 3
-
- 10
+
+ 350, 160
-
- quickView6
+
+ 4
-
- MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+ Quick
-
- tableLayoutPanelQuick
+
+ tabQuick
-
- 0
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- Fill
+
+ tabControl1
-
- 3, 105
+
+ 0
-
- 100, 27
+
+ CMB_mountmode
-
- 166, 46
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 9
+
+ tabActions
-
- quickView5
+
+ 0
-
- MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+ BUT_mountmode
-
- tableLayoutPanelQuick
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
+
+ tabActions
+
+
1
-
- Fill
+
+ modifyandSetSpeed
-
- 175, 54
+
+ MissionPlanner.Controls.ModifyandSet, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
-
- 100, 27
+
+ tabActions
-
- 166, 45
+
+ 2
-
- 8
+
+ modifyandSetAlt
-
- quickView4
+
+ MissionPlanner.Controls.ModifyandSet, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
-
- MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+ tabActions
-
- tableLayoutPanelQuick
+
+ 3
-
- 2
+
+ BUT_ARM
-
- Fill
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- 3, 54
+
+ tabActions
-
- 100, 27
+
+ 4
-
- 166, 45
+
+ BUT_joystick
-
- 3
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- quickView3
+
+ tabActions
-
- MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+ 5
-
- tableLayoutPanelQuick
+
+ BUT_quickmanual
-
- 3
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- Fill
+
+ tabActions
-
- 175, 3
+
+ 6
-
- 100, 27
+
+ BUT_quickrtl
-
- 166, 45
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- 1
+
+ tabActions
-
- quickView2
+
+ 7
-
- MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+ BUT_quickauto
-
- tableLayoutPanelQuick
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- 4
+
+ tabActions
-
- Fill
+
+ 8
-
- 3, 3
+
+ CMB_setwp
-
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabActions
+
+
+ 9
+
+
+ BUT_setwp
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabActions
+
+
+ 10
+
+
+ CMB_modes
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabActions
+
+
+ 11
+
+
+ BUT_setmode
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabActions
+
+
+ 12
+
+
+ BUT_clear_track
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabActions
+
+
+ 13
+
+
+ CMB_action
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabActions
+
+
+ 14
+
+
+ BUT_Homealt
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabActions
+
+
+ 15
+
+
+ BUT_RAWSensor
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabActions
+
+
+ 16
+
+
+ BUTrestartmission
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabActions
+
+
+ 17
+
+
+ BUTactiondo
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabActions
+
+
+ 18
+
+
+ 4, 22
+
+
+ 350, 160
+
+
+ 2
+
+
+ Actions
+
+
+ tabActions
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabControl1
+
+
+ 1
+
+
+ Gvspeed
+
+
+ AGaugeApp.AGauge, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabGauges
+
+
+ 0
+
+
+ Gheading
+
+
+ MissionPlanner.Controls.HSI, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabGauges
+
+
+ 1
+
+
+ Galt
+
+
+ AGaugeApp.AGauge, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabGauges
+
+
+ 2
+
+
+ Gspeed
+
+
+ AGaugeApp.AGauge, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabGauges
+
+
+ 3
+
+
+ 4, 22
+
+
+ 3, 3, 3, 3
+
+
+ 350, 160
+
+
+ 0
+
+
+ Gauges
+
+
+ tabGauges
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabControl1
+
+
+ 2
+
+
+ True
+
+
+ 4, 22
+
+
+ 3, 3, 3, 3
+
+
+ 350, 160
+
+
+ 1
+
+
+ Status
+
+
+ tabStatus
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabControl1
+
+
+ 3
+
+
+ flowLayoutPanelServos
+
+
+ System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabServo
+
+
+ 0
+
+
+ 4, 22
+
+
+ 3, 3, 3, 3
+
+
+ 350, 160
+
+
+ 5
+
+
+ Servo
+
+
+ tabServo
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabControl1
+
+
+ 4
+
+
+ tableLayoutPaneltlogs
+
+
+ System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabTLogs
+
+
+ 0
+
+
+ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="BUT_loadtelem" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lbl_playbackspeed" Row="2" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lbl_logpercent" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="tracklog" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="LBL_logfn" Row="0" RowSpan="1" Column="1" ColumnSpan="2" /><Control Name="BUT_log2kml" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="BUT_playlog" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panel2" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Absolute,86,AutoSize,0,Absolute,41" /><Rows Styles="Absolute,30,Absolute,30,Absolute,51" /></TableLayoutSettings>
+
+
+ 4, 22
+
+
+ 350, 160
+
+
+ 3
+
+
+ Telemetry Logs
+
+
+ tabTLogs
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabControl1
+
+
+ 5
+
+
+ NoControl
+
+
+ 99, 35
+
+
+ 124, 35
+
+
+ 11
+
+
+ Download DataFlash Log Via Mavlink
+
+
+ BUT_DFMavlink
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tablogbrowse
+
+
+ 0
+
+
+ NoControl
+
+
+ 6, 35
+
+
+ 87, 35
+
+
+ 10
+
+
+ Create KML + gpx
+
+
+ but_dflogtokml
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tablogbrowse
+
+
+ 1
+
+
+ NoControl
+
+
+ 229, 6
+
+
+ 87, 23
+
+
+ 9
+
+
+ PX4 .Bin to .Log
+
+
+ but_bintolog
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tablogbrowse
+
+
+ 2
+
+
+ NoControl
+
+
+ 99, 6
+
+
+ 124, 23
+
+
+ 8
+
+
+ Create Matlab File
+
+
+ BUT_matlab
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tablogbrowse
+
+
+ 3
+
+
+ NoControl
+
+
+ 6, 6
+
+
+ 87, 23
+
+
+ 7
+
+
+ Review a Log
+
+
+ BUT_logbrowse
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tablogbrowse
+
+
+ 4
+
+
+ 4, 22
+
+
+ 3, 3, 3, 3
+
+
+ 350, 160
+
+
+ 6
+
+
+ DataFlash Logs
+
+
+ tablogbrowse
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabControl1
+
+
+ 6
+
+
+ checkBoxRedirectOutput
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabScripts
+
+
+ 0
+
+
+ BUT_edit_selected
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabScripts
+
+
+ 1
+
+
+ labelSelectedScript
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabScripts
+
+
+ 2
+
+
+ BUT_run_script
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabScripts
+
+
+ 3
+
+
+ BUT_abort_script
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabScripts
+
+
+ 4
+
+
+ labelScriptStatus
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabScripts
+
+
+ 5
+
+
+ BUT_select_script
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tabScripts
+
+
+ 6
+
+
+ 4, 22
+
+
+ 3, 3, 3, 3
+
+
+ 350, 160
+
+
+ 7
+
+
+ Scripts
+
+
+ tabScripts
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabControl1
+
+
+ 7
+
+
+ Fill
+
+
+ 0, 0
+
+
+ 0, 0
+
+
+ 358, 186
+
+
+ 84
+
+
+ tabControl1
+
+
+ System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ SubMainLeft.Panel2
+
+
+ 0
+
+
+ SubMainLeft.Panel2
+
+
+ System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ SubMainLeft
+
+
+ 1
+
+
+ 360, 461
+
+
+ 269
+
+
+ 0
+
+
+ SubMainLeft
+
+
+ System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ MainH.Panel1
+
+
+ 0
+
+
+ MainH.Panel1
+
+
+ System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ MainH
+
+
+ 0
+
+
+ 360
+
+
+ Single
+
+
+ 1
+
+
+ splitContainer1
+
+
+ System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tableMap
+
+
+ 0
+
+
+ panel1
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tableMap
+
+
+ 1
+
+
+ Fill
+
+
+ 0, 0
+
+
+ 2
+
+
+ 642, 459
+
+
+ 75
+
+
+ tableMap
+
+
+ System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ MainH.Panel2
+
+
+ 0
+
+
+ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="splitContainer1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panel1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Percent,100,Absolute,30,Absolute,20" /></TableLayoutSettings>
+
+
+ MainH.Panel2
+
+
+ System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ MainH
+
+
+ 1
+
+
+ 1008, 461
+
+
+ 360
+
+
+ 68
+
+
+ MainH
+
+
+ System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ 172, 22
+
+
+ Record Hud to AVI
+
+
+ 172, 22
+
+
+ Stop Record
+
+
+ 172, 22
+
+
+ Set MJPEG source
+
+
+ 172, 22
+
+
+ Set Aspect Ratio
+
+
+ 172, 22
+
+
+ User Items
+
+
+ 172, 22
+
+
+ Russian Hud
+
+
+ True
+
+
+ GrowAndShrink
+
+
+ 2
+
+
+ quickView6
+
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
+ 0
+
+
+ quickView5
+
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
+ 1
+
+
+ quickView4
+
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
+ 2
+
+
+ quickView3
+
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
+ 3
+
+
+ quickView2
+
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
+ 4
+
+
+ quickView1
+
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
+ 5
+
+
+ Fill
+
+
+ 3, 3
+
+
+ 3
+
+
+ 344, 154
+
+
+ 73
+
+
+ tableLayoutPanelQuick
+
+
+ System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabQuick
+
+
+ 0
+
+
+ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="quickView6" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="quickView5" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="quickView4" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="quickView3" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="quickView2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="quickView1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,50,Percent,50" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings>
+
+
+ 1162, 18
+
+
+ Fill
+
+
+ 175, 105
+
+
100, 27
-
- 166, 45
+
+ 166, 46
-
- 1
+
+ 10
-
- 617, 17
+
+ quickView6
+
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
+ 0
+
+
+ 1162, 18
-
- Double Click me to change
+
+ Fill
-
- quickView1
+
+ 3, 105
-
+
+ 100, 27
+
+
+ 166, 46
+
+
+ 9
+
+
+ quickView5
+
+
MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
+
tableLayoutPanelQuick
-
- 5
+
+ 1
-
+
Fill
-
- 3, 3
+
+ 175, 54
-
+
+ 100, 27
+
+
+ 166, 45
+
+
+ 8
+
+
+ quickView4
+
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
+ 2
+
+
+ Fill
+
+
+ 3, 54
+
+
+ 100, 27
+
+
+ 166, 45
+
+
3
-
- 344, 154
+
+ quickView3
-
- 73
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
+
tableLayoutPanelQuick
-
- System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 3
-
- tabQuick
+
+ Fill
-
- 0
+
+ 175, 3
-
- <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="quickView6" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="quickView5" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="quickView4" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="quickView3" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="quickView2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="quickView1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,50,Percent,50" /><Rows Styles="Percent,33,33333,Percent,33,33333,Percent,33,33333" /></TableLayoutSettings>
+
+ 100, 27
-
- 4, 22
+
+ 166, 45
-
- 3, 3, 3, 3
+
+ 1
-
- 350, 160
+
+ quickView2
-
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
4
-
- Quick
+
+ 617, 17
+
+
+ Fill
-
- tabQuick
+
+ 3, 3
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 100, 27
-
- tabControl1
+
+ 166, 45
-
- 0
+
+ 1
+
+
+ Double Click me to change
+
+
+ quickView1
+
+
+ MissionPlanner.Controls.QuickView, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPanelQuick
+
+
+ 5
4, 93
@@ -580,7 +1546,7 @@
modifyandSetSpeed
- MissionPlanner.Controls.ModifyandSet, MissionPlanner, Version=1.1.5078.35055, Culture=neutral, PublicKeyToken=null
+ MissionPlanner.Controls.ModifyandSet, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
tabActions
@@ -601,7 +1567,7 @@
modifyandSetAlt
- MissionPlanner.Controls.ModifyandSet, MissionPlanner, Version=1.1.5078.35055, Culture=neutral, PublicKeyToken=null
+ MissionPlanner.Controls.ModifyandSet, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
tabActions
@@ -1038,36 +2004,12 @@
18
-
- 4, 22
-
-
- 350, 160
-
-
- 2
-
-
- Actions
-
-
- tabActions
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabControl1
-
-
- 1
-
-
- Zoom
-
154, 57
+
+ Zoom
+
Microsoft Sans Serif, 9pt
@@ -1095,6 +2037,9 @@
0
+
+ 154, 57
+
Zoom
@@ -1185,68 +2130,119 @@
tabGauges
-
+
+ 3
+
+
+ True
+
+
+ servoOptions1
+
+
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
+
+
+ flowLayoutPanelServos
+
+
+ 0
+
+
+ servoOptions2
+
+
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
+
+
+ flowLayoutPanelServos
+
+
+ 1
+
+
+ servoOptions3
+
+
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
+
+
+ flowLayoutPanelServos
+
+
+ 2
+
+
+ servoOptions4
+
+
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
+
+
+ flowLayoutPanelServos
+
+
3
-
- 4, 22
+
+ servoOptions5
-
- 3, 3, 3, 3
+
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
-
- 350, 160
+
+ flowLayoutPanelServos
-
- 0
+
+ 4
-
- Gauges
+
+ servoOptions6
-
- tabGauges
+
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ flowLayoutPanelServos
-
- tabControl1
+
+ 5
-
- 2
+
+ servoOptions7
-
- True
+
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
-
- 4, 22
+
+ flowLayoutPanelServos
-
- 3, 3, 3, 3
+
+ 6
-
- 350, 160
+
+ Fill
-
- 1
+
+ 3, 3
-
- Status
+
+ 344, 154
-
- tabStatus
+
+ 0
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ flowLayoutPanelServos
-
- tabControl1
+
+ System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 3
+
+ tabServo
-
- True
+
+ 0
3, 3
@@ -1261,7 +2257,7 @@
servoOptions1
- MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5078.35055, Culture=neutral, PublicKeyToken=null
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
flowLayoutPanelServos
@@ -1282,7 +2278,7 @@
servoOptions2
- MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5078.35055, Culture=neutral, PublicKeyToken=null
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
flowLayoutPanelServos
@@ -1303,7 +2299,7 @@
servoOptions3
- MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5078.35055, Culture=neutral, PublicKeyToken=null
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
flowLayoutPanelServos
@@ -1324,7 +2320,7 @@
servoOptions4
- MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5078.35055, Culture=neutral, PublicKeyToken=null
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
flowLayoutPanelServos
@@ -1345,7 +2341,7 @@
servoOptions5
- MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5078.35055, Culture=neutral, PublicKeyToken=null
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
flowLayoutPanelServos
@@ -1366,7 +2362,7 @@
servoOptions6
- MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5078.35055, Culture=neutral, PublicKeyToken=null
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
flowLayoutPanelServos
@@ -1387,7 +2383,7 @@
servoOptions7
- MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5078.35055, Culture=neutral, PublicKeyToken=null
+ MissionPlanner.Controls.ServoOptions, MissionPlanner, Version=1.1.5103.18456, Culture=neutral, PublicKeyToken=null
flowLayoutPanelServos
@@ -1395,60 +2391,135 @@
6
-
- Fill
+
+ 3
-
- 3, 3
+
+ BUT_loadtelem
-
- 344, 154
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
+
+ tableLayoutPaneltlogs
+
+
0
-
- flowLayoutPanelServos
+
+ lbl_playbackspeed
-
- System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ MissionPlanner.Controls.MyLabel, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- tabServo
+
+ tableLayoutPaneltlogs
-
- 0
+
+ 1
-
- 4, 22
+
+ lbl_logpercent
-
- 3, 3, 3, 3
+
+ MissionPlanner.Controls.MyLabel, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- 350, 160
+
+ tableLayoutPaneltlogs
-
- 5
+
+ 2
-
- Servo
+
+ tracklog
-
- tabServo
+
+ System.Windows.Forms.TrackBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ tableLayoutPaneltlogs
-
- tabControl1
+
+ 3
-
+
+ LBL_logfn
+
+
+ MissionPlanner.Controls.MyLabel, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPaneltlogs
+
+
4
-
+
+ BUT_log2kml
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPaneltlogs
+
+
+ 5
+
+
+ BUT_playlog
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ tableLayoutPaneltlogs
+
+
+ 6
+
+
+ panel2
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tableLayoutPaneltlogs
+
+
+ 7
+
+
+ Fill
+
+
+ 0, 0
+
+
3
+
+ 350, 160
+
+
+ 81
+
+
+ tableLayoutPaneltlogs
+
+
+ System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabTLogs
+
+
+ 0
+
+
+ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="BUT_loadtelem" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lbl_playbackspeed" Row="2" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lbl_logpercent" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="tracklog" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="LBL_logfn" Row="0" RowSpan="1" Column="1" ColumnSpan="2" /><Control Name="BUT_log2kml" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="BUT_playlog" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panel2" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Absolute,86,AutoSize,0,Absolute,41" /><Rows Styles="Absolute,30,Absolute,30,Absolute,51" /></TableLayoutSettings>
+
NoControl
@@ -1638,53 +2709,17 @@
6
-
- True
-
-
- NoControl
-
-
- 90, 3
-
-
- 38, 13
-
-
- 84
-
-
- Speed
-
-
- label2
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- panel2
-
-
- 0
-
-
- Microsoft Sans Serif, 6.75pt
-
-
- NoControl
-
-
- 184, 23
+
+ label2
-
- 23, 20
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 83
+
+ panel2
-
- 10x
+
+ 0
BUT_speed10
@@ -1698,24 +2733,6 @@
1
-
- Microsoft Sans Serif, 6.75pt
-
-
- NoControl
-
-
- 155, 23
-
-
- 23, 20
-
-
- 82
-
-
- 5x
-
BUT_speed5
@@ -1728,24 +2745,6 @@
2
-
- Microsoft Sans Serif, 6.75pt
-
-
- NoControl
-
-
- 126, 23
-
-
- 23, 20
-
-
- 81
-
-
- 2x
-
BUT_speed2
@@ -1758,24 +2757,6 @@
3
-
- Microsoft Sans Serif, 6.75pt
-
-
- NoControl
-
-
- 97, 23
-
-
- 23, 20
-
-
- 80
-
-
- 1x
-
BUT_speed1
@@ -1788,24 +2769,6 @@
4
-
- Microsoft Sans Serif, 6.75pt
-
-
- NoControl
-
-
- 68, 23
-
-
- 23, 20
-
-
- 79
-
-
- 1/2
-
BUT_speed1_2
@@ -1818,24 +2781,6 @@
5
-
- Microsoft Sans Serif, 6.75pt
-
-
- NoControl
-
-
- 39, 23
-
-
- 23, 20
-
-
- 78
-
-
- 1/4
-
BUT_speed1_4
@@ -1848,24 +2793,6 @@
6
-
- Microsoft Sans Serif, 6.75pt
-
-
- NoControl
-
-
- 10, 23
-
-
- 23, 20
-
-
- 77
-
-
- 1/10
-
BUT_speed1_10
@@ -1902,194 +2829,245 @@
7
-
- Fill
+
+ True
-
- 0, 0
+
+ NoControl
-
- 3
+
+ 90, 3
-
- 350, 160
+
+ 38, 13
-
- 81
+
+ 84
-
- tableLayoutPaneltlogs
+
+ Speed
-
- System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ label2
-
- tabTLogs
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
+ panel2
+
+
0
-
- <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="BUT_loadtelem" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lbl_playbackspeed" Row="2" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lbl_logpercent" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="tracklog" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="LBL_logfn" Row="0" RowSpan="1" Column="1" ColumnSpan="2" /><Control Name="BUT_log2kml" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="BUT_playlog" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panel2" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Absolute,86,AutoSize,0,Absolute,41" /><Rows Styles="Absolute,30,Absolute,30,Absolute,51" /></TableLayoutSettings>
+
+ Microsoft Sans Serif, 6.75pt
-
- 4, 22
+
+ NoControl
-
- 350, 160
+
+ 184, 23
-
- 3
+
+ 23, 20
-
- Telemetry Logs
+
+ 83
-
- tabTLogs
+
+ 10x
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ BUT_speed10
-
- tabControl1
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- 5
+
+ panel2
-
+
+ 1
+
+
+ Microsoft Sans Serif, 6.75pt
+
+
NoControl
-
- 127, 76
+
+ 155, 23
-
- 87, 23
+
+ 23, 20
-
- 10
+
+ 82
-
- Create KML + gpx
+
+ 5x
-
- but_dflogtokml
+
+ BUT_speed5
-
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ panel2
+
+
+ 2
+
+
+ Microsoft Sans Serif, 6.75pt
+
+
+ NoControl
+
+
+ 126, 23
+
+
+ 23, 20
+
+
+ 81
+
+
+ 2x
+
+
+ BUT_speed2
+
+
MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- tablogbrowse
+
+ panel2
-
- 0
+
+ 3
-
+
+ Microsoft Sans Serif, 6.75pt
+
+
NoControl
-
- 220, 47
+
+ 97, 23
-
- 87, 23
+
+ 23, 20
-
- 9
+
+ 80
-
- Bin to Log
+
+ 1x
-
- but_bintolog
+
+ BUT_speed1
-
+
MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- tablogbrowse
+
+ panel2
-
- 1
+
+ 4
-
+
+ Microsoft Sans Serif, 6.75pt
+
+
NoControl
-
- 127, 47
+
+ 68, 23
-
- 87, 23
+
+ 23, 20
-
- 8
+
+ 79
-
- Create Matlab File
+
+ 1/2
-
- BUT_matlab
+
+ BUT_speed1_2
-
+
MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- tablogbrowse
+
+ panel2
-
- 2
+
+ 5
-
+
+ Microsoft Sans Serif, 6.75pt
+
+
NoControl
-
- 34, 47
+
+ 39, 23
-
- 87, 23
+
+ 23, 20
-
- 7
+
+ 78
-
- Log Browse
+
+ 1/4
-
- BUT_logbrowse
+
+ BUT_speed1_4
-
+
MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- tablogbrowse
+
+ panel2
-
- 3
+
+ 6
-
- 4, 22
+
+ Microsoft Sans Serif, 6.75pt
-
- 3, 3, 3, 3
+
+ NoControl
-
- 350, 160
+
+ 10, 23
-
- 6
+
+ 23, 20
-
- DataFlash Logs
+
+ 77
-
- tablogbrowse
+
+ 1/10
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ BUT_speed1_10
-
- tabControl1
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- 6
+
+ panel2
+
+
+ 7
True
@@ -2242,169 +3220,61 @@
4
- True
-
-
- NoControl
-
-
- 19, 10
-
-
- 160, 13
-
-
- 86
-
-
- Script Status: No Script Running
-
-
- labelScriptStatus
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabScripts
-
-
- 5
-
-
- NoControl
-
-
- 16, 80
-
-
- 71, 23
-
-
- 85
-
-
- Select Script
-
-
- BUT_select_script
-
-
- MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
-
- tabScripts
-
-
- 6
-
-
- 4, 22
-
-
- 3, 3, 3, 3
-
-
- 350, 160
-
-
- 7
-
-
- Scripts
-
-
- tabScripts
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabControl1
-
-
- 7
-
-
- Fill
-
-
- 0, 0
-
-
- 0, 0
-
-
- 358, 186
-
-
- 84
-
-
- tabControl1
-
-
- System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- SubMainLeft.Panel2
-
-
- 0
+ True
-
- SubMainLeft.Panel2
+
+ NoControl
-
- System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 19, 10
-
- SubMainLeft
+
+ 160, 13
-
- 1
+
+ 86
-
- 360, 461
+
+ Script Status: No Script Running
-
- 269
+
+ labelScriptStatus
-
- 0
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- SubMainLeft
+
+ tabScripts
-
- System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 5
-
- MainH.Panel1
+
+ NoControl
-
- 0
+
+ 16, 80
-
- MainH.Panel1
+
+ 71, 23
-
- System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 85
-
- MainH
+
+ Select Script
-
- 0
+
+ BUT_select_script
-
- 360
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-
- Single
+
+ tabScripts
-
- 1
+
+ 6
Fill
@@ -2437,7 +3307,7 @@
zg1
- ZedGraph.ZedGraphControl, ZedGraph, Version=5.1.5.16516, Culture=neutral, PublicKeyToken=null
+ ZedGraph.ZedGraphControl, ZedGraph, Version=5.1.5.14743, Culture=neutral, PublicKeyToken=null
splitContainer1.Panel1
@@ -2769,6 +3639,96 @@
0
+
+ 307, 17
+
+
+ coords1
+
+
+ MissionPlanner.Controls.Coords, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ panel1
+
+
+ 0
+
+
+ Zoomlevel
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 1
+
+
+ label1
+
+
+ MissionPlanner.Controls.MyLabel, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ panel1
+
+
+ 2
+
+
+ CHK_autopan
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 3
+
+
+ CB_tuning
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 4
+
+
+ Fill
+
+
+ 1, 428
+
+
+ 0, 0, 0, 0
+
+
+ 640, 30
+
+
+ 0
+
+
+ panel1
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tableMap
+
+
+ 1
+
7, 4
@@ -2919,99 +3879,12 @@
4
-
- Fill
-
-
- 1, 428
-
-
- 0, 0, 0, 0
-
-
- 640, 30
-
-
- 0
-
-
- panel1
-
-
- System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tableMap
-
-
- 1
-
-
- Fill
-
-
- 0, 0
-
-
- 2
-
-
- 642, 459
-
-
- 75
-
-
- tableMap
-
-
- System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- MainH.Panel2
-
-
- 0
-
-
- <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="splitContainer1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panel1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Percent,100,Absolute,30,Absolute,20" /></TableLayoutSettings>
-
-
- MainH.Panel2
-
-
- System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- MainH
-
-
- 1
-
-
- 1008, 461
-
-
- 360
-
-
- 68
-
-
- MainH
-
-
- System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 2
-
171, 17
+
+ 617, 17
+
891, 18
diff --git a/GlobalSuppressions.cs b/GlobalSuppressions.cs
deleted file mode 100644
index 5f108b19b3..0000000000
Binary files a/GlobalSuppressions.cs and /dev/null differ
diff --git a/Log/DFLog.cs b/Log/DFLog.cs
index dd37b5e161..930e60e867 100644
--- a/Log/DFLog.cs
+++ b/Log/DFLog.cs
@@ -82,11 +82,16 @@ public static List ReadLog(Stream fn)
Clear();
List answer = new List();
+ // current gps time
DateTime gpstime = DateTime.MinValue;
+ // last time of message
+ DateTime lasttime = DateTime.MinValue;
+ // first valid gpstime
+ DateTime gpsstarttime = DateTime.MinValue;
int lineno = 0;
int msoffset = 0;
- DateTime lasttime = DateTime.MinValue;
+
log.Info("loading log");
@@ -112,18 +117,21 @@ public static List ReadLog(Stream fn)
}
else if (line.StartsWith("GPS"))
{
- gpstime = GetTimeGPS(line);
- lasttime = gpstime;
+ // if (gpsstarttime == DateTime.MinValue)
+ {
+ gpsstarttime = GetTimeGPS(line);
+ lasttime = gpsstarttime;
- int indextimems = FindInArray(logformat["GPS"].FieldNames, "T");
+ int indextimems = FindInArray(logformat["GPS"].FieldNames, "T");
- if (indextimems != -1)
- {
- try
+ if (indextimems != -1)
{
- msoffset = int.Parse(items[indextimems]);
+ try
+ {
+ msoffset = int.Parse(items[indextimems]);
+ }
+ catch { }
}
- catch { }
}
}
@@ -139,7 +147,7 @@ public static List ReadLog(Stream fn)
if (line.StartsWith("GPS"))
{
- item.time = gpstime;
+ item.time = GetTimeGPS(line);
}
else
{
@@ -150,7 +158,7 @@ public static List ReadLog(Stream fn)
{
item.timems = int.Parse(items[indextimems]);
- item.time = gpstime.AddMilliseconds(item.timems - msoffset);
+ item.time = gpsstarttime.AddMilliseconds(item.timems - msoffset);
lasttime = item.time;
}
@@ -236,11 +244,11 @@ public static DateTime gpsTimeToTime(int week, double sec)
int leap = 16;
// not correct for leap seconds day days weeks seconds
- var basetime = new DateTime(1980, 1, 6, 0, 0, 0, DateTimeKind.Local);
+ var basetime = new DateTime(1980, 1, 6, 0, 0, 0, DateTimeKind.Utc);
basetime = basetime.AddDays(week * 7);
basetime = basetime.AddSeconds((sec - leap));
- return basetime;
+ return basetime.ToLocalTime();
}
public static int FindInArray(string[] array, string find)
diff --git a/Log/LogDownload.cs b/Log/LogDownload.cs
index bb030ef5f4..2eea40d785 100644
--- a/Log/LogDownload.cs
+++ b/Log/LogDownload.cs
@@ -169,7 +169,7 @@ private void Log_Load(object sender, EventArgs e)
} // cant exit unless told to
}
log.Info("Comport thread close");
- }) {Name = "comport reader", IsBackground = true };
+ }) { Name = "comport reader", IsBackground = true };
t11.Start();
// doesnt seem to work on mac
diff --git a/Log/LogDownloadMavLink.Designer.cs b/Log/LogDownloadMavLink.Designer.cs
new file mode 100644
index 0000000000..45307f3713
--- /dev/null
+++ b/Log/LogDownloadMavLink.Designer.cs
@@ -0,0 +1,135 @@
+namespace MissionPlanner.Log
+{
+ partial class LogDownloadMavLink
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LogDownloadMavLink));
+ this.TXT_seriallog = new System.Windows.Forms.TextBox();
+ this.BUT_DLall = new MissionPlanner.Controls.MyButton();
+ this.BUT_DLthese = new MissionPlanner.Controls.MyButton();
+ this.BUT_clearlogs = new MissionPlanner.Controls.MyButton();
+ this.CHK_logs = new System.Windows.Forms.CheckedListBox();
+ this.TXT_status = new System.Windows.Forms.TextBox();
+ this.BUT_redokml = new MissionPlanner.Controls.MyButton();
+ this.BUT_firstperson = new MissionPlanner.Controls.MyButton();
+ this.BUT_bintolog = new MissionPlanner.Controls.MyButton();
+ this.SuspendLayout();
+ //
+ // TXT_seriallog
+ //
+ resources.ApplyResources(this.TXT_seriallog, "TXT_seriallog");
+ this.TXT_seriallog.Name = "TXT_seriallog";
+ //
+ // BUT_DLall
+ //
+ resources.ApplyResources(this.BUT_DLall, "BUT_DLall");
+ this.BUT_DLall.Name = "BUT_DLall";
+ this.BUT_DLall.UseVisualStyleBackColor = true;
+ this.BUT_DLall.Click += new System.EventHandler(this.BUT_DLall_Click);
+ //
+ // BUT_DLthese
+ //
+ resources.ApplyResources(this.BUT_DLthese, "BUT_DLthese");
+ this.BUT_DLthese.Name = "BUT_DLthese";
+ this.BUT_DLthese.UseVisualStyleBackColor = true;
+ this.BUT_DLthese.Click += new System.EventHandler(this.BUT_DLthese_Click);
+ //
+ // BUT_clearlogs
+ //
+ resources.ApplyResources(this.BUT_clearlogs, "BUT_clearlogs");
+ this.BUT_clearlogs.Name = "BUT_clearlogs";
+ this.BUT_clearlogs.UseVisualStyleBackColor = true;
+ this.BUT_clearlogs.Click += new System.EventHandler(this.BUT_clearlogs_Click);
+ //
+ // CHK_logs
+ //
+ this.CHK_logs.CheckOnClick = true;
+ this.CHK_logs.FormattingEnabled = true;
+ resources.ApplyResources(this.CHK_logs, "CHK_logs");
+ this.CHK_logs.Name = "CHK_logs";
+ //
+ // TXT_status
+ //
+ resources.ApplyResources(this.TXT_status, "TXT_status");
+ this.TXT_status.ForeColor = System.Drawing.Color.Red;
+ this.TXT_status.Name = "TXT_status";
+ //
+ // BUT_redokml
+ //
+ resources.ApplyResources(this.BUT_redokml, "BUT_redokml");
+ this.BUT_redokml.Name = "BUT_redokml";
+ this.BUT_redokml.UseVisualStyleBackColor = true;
+ this.BUT_redokml.Click += new System.EventHandler(this.BUT_redokml_Click);
+ //
+ // BUT_firstperson
+ //
+ resources.ApplyResources(this.BUT_firstperson, "BUT_firstperson");
+ this.BUT_firstperson.Name = "BUT_firstperson";
+ this.BUT_firstperson.UseVisualStyleBackColor = true;
+ this.BUT_firstperson.Click += new System.EventHandler(this.BUT_firstperson_Click);
+ //
+ // BUT_bintolog
+ //
+ resources.ApplyResources(this.BUT_bintolog, "BUT_bintolog");
+ this.BUT_bintolog.Name = "BUT_bintolog";
+ this.BUT_bintolog.UseVisualStyleBackColor = true;
+ this.BUT_bintolog.Click += new System.EventHandler(this.BUT_bintolog_Click);
+ //
+ // LogDownloadMavLink
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.BUT_bintolog);
+ this.Controls.Add(this.BUT_firstperson);
+ this.Controls.Add(this.BUT_redokml);
+ this.Controls.Add(this.TXT_status);
+ this.Controls.Add(this.CHK_logs);
+ this.Controls.Add(this.BUT_clearlogs);
+ this.Controls.Add(this.BUT_DLthese);
+ this.Controls.Add(this.BUT_DLall);
+ this.Controls.Add(this.TXT_seriallog);
+ this.Name = "LogDownloadMavLink";
+ this.Load += new System.EventHandler(this.Log_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private Controls.MyButton BUT_DLall;
+ private Controls.MyButton BUT_DLthese;
+ private Controls.MyButton BUT_clearlogs;
+ private System.Windows.Forms.CheckedListBox CHK_logs;
+ private System.Windows.Forms.TextBox TXT_status;
+ private Controls.MyButton BUT_redokml;
+ private System.Windows.Forms.TextBox TXT_seriallog;
+ private Controls.MyButton BUT_firstperson;
+ private Controls.MyButton BUT_bintolog;
+ }
+}
\ No newline at end of file
diff --git a/Log/LogDownloadMavLink.cs b/Log/LogDownloadMavLink.cs
new file mode 100644
index 0000000000..9fc5824af9
--- /dev/null
+++ b/Log/LogDownloadMavLink.cs
@@ -0,0 +1,393 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Reflection;
+using System.Text;
+using System.Windows.Forms;
+using System.IO.Ports;
+using System.IO;
+using System.Text.RegularExpressions;
+using KMLib;
+using KMLib.Feature;
+using KMLib.Geometry;
+using Core.Geometry;
+using ICSharpCode.SharpZipLib.Zip;
+using ICSharpCode.SharpZipLib.Checksums;
+using ICSharpCode.SharpZipLib.Core;
+using log4net;
+using MissionPlanner.Comms;
+using MissionPlanner.Utilities;
+
+
+namespace MissionPlanner.Log
+{
+ public partial class LogDownloadMavLink : Form
+ {
+ private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ serialstatus status = serialstatus.Connecting;
+ int currentlog = 0;
+ string logfile = "";
+ int receivedbytes = 0;
+
+ //List orientation = new List();
+
+ Object thisLock = new Object();
+ DateTime start = DateTime.Now;
+
+ enum serialstatus
+ {
+ Connecting,
+ Createfile,
+ Closefile,
+ Reading,
+ Waiting,
+ Done
+ }
+
+ public LogDownloadMavLink()
+ {
+ InitializeComponent();
+
+ ThemeManager.ApplyThemeTo(this);
+ }
+
+ private void Log_Load(object sender, EventArgs e)
+ {
+ if (!MainV2.comPort.BaseStream.IsOpen)
+ {
+ this.Close();
+ CustomMessageBox.Show("Please Connect");
+ return;
+ }
+
+ var list = MainV2.comPort.GetLogList();
+
+ foreach (var item in list)
+ {
+ genchkcombo(item.id);
+ }
+
+ status = serialstatus.Done;
+ }
+
+ void genchkcombo(int logcount)
+ {
+ MethodInvoker m = delegate()
+ {
+ //CHK_logs.Items.Clear();
+ //for (int a = 1; a <= logcount; a++)
+ if (!CHK_logs.Items.Contains(logcount))
+ {
+ CHK_logs.Items.Add(logcount);
+ }
+ };
+ try
+ {
+ BeginInvoke(m);
+ }
+ catch
+ {
+ }
+ }
+
+ void updateDisplay()
+ {
+ if (start.Second != DateTime.Now.Second)
+ {
+ this.BeginInvoke((System.Windows.Forms.MethodInvoker)delegate()
+{
+ try
+ {
+
+ TXT_status.Text = status.ToString() + " " + receivedbytes;
+ }
+ catch { }
+});
+ start = DateTime.Now;
+ }
+ }
+
+ private void BUT_DLall_Click(object sender, EventArgs e)
+ {
+ if (status == serialstatus.Done)
+ {
+ if (CHK_logs.Items.Count == 0)
+ {
+ CustomMessageBox.Show("Nothing to download");
+ return;
+ }
+
+ System.Threading.Thread t11 = new System.Threading.Thread(delegate() { downloadthread(int.Parse(CHK_logs.Items[0].ToString()), int.Parse(CHK_logs.Items[CHK_logs.Items.Count - 1].ToString())); });
+ t11.Name = "Log Download All thread";
+ t11.Start();
+ }
+ }
+
+ string GetLog(ushort no)
+ {
+ MainV2.comPort.Progress += comPort_Progress;
+
+ status = serialstatus.Reading;
+
+ // get df log from mav
+ var ms = MainV2.comPort.GetLog(no);
+
+ status = serialstatus.Done;
+
+ MainV2.comPort.Progress -= comPort_Progress;
+
+ // set log fn
+ byte[] hbpacket = MainV2.comPort.getHeartBeat();
+
+ MAVLink.mavlink_heartbeat_t hb = (MAVLink.mavlink_heartbeat_t)MainV2.comPort.DebugPacket(hbpacket);
+
+ logfile = MainV2.LogDir + Path.DirectorySeparatorChar
+ + MainV2.comPort.MAV.aptype.ToString() + Path.DirectorySeparatorChar
+ + hbpacket[3] + Path.DirectorySeparatorChar + DateTime.Now.ToString("yyyy-MM-dd HH-mm") + " " + currentlog + ".bin";
+
+ // make log dir
+ Directory.CreateDirectory(Path.GetDirectoryName(logfile));
+
+ // save memorystream to file
+ using (BinaryWriter bw = new BinaryWriter(File.OpenWrite(logfile)))
+ {
+ bw.Write(ms.ToArray());
+ }
+
+ // read binary log to assci log
+ var temp1 = Log.BinaryLog.ReadLog(logfile);
+
+ // delete binary log file
+ //File.Delete(logfile);
+
+ logfile = logfile + ".log";
+
+ // write assci log
+ File.WriteAllLines(logfile, temp1);
+
+ // get gps time of assci log
+ DateTime logtime = DFLog.GetFirstGpsTime(logfile);
+
+ // rename log is we have a valid gps time
+ if (logtime != DateTime.MinValue)
+ {
+ string newlogfilename = MainV2.LogDir + Path.DirectorySeparatorChar
+ + MainV2.comPort.MAV.aptype.ToString() + Path.DirectorySeparatorChar
+ + hbpacket[3] + Path.DirectorySeparatorChar + logtime.ToString("yyyy-MM-dd HH-mm") + ".log";
+ File.Move(logfile, newlogfilename);
+ // rename bin as well
+ File.Move(logfile.Replace(".log", ""), newlogfilename.Replace(".log", ".bin"));
+ logfile = newlogfilename;
+ }
+
+ return logfile;
+ }
+
+ void comPort_Progress(int progress, string status)
+ {
+ receivedbytes = progress;
+ updateDisplay();
+ }
+
+ void CreateLog(string logfile)
+ {
+ TextReader tr = new StreamReader(logfile);
+ //
+
+ this.Invoke((System.Windows.Forms.MethodInvoker)delegate()
+ {
+ TXT_seriallog.AppendText("Creating KML for " + logfile);
+ });
+
+ LogOutput lo = new LogOutput();
+
+ while (tr.Peek() != -1)
+ {
+ lo.processLine(tr.ReadLine());
+ }
+
+ tr.Close();
+
+ try
+ {
+ lo.writeKML(logfile + ".kml");
+ }
+ catch { } // usualy invalid lat long error
+ status = serialstatus.Done;
+ }
+
+ private void downloadthread(int startlognum, int endlognum)
+ {
+ try
+ {
+ for (int a = startlognum; a <= endlognum; a++)
+ {
+ currentlog = a;
+
+ var logname = GetLog((ushort)a);
+
+ CreateLog(logname);
+ }
+
+ Console.Beep();
+ }
+ catch (Exception ex) { CustomMessageBox.Show(ex.Message, "Error in log " + currentlog); }
+ }
+
+ private void downloadsinglethread()
+ {
+ try
+ {
+ for (int i = 0; i < CHK_logs.CheckedItems.Count; ++i)
+ {
+ int a = (int)CHK_logs.CheckedItems[i];
+ {
+ currentlog = a;
+
+ var logname = GetLog((ushort)a);
+
+ CreateLog(logname);
+ }
+ }
+
+ Console.Beep();
+ }
+ catch (Exception ex) { CustomMessageBox.Show(ex.Message, "Error in log " + currentlog); }
+ }
+
+ private void BUT_DLthese_Click(object sender, EventArgs e)
+ {
+ if (status == serialstatus.Done)
+ {
+ System.Threading.Thread t11 = new System.Threading.Thread(delegate() { downloadsinglethread(); });
+ t11.Name = "Log download single thread";
+ t11.Start();
+ }
+ }
+
+ private void BUT_clearlogs_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ MainV2.comPort.EraseLog();
+ TXT_seriallog.AppendText("!!Allow 30-90 seconds for erase\n");
+ status = serialstatus.Done;
+ CHK_logs.Items.Clear();
+ }
+ catch (Exception ex) { CustomMessageBox.Show(ex.Message, "Error"); }
+ }
+
+ private void BUT_redokml_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog openFileDialog1 = new OpenFileDialog();
+ openFileDialog1.Filter = "*.log|*.log";
+ openFileDialog1.FilterIndex = 2;
+ openFileDialog1.RestoreDirectory = true;
+ openFileDialog1.Multiselect = true;
+ try
+ {
+ openFileDialog1.InitialDirectory = MainV2.LogDir + Path.DirectorySeparatorChar;
+ }
+ catch { } // incase dir doesnt exist
+
+ if (openFileDialog1.ShowDialog() == DialogResult.OK)
+ {
+ foreach (string logfile in openFileDialog1.FileNames)
+ {
+ TXT_seriallog.AppendText("\n\nProcessing " + logfile + "\n");
+ this.Refresh();
+ LogOutput lo = new LogOutput();
+ try
+ {
+ TextReader tr = new StreamReader(logfile);
+
+ while (tr.Peek() != -1)
+ {
+ lo.processLine(tr.ReadLine());
+ }
+
+ tr.Close();
+ }
+ catch (Exception ex) { CustomMessageBox.Show("Error processing file. Make sure the file is not in use.\n" + ex.ToString()); }
+
+ lo.writeKML(logfile + ".kml");
+
+ TXT_seriallog.AppendText("Done\n");
+ }
+ }
+ }
+
+
+ private void BUT_firstperson_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog openFileDialog1 = new OpenFileDialog();
+ openFileDialog1.Filter = "*.log|*.log";
+ openFileDialog1.FilterIndex = 2;
+ openFileDialog1.RestoreDirectory = true;
+ openFileDialog1.Multiselect = true;
+ try
+ {
+ openFileDialog1.InitialDirectory = MainV2.LogDir + Path.DirectorySeparatorChar;
+ }
+ catch { } // incase dir doesnt exist
+
+ if (openFileDialog1.ShowDialog() == DialogResult.OK)
+ {
+ foreach (string logfile in openFileDialog1.FileNames)
+ {
+ TXT_seriallog.AppendText("\n\nProcessing " + logfile + "\n");
+ this.Refresh();
+
+ LogOutput lo = new LogOutput();
+
+ try
+ {
+ TextReader tr = new StreamReader(logfile);
+
+ while (tr.Peek() != -1)
+ {
+ lo.processLine(tr.ReadLine());
+ }
+
+ tr.Close();
+ }
+ catch (Exception ex) { CustomMessageBox.Show("Error processing log. Is it still downloading? " + ex.Message); continue; }
+
+ lo.writeKMLFirstPerson(logfile + "-fp.kml");
+
+ TXT_seriallog.AppendText("Done\n");
+ }
+ }
+ }
+
+ private void BUT_bintolog_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog ofd = new OpenFileDialog();
+ ofd.Filter = "Binary Log|*.bin";
+
+ ofd.ShowDialog();
+
+ if (File.Exists(ofd.FileName))
+ {
+ List log = BinaryLog.ReadLog(ofd.FileName);
+
+ SaveFileDialog sfd = new SaveFileDialog();
+ sfd.Filter = "log|*.log";
+
+ DialogResult res = sfd.ShowDialog();
+
+ if (res == System.Windows.Forms.DialogResult.OK)
+ {
+ StreamWriter sw = new StreamWriter(sfd.OpenFile());
+ foreach (string line in log)
+ {
+ sw.Write(line);
+ }
+ sw.Close();
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Log/LogDownloadMavLink.de-DE.resx b/Log/LogDownloadMavLink.de-DE.resx
new file mode 100644
index 0000000000..9b937243a2
--- /dev/null
+++ b/Log/LogDownloadMavLink.de-DE.resx
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Log
+
+
+ Alle Log Dateien laden
+
+
+ KML wiederherstellen
+
+
+ Dieses Log herunterladen
+
+
+ Logs löschen
+
+
+ First Person KML
+
+
+ (adv) Dump All DF
+
+
\ No newline at end of file
diff --git a/Log/LogDownloadMavLink.es-ES.resx b/Log/LogDownloadMavLink.es-ES.resx
new file mode 100644
index 0000000000..0d2ef61e1a
--- /dev/null
+++ b/Log/LogDownloadMavLink.es-ES.resx
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Log
+
+
+ Descargar todos los Logs
+
+
+ Recrear KML
+
+
+ Descargar este Log
+
+
+ Limpiar Logs
+
+
+ KML Primera Persona
+
+
\ No newline at end of file
diff --git a/Log/LogDownloadMavLink.fr.resx b/Log/LogDownloadMavLink.fr.resx
new file mode 100644
index 0000000000..3615747aed
--- /dev/null
+++ b/Log/LogDownloadMavLink.fr.resx
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Journal
+
+
+ Charger les journaux
+
+
+ Récréer KML
+
+
+ Charger ces journaux
+
+
+ Effacer journaux
+
+
+ KML Première personne
+
+
+ (adv) Dump All DF
+
+
\ No newline at end of file
diff --git a/Log/LogDownloadMavLink.it-IT.resx b/Log/LogDownloadMavLink.it-IT.resx
new file mode 100644
index 0000000000..04496eafef
--- /dev/null
+++ b/Log/LogDownloadMavLink.it-IT.resx
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Log
+
+
+ Scarica tutti i Log
+
+
+ Ricrea KML
+
+
+ Scarica questi Log
+
+
+ Pulisci Log
+
+
+ KML in Prima Persona
+
+
\ No newline at end of file
diff --git a/Log/LogDownloadMavLink.pl.resx b/Log/LogDownloadMavLink.pl.resx
new file mode 100644
index 0000000000..e7771a400c
--- /dev/null
+++ b/Log/LogDownloadMavLink.pl.resx
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Log
+
+
+ Odczytaj wszystkie Logi
+
+
+ Stwórz ponownie KML
+
+
+ Odczytaj wybrane Logi
+
+
+ Wyczyść Logi
+
+
+ KML w pierwszej osobie (FPV)
+
+
\ No newline at end of file
diff --git a/Log/LogDownloadMavLink.resx b/Log/LogDownloadMavLink.resx
new file mode 100644
index 0000000000..90e0705102
--- /dev/null
+++ b/Log/LogDownloadMavLink.resx
@@ -0,0 +1,436 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Top, Bottom, Left, Right
+
+
+
+ 135, 43
+
+
+
+ True
+
+
+ 470, 352
+
+
+ 1
+
+
+ TXT_seriallog
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 8
+
+
+ 13, 13
+
+
+ 116, 23
+
+
+ 3
+
+
+ Download All Logs
+
+
+ BUT_DLall
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ $this
+
+
+ 7
+
+
+ 13, 43
+
+
+ 116, 23
+
+
+ 4
+
+
+ Download These Log
+
+
+ BUT_DLthese
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ $this
+
+
+ 6
+
+
+ 13, 187
+
+
+ 116, 23
+
+
+ 5
+
+
+ Clear Logs
+
+
+ BUT_clearlogs
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ $this
+
+
+ 5
+
+
+ 13, 72
+
+
+ 116, 109
+
+
+ 6
+
+
+ CHK_logs
+
+
+ System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 4
+
+
+ False
+
+
+ 13, 217
+
+
+ 116, 20
+
+
+ 7
+
+
+ TXT_status
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ 13, 311
+
+
+ 116, 23
+
+
+ 8
+
+
+ Recreate KML
+
+
+ BUT_redokml
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ $this
+
+
+ 2
+
+
+ 13, 282
+
+
+ 116, 23
+
+
+ 9
+
+
+ First Person KML
+
+
+ BUT_firstperson
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ $this
+
+
+ 1
+
+
+ NoControl
+
+
+ 12, 340
+
+
+ 116, 23
+
+
+ 11
+
+
+ .bin to .log
+
+
+ BUT_bintolog
+
+
+ MissionPlanner.Controls.MyButton, MissionPlanner.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ $this
+
+
+ 0
+
+
+ True
+
+
+ 6, 13
+
+
+ 617, 407
+
+
+
+ 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=
+
+
+
+ Log
+
+
+ LogDownloadMavLink
+
+
+ System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Log/LogDownloadMavLink.zh-Hans.resx b/Log/LogDownloadMavLink.zh-Hans.resx
new file mode 100644
index 0000000000..0f28782265
--- /dev/null
+++ b/Log/LogDownloadMavLink.zh-Hans.resx
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 下载所有记录
+
+
+ 下载选中记录
+
+
+ 清空记录
+
+
+ 重建 KML
+
+
+ 第一人称 KML
+
+
+
+
+ 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=
+
+
+
+ 记录
+
+
\ No newline at end of file
diff --git a/Log/LogDownloadMavLink.zh-TW.resx b/Log/LogDownloadMavLink.zh-TW.resx
new file mode 100644
index 0000000000..f80f2041ee
--- /dev/null
+++ b/Log/LogDownloadMavLink.zh-TW.resx
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 下載所有記錄
+
+
+ 下載選中記錄
+
+
+ 清空記錄
+
+
+ 重建 KML
+
+
+ 第一人稱 KML
+
+
+
+
+ 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=
+
+
+
+ 記錄
+
+
\ No newline at end of file
diff --git a/Log/LogOutput.cs b/Log/LogOutput.cs
index 4d38bde23b..fe1e8fe5b9 100644
--- a/Log/LogOutput.cs
+++ b/Log/LogOutput.cs
@@ -55,6 +55,9 @@ public void processLine(string line)
if ((doevent % 10) == 0)
Application.DoEvents();
+ if (line.Length == 0)
+ return;
+
DateTime start = DateTime.Now;
if (line.ToLower().Contains("ArduCopter"))
@@ -78,8 +81,8 @@ public void processLine(string line)
DFLog.FMTLine(line);
}
catch { }
- } else
- if (items[0].Contains("CMD"))
+ }
+ else if (items[0].Contains("CMD"))
{
if (flightdata.Count == 0)
{
@@ -90,8 +93,7 @@ public void processLine(string line)
}
}
}
- else
- if (items[0].Contains("MOD"))
+ else if (items[0].Contains("MOD"))
{
positionindex++;
@@ -107,9 +109,30 @@ public void processLine(string line)
modelist[positionindex] = (items[1]);
}
}
- else
- //GPS, 1, 15691, 10, 0.00, -35.3629379, 149.1650850, -0.08, 585.41, 0.00, 126.89
- if (items[0].Contains("GPS") && items[2] == "1" && items[4] != "0" && items[4] != "-1" && lastline != line) // check gps line and fixed status
+ else if (items[0].Contains("GPS") && DFLog.logformat.ContainsKey("GPS"))
+ {
+ if (items[DFLog.FindInArray(DFLog.logformat["GPS"].FieldNames, "Status")] != "3")
+ return;
+
+ if (position[positionindex] == null)
+ position[positionindex] = new List();
+
+ // if (double.Parse(items[4], new System.Globalization.CultureInfo("en-US")) == 0)
+ // return;
+
+ // 7 agl
+ // 8 asl...
+ double alt = double.Parse(items[DFLog.FindInArray(DFLog.logformat["GPS"].FieldNames, "Alt")], new System.Globalization.CultureInfo("en-US"));
+
+ position[positionindex].Add(new Point3D(double.Parse(items[DFLog.FindInArray(DFLog.logformat["GPS"].FieldNames, "Lng")],
+ new System.Globalization.CultureInfo("en-US")),
+ double.Parse(items[DFLog.FindInArray(DFLog.logformat["GPS"].FieldNames, "Lat")],
+ new System.Globalization.CultureInfo("en-US")), alt));
+ oldlastpos = lastpos;
+ lastpos = (position[positionindex][position[positionindex].Count - 1]);
+ lastline = line;
+ }
+ else if (items[0].Contains("GPS") && items[2] == "1" && items[4] != "0" && items[4] != "-1" && lastline != line) // check gps line and fixed status
{
MainV2.comPort.MAV.cs.firmware = MainV2.Firmwares.ArduPlane;
@@ -132,8 +155,7 @@ public void processLine(string line)
lastpos = (position[positionindex][position[positionindex].Count - 1]);
lastline = line;
}
- else
- if (items[0].Contains("GPS") && items[4] != "0" && items[4] != "-1" && items.Length <= 9) // AC
+ else if (items[0].Contains("GPS") && items[4] != "0" && items[4] != "-1" && items.Length <= 9) // AC
{
MainV2.comPort.MAV.cs.firmware = MainV2.Firmwares.ArduCopter2;
@@ -151,11 +173,8 @@ public void processLine(string line)
lastline = line;
}
- else
- //FMT, 130, 37, GPS, BIHBcLLeeEe, Status,TimeMS,Week,NSats,HDop,Lat,Lng,RelAlt,Alt,Spd,GCrs
- //GPS, 3, 14716600, 1764, 9, 2.15, 36.3242566, 138.6393205, -0.04, 940.95, 0.02, 138.00
- if ((items[0].Contains("GPS") && items[1] == "3" && items[6] != "0" && items[6] != "-1" && lastline != line && items.Length == 12) ||
- (items[0].Contains("GPS") && items[1] == "3" && items[6] != "0" && items[6] != "-1" && lastline != line && items.Length == 14))
+ else if ((items[0].Contains("GPS") && items[1] == "3" && items[6] != "0" && items[6] != "-1" && lastline != line && items.Length == 12) ||
+ (items[0].Contains("GPS") && items[1] == "3" && items[6] != "0" && items[6] != "-1" && lastline != line && items.Length == 14))
{
if (position[positionindex] == null)
position[positionindex] = new List();
@@ -172,9 +191,7 @@ public void processLine(string line)
lastpos = (position[positionindex][position[positionindex].Count - 1]);
lastline = line;
}
- else
- //GPS, 1, 15691, 10, 0.00, -35.3629379, 149.1650850, -0.08, 585.41, 0.00, 126.89
- if (items[0].Contains("GPS") && items[1] == "3" && items[4] != "0" && items[4] != "-1" && lastline != line && items.Length == 11) // check gps line and fixed status
+ else if (items[0].Contains("GPS") && items[1] == "3" && items[4] != "0" && items[4] != "-1" && lastline != line && items.Length == 11) // check gps line and fixed status
{
if (position[positionindex] == null)
position[positionindex] = new List();
@@ -191,13 +208,11 @@ public void processLine(string line)
lastpos = (position[positionindex][position[positionindex].Count - 1]);
lastline = line;
}
- else
- if (items[0].Contains("CTUN"))
+ else if (items[0].Contains("CTUN"))
{
ctunlast = items;
}
- else
- if (items[0].Contains("NTUN"))
+ else if (items[0].Contains("NTUN"))
{
ntunlast = items;
try
@@ -207,8 +222,7 @@ public void processLine(string line)
}
catch { }
}
- else
- if (items[0].Contains("ATT"))
+ else if (items[0].Contains("ATT"))
{
try
{
@@ -230,9 +244,9 @@ public void processLine(string line)
oldlastpos = lastpos;
- runmodel.Orientation.roll = double.Parse(items[DFLog.FindInArray(DFLog.logformat["ATT"].FieldNames,"Roll")], new System.Globalization.CultureInfo("en-US")) / -1;
- runmodel.Orientation.tilt = double.Parse(items[DFLog.FindInArray(DFLog.logformat["ATT"].FieldNames,"Pitch")], new System.Globalization.CultureInfo("en-US")) / -1;
- runmodel.Orientation.heading = double.Parse(items[DFLog.FindInArray(DFLog.logformat["ATT"].FieldNames,"Yaw")], new System.Globalization.CultureInfo("en-US")) / 1;
+ runmodel.Orientation.roll = double.Parse(items[DFLog.FindInArray(DFLog.logformat["ATT"].FieldNames, "Roll")], new System.Globalization.CultureInfo("en-US")) / -1;
+ runmodel.Orientation.tilt = double.Parse(items[DFLog.FindInArray(DFLog.logformat["ATT"].FieldNames, "Pitch")], new System.Globalization.CultureInfo("en-US")) / -1;
+ runmodel.Orientation.heading = double.Parse(items[DFLog.FindInArray(DFLog.logformat["ATT"].FieldNames, "Yaw")], new System.Globalization.CultureInfo("en-US")) / 1;
dat.model = runmodel;
dat.ctun = ctunlast;
diff --git a/Log/LogSort.cs b/Log/LogSort.cs
index b1cdbf8982..8ff40dce2f 100644
--- a/Log/LogSort.cs
+++ b/Log/LogSort.cs
@@ -14,6 +14,16 @@ public static void SortLogs(string[] logs)
{
FileInfo info = new FileInfo(logfile);
+ if (info.Length == 0)
+ {
+ try
+ {
+ File.Delete(logfile);
+ }
+ catch { }
+ continue;
+ }
+
if (info.Length <= 1024)
{
try
@@ -42,7 +52,16 @@ public static void SortLogs(string[] logs)
byte[] hbpacket = mine.getHeartBeat();
if (hbpacket.Length == 0)
+ {
+ mine.logreadmode = false;
+ mine.logplaybackfile.Close();
+
+ if (!Directory.Exists(Path.GetDirectoryName(logfile) + Path.DirectorySeparatorChar + "BAD"))
+ Directory.CreateDirectory(Path.GetDirectoryName(logfile) + Path.DirectorySeparatorChar + "BAD");
+
+ File.Move(logfile, Path.GetDirectoryName(logfile) + Path.DirectorySeparatorChar + "BAD" + Path.DirectorySeparatorChar + Path.GetFileName(logfile));
continue;
+ }
MAVLink.mavlink_heartbeat_t hb = (MAVLink.mavlink_heartbeat_t)mine.DebugPacket(hbpacket);
diff --git a/MainV2.cs b/MainV2.cs
index 849ce4fc6f..965bc8b716 100644
--- a/MainV2.cs
+++ b/MainV2.cs
@@ -1633,7 +1633,7 @@ private void MainV2_Load(object sender, EventArgs e)
}
catch { }
-/*
+
if (getConfig("newuser") == "")
{
if (CustomMessageBox.Show("This is your first run, Do you wish to use the setup wizard?\nRecomended for new users.", "Wizard", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
@@ -1651,7 +1651,7 @@ private void MainV2_Load(object sender, EventArgs e)
config["newuser"] = DateTime.Now.ToShortDateString();
}
-*/
+
}
private void checkupdate(object stuff)
@@ -2106,7 +2106,9 @@ void AutoHideMenu(bool hide)
private void MainV2_KeyDown(object sender, KeyEventArgs e)
{
- Console.WriteLine(e.ToString());
+ Message temp = new Message();
+ ProcessCmdKey(ref temp, e.KeyData);
+ Console.WriteLine("MainV2_KeyDown " + e.ToString());
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
diff --git a/Mavlink/MAVLink.cs b/Mavlink/MAVLink.cs
index c57cd5aaf7..56f6ca1e55 100644
--- a/Mavlink/MAVLink.cs
+++ b/Mavlink/MAVLink.cs
@@ -16,6 +16,7 @@
using MissionPlanner.Comms;
using MissionPlanner.Utilities;
using System.Windows.Forms;
+using MissionPlanner.HIL;
namespace MissionPlanner
{
@@ -39,6 +40,8 @@ public class MAVLinkInterface: MAVLink, IDisposable
internal string plaintxtline = "";
string buildplaintxtline = "";
+ public event ProgressEventHandler Progress;
+
public MAVState MAV = new MAVState();
public class MAVState
@@ -2653,8 +2656,15 @@ public MemoryStream GetLog(ushort no)
giveComport = true;
byte[] buffer;
+ if (Progress != null)
+ {
+ Progress((int)0, "");
+ }
+
uint ofs = 0;
uint count = 90;
+ uint bps = 0;
+ DateTime bpstimer = DateTime.Now;
mavlink_log_request_data_t req = new mavlink_log_request_data_t();
@@ -2697,11 +2707,18 @@ public MemoryStream GetLog(ushort no)
var data = buffer.ByteArrayToStructure();
+ bps += data.count;
+
ms.Seek((long)data.ofs, SeekOrigin.Begin);
ms.Write(data.data, 0, data.count);
if (data.count < count || data.count == 0)
{
+ if (Progress != null)
+ {
+ Progress((int)req.ofs, "");
+ }
+
giveComport = false;
return ms;
}
@@ -2710,6 +2727,18 @@ public MemoryStream GetLog(ushort no)
if (data.ofs < req.ofs)
continue;
+ if (Progress != null)
+ {
+ Progress((int)req.ofs,"");
+ }
+
+ if (bpstimer.Second != DateTime.Now.Second)
+ {
+ Console.WriteLine("log dl bps: "+ bps.ToString());
+ bpstimer = DateTime.Now;
+ bps = 0;
+ }
+
req.ofs = data.ofs + data.count;
Console.WriteLine("req "+ req.ofs + " " + req.count);
generatePacket((byte)MAVLINK_MSG_ID.LOG_REQUEST_DATA, req);
@@ -2717,9 +2746,6 @@ public MemoryStream GetLog(ushort no)
}
}
}
-
- giveComport = false;
- return null;
}
public List GetLogList()
@@ -2789,7 +2815,14 @@ public mavlink_log_entry_t GetLogEntry(ushort startno = 0, ushort endno = ushort
public void EraseLog()
{
+ mavlink_log_erase_t req = new mavlink_log_erase_t();
+
+ req.target_component = MAV.compid;
+ req.target_system = MAV.sysid;
+ // send twice - we have no feedback on this
+ generatePacket((byte)MAVLINK_MSG_ID.LOG_ERASE, req);
+ generatePacket((byte)MAVLINK_MSG_ID.LOG_ERASE, req);
}
public List getRallyPoints()
diff --git a/MissionPlanner.csproj b/MissionPlanner.csproj
index 0cd4ccf8ae..5547725d4a 100644
--- a/MissionPlanner.csproj
+++ b/MissionPlanner.csproj
@@ -271,8 +271,12 @@
-
-
+
+ Component
+
+
+ Component
+
@@ -330,6 +334,12 @@
Command.cs
+
+ Form
+
+
+ LogDownloadMavLink.cs
+
Form
@@ -348,7 +358,9 @@
ConfigCameraStab.cs
-
+
+ UserControl
+
ConfigFrameType.cs
@@ -364,7 +376,9 @@
ConfigOptional.cs
-
+
+ UserControl
+
ConfigSimplePids.cs
@@ -404,11 +418,15 @@
ConfigHelp.cs
-
+
+ UserControl
+
InitialSetup.cs
-
+
+ UserControl
+
SoftwareConfig.cs
@@ -516,63 +534,93 @@
-
+
+ UserControl
+
1Intro.cs
-
+
+ UserControl
+
2FrameFW.cs
-
+
+ UserControl
+
3ConnectAP.cs
-
+
+ UserControl
+
4FrameType.cs
-
+
+ UserControl
+
5AccelCalib.cs
-
+
+ UserControl
+
6CompassCalib.cs
-
+
+ UserControl
+
7BatteryMonitor.cs
-
+
+ UserControl
+
8OptionalItemsAC.cs
-
+
+ UserControl
+
8OptionalItemsAP.cs
-
+
+ UserControl
+
9RadioCalibration.cs
-
+
+ UserControl
+
10FlightModes.cs
-
+
+ UserControl
+
11Verify.cs
-
+
+ UserControl
+
12FailSafe.cs
-
+
+ UserControl
+
13GeoFence.cs
-
+
+ UserControl
+
98DontForget.cs
@@ -612,6 +660,31 @@
Command.cs
+
+ LogDownloadMavLink.cs
+
+
+ LogDownloadMavLink.cs
+
+
+ LogDownloadMavLink.cs
+
+
+ LogDownloadMavLink.cs
+
+
+ LogDownloadMavLink.cs
+
+
+ LogDownloadMavLink.cs
+ Designer
+
+
+ LogDownloadMavLink.cs
+
+
+ LogDownloadMavLink.cs
+
MovingBase.cs
@@ -912,7 +985,9 @@
-
+
+ UserControl
+
Form
@@ -1100,11 +1175,15 @@
RAW_Sensor.cs
-
+
+ UserControl
+
Help.cs
-
+
+ UserControl
+
Terminal.cs
@@ -1114,10 +1193,18 @@
MainV2.cs
-
-
-
-
+
+ UserControl
+
+
+ UserControl
+
+
+ UserControl
+
+
+ UserControl
+
Simulation.cs
diff --git a/MissionPlanner.sh b/MissionPlanner.sh
new file mode 100644
index 0000000000..e63e6c9b11
--- /dev/null
+++ b/MissionPlanner.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+mono MissionPlanner.exe
\ No newline at end of file
diff --git a/Msi/wix.exe b/Msi/wix.exe
index e170b39722..0d784bf70f 100755
Binary files a/Msi/wix.exe and b/Msi/wix.exe differ
diff --git a/Program.cs b/Program.cs
index 06be3f6187..c785032031 100644
--- a/Program.cs
+++ b/Program.cs
@@ -169,9 +169,9 @@ public static void Main(string[] args)
// return;
- //Utilities.GitHubContent.GetDirContent("diydrones", "ardupilot", "/Tools/Frame_params/");
+ Utilities.GitHubContent.GetDirContent("diydrones", "ardupilot", "/Tools/Frame_params");
- //Utilities.GitHubContent.GetFileContent("diydrones", "ardupilot", "/Tools/Frame_params/Iris.param");
+ Utilities.GitHubContent.GetFileContent("diydrones", "ardupilot", "/Tools/Frame_params/Iris.param");
// ParameterMetaDataParser.GetParameterInformation();
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
index b03bf58fbc..5baf987054 100644
--- a/Properties/AssemblyInfo.cs
+++ b/Properties/AssemblyInfo.cs
@@ -34,5 +34,5 @@
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.1.*")]
-[assembly: AssemblyFileVersion("1.2.90.1")]
+[assembly: AssemblyFileVersion("1.2.91")]
[assembly: NeutralResourcesLanguageAttribute("")]
diff --git a/Utilities/GitHubContent.cs b/Utilities/GitHubContent.cs
index cbd1b56847..1e0a7dc635 100644
--- a/Utilities/GitHubContent.cs
+++ b/Utilities/GitHubContent.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Net;
using System.Text;
@@ -51,12 +52,24 @@ public static List GetDirContent(string owner, string repo, string pat
path = "/contents" + path;
}
+ path = path.TrimEnd('/','\\');
+
List answer = new List();
string url = String.Format("{0}/{1}/{2}{3}",githubapiurl, owner, repo, path);
- WebClient wc = new WebClient();
- string content = wc.DownloadString(url);
+ WebRequest wr = WebRequest.Create(url);
+ ((HttpWebRequest)wr).AllowAutoRedirect = true;
+ ((HttpWebRequest)wr).UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
+ var responce = wr.GetResponse();
+ var respstream = responce.GetResponseStream();
+
+ string content = new StreamReader(respstream).ReadToEnd();
+
+ respstream.Close();
+
+ //WebClient wc = new WebClient();
+ //string content = wc.DownloadString(url);
var output = fastJSON.JSON.Instance.ToObject