APM Planner 1.1.60

add stab kd ch6
fix mono/linux serial port list
This commit is contained in:
Michael Oborne 2012-04-04 06:58:45 +08:00
parent 1450c3f5af
commit eecadef7dc
32 changed files with 1202 additions and 96 deletions

4
.gitignore vendored
View File

@ -17,6 +17,8 @@ build
/Tools/ArdupilotMegaPlanner/obj
/Tools/ArdupilotMegaPlanner/resedit/bin
/Tools/ArdupilotMegaPlanner/resedit/obj
/Tools/ArdupilotMegaPlanner/wix/bin
/Tools/ArdupilotMegaPlanner/wix/obj
tags
*.o
.*.swp
@ -24,3 +26,5 @@ tags
mav.log
mav.log.raw
status.txt
/Tools/ArdupilotMegaPlanner/Msi/upload.bat

View File

@ -80,7 +80,7 @@
<ManifestKeyFile>ArdupilotMega_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
<GenerateManifests>false</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>false</SignManifests>
@ -297,7 +297,7 @@
<DependentUpon>ConfigTradHeli.cs</DependentUpon>
</Compile>
<Compile Include="GCSViews\ConfigurationView\Configuration.cs">
<SubType>UserControl</SubType>
<SubType>Form</SubType>
</Compile>
<Compile Include="GCSViews\ConfigurationView\Configuration.Designer.cs">
<DependentUpon>Configuration.cs</DependentUpon>
@ -939,6 +939,8 @@
</None>
<None Include="MAC\Info.plist" />
<None Include="MAC\run.sh" />
<None Include="Msi\installer.bat" />
<None Include="Msi\installer.wxs" />
<None Include="mykey.snk" />
<None Include="Properties\app.manifest" />
<None Include="Properties\DataSources\CurrentState.datasource" />
@ -952,6 +954,9 @@
</ItemGroup>
<ItemGroup>
<Content Include="apm2.ico" />
<Content Include="Driver\Arduino MEGA 2560.inf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="hud.html">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<SubType>Designer</SubType>
@ -1049,7 +1054,8 @@
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>rem macos.bat</PostBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PreBuildEvent>

View File

@ -2,9 +2,14 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C# Express 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArdupilotMega", "ArdupilotMega.csproj", "{A2E22272-95FE-47B6-B050-9AE7E2055BF5}"
ProjectSection(ProjectDependencies) = postProject
{76374F95-C343-4ACC-B86F-7ECFDD668F46} = {76374F95-C343-4ACC-B86F-7ECFDD668F46}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Updater", "Updater\Updater.csproj", "{E64A1A41-A5B0-458E-8284-BB63705354DA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wix", "wix\wix.csproj", "{76374F95-C343-4ACC-B86F-7ECFDD668F46}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -41,6 +46,18 @@ Global
{E64A1A41-A5B0-458E-8284-BB63705354DA}.Release|Win32.ActiveCfg = Release|x86
{E64A1A41-A5B0-458E-8284-BB63705354DA}.Release|x86.ActiveCfg = Release|x86
{E64A1A41-A5B0-458E-8284-BB63705354DA}.Release|x86.Build.0 = Release|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Debug|Any CPU.ActiveCfg = Debug|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Debug|Mixed Platforms.Build.0 = Debug|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Debug|Win32.ActiveCfg = Debug|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Debug|x86.ActiveCfg = Debug|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Debug|x86.Build.0 = Debug|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Release|Any CPU.ActiveCfg = Release|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Release|Mixed Platforms.ActiveCfg = Release|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Release|Mixed Platforms.Build.0 = Release|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Release|Win32.ActiveCfg = Release|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Release|x86.ActiveCfg = Release|x86
{76374F95-C343-4ACC-B86F-7ECFDD668F46}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -386,7 +386,8 @@ namespace ArdupilotMega
CH6_ACRO_KP = 25,
CH6_YAW_RATE_KD = 26,
CH6_LOITER_KI = 27,
CH6_LOITER_RATE_KI = 28
CH6_LOITER_RATE_KI = 28,
CH6_STABILIZE_KD = 29
}

View File

@ -40,14 +40,14 @@ namespace ArdupilotMega
public new static string[] GetPortNames()
{
string[] monoDevs = new string[0];
List<string> allPorts = new List<string>();
if (Directory.Exists("/dev/"))
{
if (Directory.Exists("/dev/serial/by-id/"))
monoDevs = Directory.GetFiles("/dev/serial/by-id/", "*");
monoDevs = Directory.GetFiles("/dev/", "*ACM*");
monoDevs = Directory.GetFiles("/dev/", "ttyUSB*");
allPorts.AddRange(Directory.GetFiles("/dev/serial/by-id/", "*"));
allPorts.AddRange(Directory.GetFiles("/dev/", "ttyACM*"));
allPorts.AddRange(Directory.GetFiles("/dev/", "ttyUSB*"));
}
string[] ports = System.IO.Ports.SerialPort.GetPortNames()
@ -55,12 +55,9 @@ namespace ArdupilotMega
.Select(FixBlueToothPortNameBug)
.ToArray();
string[] allPorts = new string[monoDevs.Length + ports.Length];
allPorts.AddRange(ports);
monoDevs.CopyTo(allPorts, 0);
ports.CopyTo(allPorts, monoDevs.Length);
return allPorts;
return allPorts.ToArray();
}

View File

@ -29,7 +29,7 @@
private void InitializeComponent()
{
this.pnlPages = new System.Windows.Forms.Panel();
this.pnlMenu = new BackStageViewMenuPanel();
this.pnlMenu = new ArdupilotMega.Controls.BackstageView.BackStageViewMenuPanel();
this.SuspendLayout();
//
// pnlPages
@ -37,10 +37,10 @@
this.pnlPages.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlPages.Location = new System.Drawing.Point(147, 0);
this.pnlPages.Location = new System.Drawing.Point(150, 0);
this.pnlPages.MinimumSize = new System.Drawing.Size(100, 0);
this.pnlPages.Name = "pnlPages";
this.pnlPages.Size = new System.Drawing.Size(243, 189);
this.pnlPages.Size = new System.Drawing.Size(297, 192);
this.pnlPages.TabIndex = 0;
//
// pnlMenu
@ -49,7 +49,7 @@
| System.Windows.Forms.AnchorStyles.Left)));
this.pnlMenu.Location = new System.Drawing.Point(0, 0);
this.pnlMenu.Name = "pnlMenu";
this.pnlMenu.Size = new System.Drawing.Size(150, 170);
this.pnlMenu.Size = new System.Drawing.Size(150, 192);
this.pnlMenu.TabIndex = 1;
//
// BackstageView
@ -60,7 +60,7 @@
this.Controls.Add(this.pnlMenu);
this.Controls.Add(this.pnlPages);
this.Name = "BackstageView";
this.Size = new System.Drawing.Size(393, 192);
this.Size = new System.Drawing.Size(448, 192);
this.ResumeLayout(false);
}

View File

@ -22,10 +22,18 @@ namespace ArdupilotMega.Controls.BackstageView
public BackstageViewButton()
{
this.SuspendLayout();
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
SetStyle(ControlStyles.Opaque, true);
SetStyle(ControlStyles.ResizeRedraw, true);
this.BackColor = Color.Transparent;
this.Width = 100;
this.Height = 30;
this.ResumeLayout(false);
}
/// <summary>
@ -58,6 +66,15 @@ namespace ArdupilotMega.Controls.BackstageView
this.Parent.Invalidate(rectangleToClient);
}
protected override void OnPaintBackground(PaintEventArgs pevent)
{
base.OnPaintBackground(pevent);
}
protected override void OnResize(EventArgs e)
{
base.OnResize(e);
}
protected override void OnPaint(PaintEventArgs pevent)
{

View File

@ -0,0 +1,106 @@
;************************************************************
; Windows USB CDC ACM Setup File
; Copyright (c) 2000 Microsoft Corporation
[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%MFGNAME%
LayoutFile=layout.inf
CatalogFile=%MFGFILENAME%.cat
DriverVer=11/15/2007,5.1.2600.0
[Manufacturer]
%MFGNAME%=DeviceList, NTamd64
[DestinationDirs]
DefaultDestDir=12
;------------------------------------------------------------------------------
; Windows 2000/XP/Vista-32bit Sections
;------------------------------------------------------------------------------
[DriverInstall.nt]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.nt
AddReg=DriverInstall.nt.AddReg
[DriverCopyFiles.nt]
usbser.sys,,,0x20
[DriverInstall.nt.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.nt.Services]
AddService=usbser, 0x00000002, DriverService.nt
[DriverService.nt]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\%DRIVERFILENAME%.sys
;------------------------------------------------------------------------------
; Vista-64bit Sections
;------------------------------------------------------------------------------
[DriverInstall.NTamd64]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.NTamd64
AddReg=DriverInstall.NTamd64.AddReg
[DriverCopyFiles.NTamd64]
%DRIVERFILENAME%.sys,,,0x20
[DriverInstall.NTamd64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService.NTamd64
[DriverService.NTamd64]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\%DRIVERFILENAME%.sys
;------------------------------------------------------------------------------
; Vendor and Product ID Definitions
;------------------------------------------------------------------------------
; When developing your USB device, the VID and PID used in the PC side
; application program and the firmware on the microcontroller must match.
; Modify the below line to use your VID and PID. Use the format as shown below.
; Note: One INF file can be used for multiple devices with different VID and PIDs.
; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
;------------------------------------------------------------------------------
[SourceDisksFiles]
[SourceDisksNames]
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_2341&PID_0010
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall, USB\VID_2341&PID_0010
;------------------------------------------------------------------------------
; String Definitions
;------------------------------------------------------------------------------
;Modify these strings to customize your device
;------------------------------------------------------------------------------
[Strings]
MFGFILENAME="CDC_vista"
DRIVERFILENAME ="usbser"
MFGNAME="Arduino LLC (www.arduino.cc)"
INSTDISK="Arduino Mega 2560 Driver Installer"
DESCRIPTION="Arduino Mega 2560"
SERVICE="USB RS-232 Emulation Driver"

View File

@ -593,29 +593,11 @@ namespace ArdupilotMega.GCSViews
DialogResult dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{
StreamReader sr = new StreamReader(ofd.OpenFile());
while (!sr.EndOfStream)
Hashtable param2 = loadParamFile(ofd.FileName);
foreach (string name in param2.Keys)
{
string line = sr.ReadLine();
if (line.Contains("NOTE:"))
CustomMessageBox.Show(line, "Saved Note");
int index = line.IndexOf(',');
int index2 = line.IndexOf(',', index + 1);
if (index == -1)
continue;
if (index2 != -1)
line = line.Replace(',', '.');
string name = line.Substring(0, index);
float value = float.Parse(line.Substring(index + 1), new System.Globalization.CultureInfo("en-US"));
MAVLink.modifyParamForDisplay(true, name, ref value);
string value = param2[name].ToString();
// set param table as well
foreach (DataGridViewRow row in Params.Rows)
{
@ -647,7 +629,6 @@ namespace ArdupilotMega.GCSViews
}
}
}
sr.Close();
}
}
@ -1125,34 +1106,7 @@ namespace ArdupilotMega.GCSViews
DialogResult dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{
StreamReader sr = new StreamReader(ofd.OpenFile());
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (line.Contains("NOTE:"))
CustomMessageBox.Show(line, "Saved Note");
int index = line.IndexOf(',');
if (index == -1)
continue;
string name = line.Substring(0, index);
float value = float.Parse(line.Substring(index + 1), new System.Globalization.CultureInfo("en-US"));
MAVLink.modifyParamForDisplay(true, name, ref value);
if (name == "SYSID_SW_MREV")
continue;
if (name == "WP_TOTAL")
continue;
if (name == "CMD_TOTAL")
continue;
param2[name] = value;
}
sr.Close();
param2 = loadParamFile(ofd.FileName);
ParamCompare temp = new ParamCompare(this, param, param2);
ThemeManager.ApplyThemeTo(temp);
@ -1160,6 +1114,59 @@ namespace ArdupilotMega.GCSViews
}
}
Hashtable loadParamFile(string Filename)
{
Hashtable param = new Hashtable();
StreamReader sr = new StreamReader(Filename);
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (line.Contains("NOTE:"))
CustomMessageBox.Show(line, "Saved Note");
if (line.StartsWith("#"))
continue;
string[] items = line.Split(new char[] {' ', ',', '\t' },StringSplitOptions.RemoveEmptyEntries);
if (items.Length != 2)
continue;
string name = items[0];
float value = float.Parse(items[1], new System.Globalization.CultureInfo("en-US"));
MAVLink.modifyParamForDisplay(true, name, ref value);
if (name == "SYSID_SW_MREV")
continue;
if (name == "WP_TOTAL")
continue;
if (name == "CMD_TOTAL")
continue;
if (name == "FENCE_TOTAL")
continue;
if (name == "SYS_NUM_RESETS")
continue;
if (name == "ARSPD_OFFSET")
continue;
if (name == "GND_ABS_PRESS")
continue;
if (name == "GND_TEMP")
continue;
if (name == "CMD_INDEX")
continue;
if (name == "LOG_LASTFILE")
continue;
param[name] = value;
}
sr.Close();
return param;
}
private void CHK_GDIPlus_CheckedChanged(object sender, EventArgs e)
{
if (startup)

View File

@ -49,6 +49,10 @@ namespace ArdupilotMega.GCSViews
int simPort = 49000;
int recvPort = 49005;
// gps buffer
int gpsbufferindex = 0;
ArdupilotMega.MAVLink.__mavlink_gps_raw_t[] gpsbuffer = new MAVLink.__mavlink_gps_raw_t[2];
// set defaults
int rollgain = 10000;
int pitchgain = 10000;
@ -1256,7 +1260,13 @@ namespace ArdupilotMega.GCSViews
{
lastgpsupdate = DateTime.Now;
comPort.sendPacket(gps);
// save current fix = 3
gpsbuffer[gpsbufferindex % gpsbuffer.Length] = gps;
// return buffer index + 5 = (3 + 5) = 8 % 6 = 2
comPort.sendPacket(gpsbuffer[(gpsbufferindex + (gpsbuffer.Length - 1)) % gpsbuffer.Length]);
gpsbufferindex++;
}
#endif
}

View File

@ -2031,8 +2031,9 @@ namespace ArdupilotMega
}
}
}
catch (Exception e) { log.Info("MAVLink readpacket read error: " + e.Message); break; }
catch (Exception e) { log.Info("MAVLink readpacket read error: " + e.ToString()); break; }
// check if looks like a mavlink packet and check for exclusions and write to console
if (temp[0] != 254 && temp[0] != 'U' || lastbad[0] == 'I' && lastbad[1] == 'M' || lastbad[1] == 'G' || lastbad[1] == 'A') // out of sync "AUTO" "GUIDED" "IMU"
{
if (temp[0] >= 0x20 && temp[0] <= 127 || temp[0] == '\n' || temp[0] == '\r')
@ -2049,6 +2050,7 @@ namespace ArdupilotMega
// reset count on valid packet
readcount = 0;
if (temp[0] == 'U' || temp[0] == 254)
{
length = temp[1] + 6 + 2 - 2; // data + header + checksum - U - length
@ -2058,8 +2060,13 @@ namespace ArdupilotMega
{
if (sysid != temp[3] || compid != temp[4])
{
log.InfoFormat("Mavlink Bad Packet (not addressed to this MAV) got {0} {1} vs {2} {3}", temp[3], temp[4], sysid, compid);
return new byte[0];
if (temp[3] == '3' && temp[4] == 'D')
{
// this is a 3dr radio rssi packet
} else {
log.InfoFormat("Mavlink Bad Packet (not addressed to this MAV) got {0} {1} vs {2} {3}", temp[3], temp[4], sysid, compid);
return new byte[0];
}
}
}
@ -2111,11 +2118,11 @@ namespace ArdupilotMega
if (packetlosttimer.AddSeconds(10) < DateTime.Now)
{
packetlosttimer = DateTime.Now;
packetslost = (int)(packetslost * 0.8f);
packetsnotlost = (int)(packetsnotlost * 0.8f);
packetslost = (packetslost * 0.8f);
packetsnotlost = (packetsnotlost * 0.8f);
}
MainV2.cs.linkqualitygcs = (ushort)((packetsnotlost / (packetsnotlost + packetslost)) * 100);
MainV2.cs.linkqualitygcs = (ushort)((packetsnotlost / (packetsnotlost + packetslost)) * 100.0);
if (bpstime.Second != DateTime.Now.Second && !logreadmode)
{
@ -2161,7 +2168,7 @@ namespace ArdupilotMega
if (temp.Length < 5 || temp[temp.Length - 1] != (crc >> 8) || temp[temp.Length - 2] != (crc & 0xff))
{
int packetno = 0;
int packetno = -1;
if (temp.Length > 5)
{
packetno = temp[5];

View File

@ -23,6 +23,7 @@ using System.Net.Sockets;
using IronPython.Hosting;
using log4net;
using ArdupilotMega.Controls;
using System.Security.Cryptography;
namespace ArdupilotMega
{
@ -1694,7 +1695,7 @@ namespace ArdupilotMega
if (fi.Length != response.ContentLength || response.Headers[HttpResponseHeader.ETag] != CurrentEtag)
{
using (StreamWriter sw = new StreamWriter(path + ".etag"))
using (StreamWriter sw = new StreamWriter(path + ".etag.new"))
{
sw.WriteLine(response.Headers[HttpResponseHeader.ETag]);
sw.Close();
@ -1795,6 +1796,42 @@ namespace ArdupilotMega
}
private string GetFileETag(string fileName, DateTime modifyDate)
{
string FileString;
System.Text.Encoder StringEncoder;
byte[] StringBytes;
MD5CryptoServiceProvider MD5Enc;
//use file name and modify date as the unique identifier
FileString = fileName + modifyDate.ToString("d", CultureInfo.InvariantCulture);
//get string bytes
StringEncoder = Encoding.UTF8.GetEncoder();
StringBytes = new byte[StringEncoder.GetByteCount(FileString.ToCharArray(), 0, FileString.Length, true)];
StringEncoder.GetBytes(FileString.ToCharArray(), 0, FileString.Length, StringBytes, 0, true);
//hash string using MD5 and return the hex-encoded hash
MD5Enc = new MD5CryptoServiceProvider();
byte[] hash = MD5Enc.ComputeHash((Stream)File.OpenRead(fileName));
return "\"" + BitConverter.ToString(hash).Replace("-", string.Empty) + "\"";
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Control | Keys.F))
@ -1823,6 +1860,13 @@ namespace ArdupilotMega
frm.Show();
return true;
}
if (keyData == (Keys.Control | Keys.W)) // test
{
Form frm = new GCSViews.ConfigurationView.Configuration();
ThemeManager.ApplyThemeTo(frm);
frm.Show();
return true;
}
if (keyData == (Keys.Control | Keys.T)) // for override connect
{
try

View File

@ -0,0 +1,4 @@
*.msi
*.wixpdb
*.wixobj

View File

@ -0,0 +1,16 @@
@echo off
wix.exe ..\bin\release\
del installer.wixobj
"%wix%\bin\candle" installer.wxs -ext WiXNetFxExtension -ext WixDifxAppExtension -ext WixUIExtension.dll -ext WixUtilExtension
"%wix%\bin\light" installer.wixobj "%wix%\bin\difxapp_x86.wixlib" -o APMPlannerx86.msi -ext WiXNetFxExtension -ext WixDifxAppExtension -ext WixUIExtension.dll -ext WixUtilExtension
"%wix%\bin\light" installer.wixobj "%wix%\bin\difxapp_x64.wixlib" -o APMPlannerx64.msi -ext WiXNetFxExtension -ext WixDifxAppExtension -ext WixUIExtension.dll -ext WixUtilExtension
pause

View File

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" xmlns:difx="http://schemas.microsoft.com/wix/DifxAppExtension">
<Product Id="{625389D7-EB3C-4d77-A5F6-A285CF99437D}" Name="APM Planner" Language="1033" Version="1.1.60" Manufacturer="Michael Oborne" UpgradeCode="{625389D7-EB3C-4d77-A5F6-A285CF99437D}">
<Package Description="APM Planner Installer" Comments="Apm Planner Installer" Manufacturer="Michael Oborne" InstallerVersion="200" Compressed="yes" />
<MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit."/>
<PropertyRef Id="NETFRAMEWORK35" />
<Condition Message="This application requires .NET Framework 3.5. Please install the .NET Framework then run this installer again."><![CDATA[Installed OR NETFRAMEWORK35]]></Condition>
<Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="APMPlanner" Name="APM Planner">
<Component Id="InstallDirPermissions" Guid="{525389D7-EB3C-4d77-A5F6-A285CF99437D}" KeyPath="yes">
<CreateFolder>
<Permission User="Everyone" GenericAll="yes" />
</CreateFolder>
</Component>
<Component Id="_comp0" Guid="ac593651-82f6-4297-bb94-f8a233d91b6f">
<File Id="_1" Source="..\bin\release\AeroSimRCAPMHil.zip" />
<File Id="_2" Source="..\bin\release\alglibnet2.dll" />
<File Id="_3" Source="..\bin\release\arducopter-xplane.zip" />
<File Id="_4" Source="..\bin\release\ArdupilotMegaPlanner.exe" />
<File Id="_5" Source="..\bin\release\ArdupilotMegaPlanner.exe.config" />
<File Id="_6" Source="..\bin\release\ArdupilotMegaPlanner.pdb" />
<File Id="_7" Source="..\bin\release\block_plane_0.dae" />
<File Id="_8" Source="..\bin\release\BSE.Windows.Forms.dll" />
<File Id="_9" Source="..\bin\release\Core.dll" />
<File Id="_10" Source="..\bin\release\dataflashlog.xml" />
<File Id="_11" Source="..\bin\release\DirectShowLib-2005.dll" />
<File Id="_12" Source="..\bin\release\GMap.NET.Core.dll" />
<File Id="_13" Source="..\bin\release\GMap.NET.WindowsForms.dll" />
<File Id="_14" Source="..\bin\release\hud.html" />
<File Id="_15" Source="..\bin\release\ICSharpCode.SharpZipLib.dll" />
<File Id="_16" Source="..\bin\release\Ionic.Zip.Reduced.dll" />
<File Id="_17" Source="..\bin\release\IronPython.dll" />
<File Id="_18" Source="..\bin\release\IronPython.Modules.dll" />
<File Id="_19" Source="..\bin\release\JSBSim.exe" />
<File Id="_20" Source="..\bin\release\KMLib.dll" />
<File Id="_21" Source="..\bin\release\log4net.dll" />
<File Id="_22" Source="..\bin\release\mavcmd.xml" />
<File Id="_23" Source="..\bin\release\MAVLink.xml" />
<File Id="_24" Source="..\bin\release\MetaDataExtractor.dll" />
<File Id="_25" Source="..\bin\release\Microsoft.Dynamic.dll" />
<File Id="_26" Source="..\bin\release\Microsoft.Scripting.Core.dll" />
<File Id="_27" Source="..\bin\release\Microsoft.Scripting.Debugging.dll" />
<File Id="_28" Source="..\bin\release\Microsoft.Scripting.dll" />
<File Id="_29" Source="..\bin\release\Microsoft.Scripting.ExtensionAttribute.dll" />
<File Id="_30" Source="..\bin\release\netDxf.dll" />
<File Id="_31" Source="..\bin\release\OpenTK.dll" />
<File Id="_32" Source="..\bin\release\OpenTK.GLControl.dll" />
<File Id="_33" Source="..\bin\release\quadhil.xml" />
<File Id="_34" Source="..\bin\release\SharpKml.dll" />
<File Id="_35" Source="..\bin\release\System.Data.SQLite.dll" />
<File Id="_36" Source="..\bin\release\System.Speech.dll" />
<File Id="_37" Source="..\bin\release\Updater.exe" />
<File Id="_38" Source="..\bin\release\Updater.exe.config" />
<File Id="_39" Source="..\bin\release\Updater.pdb" />
<File Id="_40" Source="..\bin\release\ZedGraph.dll" />
</Component>
<Directory Id="Driver" Name="Driver">
<Component Id="_comp40" Guid="2fdf06ca-6e78-41c1-a558-0b0970ef8cdd">
<File Id="_41" Source="..\bin\release\Driver\Arduino MEGA 2560.inf" />
</Component>
</Directory>
<Directory Id="es_ES" Name="es-ES">
<Component Id="_comp41" Guid="7c2d0e6e-be62-414e-87d3-15c3408a6689">
<File Id="_42" Source="..\bin\release\es-ES\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="fr" Name="fr">
<Component Id="_comp42" Guid="a96af704-563a-4606-902c-f5ada5f0e2e4">
<File Id="_43" Source="..\bin\release\fr\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="it_IT" Name="it-IT">
<Component Id="_comp43" Guid="f25da795-c709-42ed-b395-68b30354db54">
<File Id="_44" Source="..\bin\release\it-IT\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="m3u" Name="m3u">
<Component Id="_comp44" Guid="201b2c11-e385-4176-ba7f-cff62934e41f">
<File Id="_45" Source="..\bin\release\m3u\both.m3u" />
<File Id="_46" Source="..\bin\release\m3u\hud.m3u" />
<File Id="_47" Source="..\bin\release\m3u\map.m3u" />
<File Id="_48" Source="..\bin\release\m3u\networklink.kml" />
</Component>
</Directory>
<Directory Id="pl" Name="pl">
<Component Id="_comp48" Guid="91e14b63-64b9-43d5-9f3c-dc3eccac202f">
<File Id="_49" Source="..\bin\release\pl\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="Resources" Name="Resources">
<Component Id="_comp49" Guid="16f71db5-f216-4ce9-8379-1c5d8e9cfc1a">
<File Id="_50" Source="..\bin\release\Resources\MAVCmd.txt" />
<File Id="_51" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf" />
</Component>
</Directory>
<Directory Id="ru_RU" Name="ru-RU">
<Component Id="_comp51" Guid="41050916-508f-4f5e-b547-5374fe279b0f">
<File Id="_52" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_Hans" Name="zh-Hans">
<Component Id="_comp52" Guid="bbcbc38d-f1d3-4686-895d-9db643ac93aa">
<File Id="_53" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_TW" Name="zh-TW">
<Component Id="_comp53" Guid="1abb66a4-ec2e-46a5-8ec7-df5ead6615ac">
<File Id="_54" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner.resources.dll" />
</Component>
</Directory>
<Directory Id="drivers" Name="Drivers">
<Component Id="MyDriver" Guid="{6AC8226E-A005-437e-A3CD-0FC32D9A346F}">
<File Id="apm2inf" Source="..\Driver\Arduino MEGA 2560.inf" />
<difx:Driver AddRemovePrograms='no' Legacy="yes" PlugAndPlayPrompt="no" />
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="APM Planner" />
</Directory>
</Directory>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="{8BC628BA-08A0-43d6-88C8-D4C007AC4607}">
<Shortcut Id="ApplicationStartMenuShortcut" Name="APM Planner" Description="Ardupilot Mega Planner" Target="[APMPlanner]ArdupilotMegaPlanner.exe" WorkingDirectory="APMPlanner" />
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall" />
<Shortcut Id="UninstallProduct" Name="Uninstall APM Planner" Description="Uninstalls My Application" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" />
<RegistryValue Root="HKCU" Key="Software\MichaelOborne\APMPlanner" Name="installed" Type="integer" Value="1" KeyPath="yes" />
</Component>
</DirectoryRef>
<Feature Id="MyFeature" Title="My 1st Feature" Level="1">
<ComponentRef Id="InstallDirPermissions" />
<ComponentRef Id="_comp0" />
<ComponentRef Id="_comp40" />
<ComponentRef Id="_comp41" />
<ComponentRef Id="_comp42" />
<ComponentRef Id="_comp43" />
<ComponentRef Id="_comp44" />
<ComponentRef Id="_comp48" />
<ComponentRef Id="_comp49" />
<ComponentRef Id="_comp51" />
<ComponentRef Id="_comp52" />
<ComponentRef Id="_comp53" />
<ComponentRef Id="ApplicationShortcut" />
<ComponentRef Id="MyDriver" />
</Feature>
<!-- Step 2: Add UI to your installer / Step 4: Trigger the custom action -->
<Property Id="WIXUI_INSTALLDIR" Value="APMPlanner" />
<UI>
<UIRef Id="WixUI_InstallDir" />
<Publish Dialog="ExitDialog"
Control="Finish"
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch APM Planner" />
<!-- Step 3: Include the custom action -->
<Property Id="WixShellExecTarget" Value="[#_4]" />
<CustomAction Id="LaunchApplication"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="yes" />
</Product>
</Wix>

View File

@ -0,0 +1,180 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" xmlns:difx="http://schemas.microsoft.com/wix/DifxAppExtension">
<Product Id="{625389D7-EB3C-4d77-A5F6-A285CF99437D}" Name="APM Planner" Language="1033" Version="1.0.0.0" Manufacturer="Michael Oborne" UpgradeCode="{625389D7-EB3C-4d77-A5F6-A285CF99437D}">
<Package Description="APM Planner Installer" Comments="Apm Planner Installer" Manufacturer="Michael Oborne" InstallerVersion="200" Compressed="yes" />
<PropertyRef Id="NETFRAMEWORK35" />
<Condition Message="This application requires .NET Framework 3.5. Please install the .NET Framework then run this installer again."><![CDATA[Installed OR NETFRAMEWORK35]]></Condition>
<Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="APMPlanner" Name="APM Planner">
<Component Id="InstallDirPermissions" Guid="{525389D7-EB3C-4d77-A5F6-A285CF99437D}" KeyPath="yes">
<CreateFolder>
<Permission User="Everyone" GenericAll="yes" />
</CreateFolder>
</Component>
<Component Id="Planner" Guid="{625389D7-EB3C-4d77-A5F6-A285CF99437D}">
<File Id="gdbinit" Source=".gdbinit" />
<File Id="alglibnet2dll" Source="alglibnet2.dll" />
<File Id="ArdupilotMegaPlanner.exe" Source="ArdupilotMegaPlanner.exe">
<netfx:NativeImage Id="ngen_ArdupilotMegaPlannerexe"/>
</File>
<File Id="ArdupilotMegaPlannerexeetag" Source="ArdupilotMegaPlanner.exe.etag" />
<File Id="ArdupilotMegaPlannerexeconfig" Source="ArdupilotMegaPlanner.exe.config" />
<File Id="ArdupilotMegaPlannerpdb" Source="ArdupilotMegaPlanner.pdb" />
<File Id="block_plane_0dae" Source="block_plane_0.dae" />
<File Id="BSEWindowsFormsdll" Source="BSE.Windows.Forms.dll" />
<File Id="Coredll" Source="Core.dll" />
<File Id="dataflashlogxml" Source="dataflashlog.xml" />
<File Id="DirectShowLib2005dll" Source="DirectShowLib-2005.dll" />
<File Id="GMapNETCoredll" Source="GMap.NET.Core.dll" />
<File Id="GMapNETWindowsFormsdll" Source="GMap.NET.WindowsForms.dll" />
<File Id="hudhtml" Source="hud.html" />
<File Id="ICSharpCodeSharpZipLibdll" Source="ICSharpCode.SharpZipLib.dll" />
<File Id="IonicZipReduceddll" Source="Ionic.Zip.Reduced.dll" />
<File Id="IronPythondll" Source="IronPython.dll" />
<File Id="IronPythonModulesdll" Source="IronPython.Modules.dll" />
<File Id="KMLibdll" Source="KMLib.dll" />
<File Id="log4netdll" Source="log4net.dll" />
<File Id="mavcmdxml" Source="mavcmd.xml" />
<File Id="MAVLinkxml" Source="MAVLink.xml" />
<File Id="MetaDataExtractordll" Source="MetaDataExtractor.dll" />
<File Id="MicrosoftDirectXDirectInputdll" Source="Microsoft.DirectX.DirectInput.dll" />
<File Id="MicrosoftDirectXdll" Source="Microsoft.DirectX.dll" />
<File Id="MicrosoftDynamicdll" Source="Microsoft.Dynamic.dll" />
<File Id="MicrosoftScriptingCoredll" Source="Microsoft.Scripting.Core.dll" />
<File Id="MicrosoftScriptingDebugging.dll" Source="Microsoft.Scripting.Debugging.dll" />
<File Id="MicrosoftScriptingdll" Source="Microsoft.Scripting.dll" />
<File Id="MicrosoftScriptingExtensionAttribute.dll" Source="Microsoft.Scripting.ExtensionAttribute.dll" />
<File Id="netDxfdll" Source="netDxf.dll" />
<File Id="OpenTKdll" Source="OpenTK.dll" />
<File Id="OpenTKdllconfig" Source="OpenTK.dll.config" />
<File Id="OpenTKGLControldll" Source="OpenTK.GLControl.dll" />
<File Id="quadhilxml" Source="quadhil.xml" />
<File Source="runme" />
<File Id="SharpKmldll" Source="SharpKml.dll" />
<File Id="SystemDataSQLitedll" Source="System.Data.SQLite.dll" />
<File Id="SystemSpeechdll" Source="System.Speech.dll" />
<File Id="Updaterexe" Source="Updater.exe" />
<File Id="Updaterexeconfig" Source="Updater.exe.config" />
<File Id="ZedGraphdll" Source="ZedGraph.dll" />
<File Id="installerwxs" Source="installer.wxs" />
<File Id="installerbat" Source="installer.bat" />
</Component>
<Directory Id="drivers" Name="Drivers">
<Component Id="MyDriver" Guid="{6AC8226E-A005-437e-A3CD-0FC32D9A346F}">
<File Id="apm2inf" Source="Driver\Arduino MEGA 2560.inf" />
<difx:Driver AddRemovePrograms='no' Legacy="yes" PlugAndPlayPrompt="no" />
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="APM Planner" />
</Directory>
</Directory>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="{8BC628BA-08A0-43d6-88C8-D4C007AC4607}">
<Shortcut Id="ApplicationStartMenuShortcut" Name="APM Planner" Description="Ardupilot Mega Planner" Target="[APMPlanner]ArdupilotMegaPlanner.exe" WorkingDirectory="APMPlanner" />
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall" />
<Shortcut Id="UninstallProduct" Name="Uninstall APM Planner" Description="Uninstalls My Application" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" />
<RegistryValue Root="HKCU" Key="Software\MichaelOborne\APMPlanner" Name="installed" Type="integer" Value="1" KeyPath="yes" />
</Component>
</DirectoryRef>
<Feature Id="MyFeature" Title="My 1st Feature" Level="1">
<ComponentRef Id="InstallDirPermissions" />
<ComponentRef Id="Planner" />
<ComponentRef Id="ApplicationShortcut" />
<ComponentRef Id="MyDriver" />
</Feature>
<!-- Step 2: Add UI to your installer / Step 4: Trigger the custom action -->
<UI>
<UIRef Id="WixUI_Minimal" />
<Publish Dialog="ExitDialog"
Control="Finish"
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch APM Planner" />
<!-- Step 3: Include the custom action -->
<Property Id="WixShellExecTarget" Value="[#ArdupilotMegaPlanner.exe]" />
<CustomAction Id="LaunchApplication"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="yes" />
</Product>
</Wix>

View File

@ -0,0 +1,3 @@
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

Binary file not shown.

View File

@ -34,5 +34,5 @@ using System.Resources;
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.59")]
[assembly: AssemblyFileVersion("1.1.60")]
[assembly: NeutralResourcesLanguageAttribute("")]

View File

@ -19,8 +19,8 @@
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />
</applicationRequestMinimum>
</security>
</trustInfo>

View File

@ -75,7 +75,8 @@ namespace ArdupilotMega
uploader_LogEvent("In Bootloader Mode");
bootloadermode = true;
}
catch {
catch
{
comPort.Close();
comPort.BaudRate = MainV2.comPort.BaseStream.BaudRate;
comPort.Open();
@ -188,13 +189,14 @@ namespace ArdupilotMega
{
ArdupilotMega.ICommsSerial comPort = new SerialPort();
try {
comPort.PortName = MainV2.comPort.BaseStream.PortName;
comPort.BaudRate = MainV2.comPort.BaseStream.BaudRate;
try
{
comPort.PortName = MainV2.comPort.BaseStream.PortName;
comPort.BaudRate = MainV2.comPort.BaseStream.BaudRate;
comPort.ReadTimeout = 4000;
comPort.ReadTimeout = 4000;
comPort.Open();
comPort.Open();
}
@ -547,7 +549,7 @@ namespace ArdupilotMega
}
}
Console.WriteLine("responce " + level + " " + ans.Replace('\0',' '));
Console.WriteLine("responce " + level + " " + ans.Replace('\0', ' '));
// try again
if (ans == "" && level == 0)
@ -571,7 +573,7 @@ namespace ArdupilotMega
// check for config responce "OK"
Console.WriteLine("Connect btr " + comPort.BytesToRead + " baud " + comPort.BaudRate);
string conn = comPort.ReadExisting();
Console.WriteLine("Connect first responce " + conn.Replace('\0',' ') + " " + conn.Length);
Console.WriteLine("Connect first responce " + conn.Replace('\0', ' ') + " " + conn.Length);
if (conn.Contains("OK"))
{
//return true;

View File

@ -1719,8 +1719,7 @@ namespace ArdupilotMega.Setup
#else
MainV2.comPort.doAction(MAVLink.MAV_ACTION.MAV_ACTION_CALIBRATE_ACC);
#endif
BUT_levelac2.Text = "Complete";
BUT_levelplane.Text = "Complete";
}
catch
{

View File

@ -1,3 +1,4 @@
*.pdb
*.etag
*.new
*.new
*.log

View File

@ -0,0 +1,106 @@
;************************************************************
; Windows USB CDC ACM Setup File
; Copyright (c) 2000 Microsoft Corporation
[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%MFGNAME%
LayoutFile=layout.inf
CatalogFile=%MFGFILENAME%.cat
DriverVer=11/15/2007,5.1.2600.0
[Manufacturer]
%MFGNAME%=DeviceList, NTamd64
[DestinationDirs]
DefaultDestDir=12
;------------------------------------------------------------------------------
; Windows 2000/XP/Vista-32bit Sections
;------------------------------------------------------------------------------
[DriverInstall.nt]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.nt
AddReg=DriverInstall.nt.AddReg
[DriverCopyFiles.nt]
usbser.sys,,,0x20
[DriverInstall.nt.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.nt.Services]
AddService=usbser, 0x00000002, DriverService.nt
[DriverService.nt]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\%DRIVERFILENAME%.sys
;------------------------------------------------------------------------------
; Vista-64bit Sections
;------------------------------------------------------------------------------
[DriverInstall.NTamd64]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.NTamd64
AddReg=DriverInstall.NTamd64.AddReg
[DriverCopyFiles.NTamd64]
%DRIVERFILENAME%.sys,,,0x20
[DriverInstall.NTamd64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService.NTamd64
[DriverService.NTamd64]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\%DRIVERFILENAME%.sys
;------------------------------------------------------------------------------
; Vendor and Product ID Definitions
;------------------------------------------------------------------------------
; When developing your USB device, the VID and PID used in the PC side
; application program and the firmware on the microcontroller must match.
; Modify the below line to use your VID and PID. Use the format as shown below.
; Note: One INF file can be used for multiple devices with different VID and PIDs.
; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
;------------------------------------------------------------------------------
[SourceDisksFiles]
[SourceDisksNames]
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_2341&PID_0010
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall, USB\VID_2341&PID_0010
;------------------------------------------------------------------------------
; String Definitions
;------------------------------------------------------------------------------
;Modify these strings to customize your device
;------------------------------------------------------------------------------
[Strings]
MFGFILENAME="CDC_vista"
DRIVERFILENAME ="usbser"
MFGNAME="Arduino LLC (www.arduino.cc)"
INSTDISK="Arduino Mega 2560 Driver Installer"
DESCRIPTION="Arduino Mega 2560"
SERVICE="USB RS-232 Emulation Driver"

View File

@ -24,6 +24,9 @@ namespace ArdupilotMega
public static int getAltitude(double lat, double lng, double zoom)
{
if (!Directory.Exists(datadirectory))
Directory.CreateDirectory(datadirectory);
short alt = 0;
lat += 0.00083333333333333;

View File

@ -198,7 +198,7 @@
//
// BUT_lang_edit
//
this.BUT_lang_edit.Location = new System.Drawing.Point(365, 164);
this.BUT_lang_edit.Location = new System.Drawing.Point(323, 164);
this.BUT_lang_edit.Name = "BUT_lang_edit";
this.BUT_lang_edit.Size = new System.Drawing.Size(75, 23);
this.BUT_lang_edit.TabIndex = 16;
@ -208,7 +208,7 @@
//
// BUT_georefimage
//
this.BUT_georefimage.Location = new System.Drawing.Point(263, 164);
this.BUT_georefimage.Location = new System.Drawing.Point(221, 164);
this.BUT_georefimage.Name = "BUT_georefimage";
this.BUT_georefimage.Size = new System.Drawing.Size(96, 23);
this.BUT_georefimage.TabIndex = 0;
@ -217,7 +217,7 @@
//
// BUT_follow_me
//
this.BUT_follow_me.Location = new System.Drawing.Point(527, 164);
this.BUT_follow_me.Location = new System.Drawing.Point(485, 164);
this.BUT_follow_me.Name = "BUT_follow_me";
this.BUT_follow_me.Size = new System.Drawing.Size(75, 23);
this.BUT_follow_me.TabIndex = 17;
@ -227,7 +227,7 @@
//
// BUT_ant_track
//
this.BUT_ant_track.Location = new System.Drawing.Point(446, 164);
this.BUT_ant_track.Location = new System.Drawing.Point(404, 164);
this.BUT_ant_track.Name = "BUT_ant_track";
this.BUT_ant_track.Size = new System.Drawing.Size(75, 23);
this.BUT_ant_track.TabIndex = 18;
@ -237,7 +237,7 @@
//
// BUT_magcalib
//
this.BUT_magcalib.Location = new System.Drawing.Point(161, 164);
this.BUT_magcalib.Location = new System.Drawing.Point(119, 164);
this.BUT_magcalib.Name = "BUT_magcalib";
this.BUT_magcalib.Size = new System.Drawing.Size(96, 23);
this.BUT_magcalib.TabIndex = 19;

View File

@ -15,10 +15,16 @@ using GMap.NET.WindowsForms;
using GMap.NET.CacheProviders;
using log4net;
using System.Security.Permissions;
namespace ArdupilotMega
{
public partial class temp : Form
{
[DllImport("DIFXApi.dll", CharSet = CharSet.Unicode)]
public static extern Int32 DriverPackagePreinstall(string DriverPackageInfPath, Int32 Flags);
private static readonly ILog log =
LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public temp()
@ -891,5 +897,13 @@ namespace ArdupilotMega
{
MagCalib.ProcessLog();
}
void driverinstall()
{
int result = DriverPackagePreinstall(@"\Driver\XYZ.inf", 0);
if (result != 0)
MessageBox.Show("Driver installation failed.");
}
}
}

View File

@ -0,0 +1,235 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Diagnostics;
namespace wix
{
class Program
{
static int no = 0;
static StreamWriter sw;
static List<string> components = new List<string>();
static string mainexeid = "";
static void Main(string[] args)
{
if (args.Length == 0)
{
Console.WriteLine("Bad Directory");
return;
}
string path = args[0];
string file = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar+ "installer.wxs";
sw = new StreamWriter(file);
header();
sw.WriteLine("<Directory Id=\"APMPlanner\" Name=\"APM Planner\">");
sw.WriteLine(@"<Component Id=""InstallDirPermissions"" Guid=""{525389D7-EB3C-4d77-A5F6-A285CF99437D}"" KeyPath=""yes"">
<CreateFolder>
<Permission User=""Everyone"" GenericAll=""yes"" />
</CreateFolder>
</Component>");
//sw.WriteLine("<File Id=\"_" + no + "\" Source=\"" + file + "\" />");
dodirectory(path, 0);
footer();
sw.Close();
/*
System.Diagnostics.Process P = new System.Diagnostics.Process();
P.StartInfo.FileName = "cmd.exe";
P.StartInfo.Arguments = " /c \"" + Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + "installer.bat\"";
P.StartInfo.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath);
P.Start();
*/
//Console.ReadLine();
}
static void header()
{
string newid = System.Guid.NewGuid().ToString();
newid = "{625389D7-EB3C-4d77-A5F6-A285CF99437D}";
StreamReader sr = new StreamReader(File.OpenRead("../Properties/AssemblyInfo.cs"));
string version = "0";
while (!sr.EndOfStream) {
string line = sr.ReadLine();
if (line.Contains("AssemblyFileVersion"))
{
string[] items = line.Split(new char[] { '"' },StringSplitOptions.RemoveEmptyEntries);
version = items[1];
break;
}
}
sr.Close();
string data = @"<?xml version=""1.0"" encoding=""utf-8""?>
<Wix xmlns=""http://schemas.microsoft.com/wix/2006/wi"" xmlns:netfx=""http://schemas.microsoft.com/wix/NetFxExtension"" xmlns:difx=""http://schemas.microsoft.com/wix/DifxAppExtension"">
<Product Id=""" + newid + @""" Name=""APM Planner"" Language=""1033"" Version="""+version+@""" Manufacturer=""Michael Oborne"" UpgradeCode=""{625389D7-EB3C-4d77-A5F6-A285CF99437D}"">
<Package Description=""APM Planner Installer"" Comments=""Apm Planner Installer"" Manufacturer=""Michael Oborne"" InstallerVersion=""200"" Compressed=""yes"" />
<MajorUpgrade DowngradeErrorMessage=""A later version of [ProductName] is already installed. Setup will now exit.""/>
<PropertyRef Id=""NETFRAMEWORK35"" />
<Condition Message=""This application requires .NET Framework 3.5. Please install the .NET Framework then run this installer again.""><![CDATA[Installed OR NETFRAMEWORK35]]></Condition>
<Media Id=""1"" Cabinet=""product.cab"" EmbedCab=""yes"" />
<Directory Id=""TARGETDIR"" Name=""SourceDir"">
<Directory Id=""ProgramFilesFolder"" Name=""PFiles"">
";
sw.WriteLine(data);
}
static void footer()
{
string data = @"
<Directory Id=""drivers"" Name=""Drivers"">
<Component Id=""MyDriver"" Guid=""{6AC8226E-A005-437e-A3CD-0FC32D9A346F}"">
<File Id=""apm2inf"" Source=""..\Driver\Arduino MEGA 2560.inf"" />
<difx:Driver AddRemovePrograms='no' Legacy=""yes"" PlugAndPlayPrompt=""no"" />
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id=""ProgramMenuFolder"">
<Directory Id=""ApplicationProgramsFolder"" Name=""APM Planner"" />
</Directory>
</Directory>
<DirectoryRef Id=""ApplicationProgramsFolder"">
<Component Id=""ApplicationShortcut"" Guid=""{8BC628BA-08A0-43d6-88C8-D4C007AC4607}"">
<Shortcut Id=""ApplicationStartMenuShortcut"" Name=""APM Planner"" Description=""Ardupilot Mega Planner"" Target=""[APMPlanner]ArdupilotMegaPlanner.exe"" WorkingDirectory=""APMPlanner"" />
<RemoveFolder Id=""ApplicationProgramsFolder"" On=""uninstall"" />
<Shortcut Id=""UninstallProduct"" Name=""Uninstall APM Planner"" Description=""Uninstalls My Application"" Target=""[System64Folder]msiexec.exe"" Arguments=""/x [ProductCode]"" />
<RegistryValue Root=""HKCU"" Key=""Software\MichaelOborne\APMPlanner"" Name=""installed"" Type=""integer"" Value=""1"" KeyPath=""yes"" />
</Component>
</DirectoryRef>
<Feature Id=""MyFeature"" Title=""My 1st Feature"" Level=""1"">
<ComponentRef Id=""InstallDirPermissions"" />
";
sw.WriteLine(data);
foreach (string comp in components)
{
sw.WriteLine(@"<ComponentRef Id="""+comp+@""" />");
}
data = @"
<ComponentRef Id=""ApplicationShortcut"" />
<ComponentRef Id=""MyDriver"" />
</Feature>
<!-- Step 2: Add UI to your installer / Step 4: Trigger the custom action -->
<Property Id=""WIXUI_INSTALLDIR"" Value=""APMPlanner"" />
<UI>
<UIRef Id=""WixUI_InstallDir"" />
<Publish Dialog=""ExitDialog""
Control=""Finish""
Event=""DoAction""
Value=""LaunchApplication"">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
<Property Id=""WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"" Value=""Launch APM Planner"" />
<!-- Step 3: Include the custom action -->
<Property Id=""WixShellExecTarget"" Value=""[#" + mainexeid + @"]"" />
<CustomAction Id=""LaunchApplication""
BinaryKey=""WixCA""
DllEntry=""WixShellExec""
Impersonate=""yes"" />
</Product>
</Wix>";
sw.WriteLine(data);
}
static void dodirectory(string path, int level = 1)
{
string[] dirs = Directory.GetDirectories(path);
if (level != 0)
sw.WriteLine("<Directory Id=\"" + Path.GetFileName(path).Replace('-', '_') + "\" Name=\"" + Path.GetFileName(path) + "\">");
string[] files = Directory.GetFiles(path);
sw.WriteLine("<Component Id=\"_comp"+no+"\" Guid=\""+ System.Guid.NewGuid().ToString() +"\">");
components.Add("_comp"+no);
foreach (string filepath in files)
{
if (filepath.EndsWith("config.xml") || filepath.Contains("ArdupilotPlanner.log"))
continue;
no++;
sw.WriteLine("<File Id=\"_" + no + "\" Source=\"" + filepath + "\" />");
if (filepath.EndsWith("ArdupilotMegaPlanner.exe")) {
mainexeid = "_" + no;
}
}
sw.WriteLine("</Component>");
foreach (string dir in dirs)
{
if (dir.EndsWith("gmapcache") || dir.EndsWith("srtm"))
continue;
dodirectory(dir);
}
if (level != 0)
sw.WriteLine("</Directory>");
}
static string fixname(string name)
{
name = name.Replace("-", "_");
name = name.Replace(" ", "_");
name = name.Replace(" ", "_");
return name;
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("wix")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("wix")]
[assembly: AssemblyCopyright("Copyright © 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("072e1c12-4a62-4be2-bcff-01fd33b14f95")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,3 @@
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{76374F95-C343-4ACC-B86F-7ECFDD668F46}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>wix</RootNamespace>
<AssemblyName>wix</AssemblyName>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\Msi\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>