mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-11 10:28:29 -04:00
Configurator.Net: Adding Eeprom Save/Reset to default commands
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1635 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
parent
91e5d3d99a
commit
c6c688214f
@ -50,7 +50,6 @@
|
||||
<Compile Include="PresentationModels\PositionAltitudePidsVm.cs" />
|
||||
<Compile Include="PresentationModels\FlightControlPidsVm.cs" />
|
||||
<Compile Include="PresentationModels\ItalksToApm.cs" />
|
||||
<Compile Include="PresentationModels\MonitorVm.cs" />
|
||||
<Compile Include="PresentationModels\MainVm.cs" />
|
||||
<Compile Include="PresentationModels\FlightDataMonitorVm.cs" />
|
||||
<Compile Include="PresentationModels\VmBase.cs" />
|
||||
@ -213,8 +212,10 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\icons\arrow_up.png" />
|
||||
<Content Include="Views\icons\chip.gif" />
|
||||
<Content Include="Views\icons\connect.ico" />
|
||||
<Content Include="Views\icons\disconnect.ico" />
|
||||
<Content Include="Views\icons\install.png" />
|
||||
<Content Include="Views\icons\saveIcon.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
@ -29,13 +29,13 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
new PositionAltitudePidsVm(),
|
||||
//new MotorCommandsVm(session),
|
||||
new CalibrationOffsetsDataVm(),
|
||||
new SerialMonitorVm(session)
|
||||
new SerialMonitorVm()
|
||||
};
|
||||
|
||||
foreach (var vm in MonitorVms)
|
||||
{
|
||||
if (vm is ItalksToApm)
|
||||
(vm as ItalksToApm).sendTextToApm += MainVm_sendTextToApm;
|
||||
vm.sendTextToApm += MainVm_sendTextToApm;
|
||||
}
|
||||
|
||||
ConnectCommand = new DelegateCommand(
|
||||
@ -46,6 +46,10 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
|
||||
RefreshPortListCommand = new DelegateCommand(_ => RefreshPorts());
|
||||
|
||||
RestoreDefaultsCommand = new DelegateCommand(_ => RestoreDefaults(), _ => IsConnected);
|
||||
|
||||
WriteToEepromCommand = new DelegateCommand(_ => WriteToEeprom(), _ => IsConnected);
|
||||
|
||||
ConnectionState = SessionStates.Disconnected;
|
||||
|
||||
AvailablePorts = new BindingList<string>();
|
||||
@ -60,6 +64,8 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
SelectedPort = AvailablePorts[AvailablePorts.Count-1];
|
||||
}
|
||||
|
||||
|
||||
|
||||
void MainVm_sendTextToApm(object sender, sendTextToApmEventArgs e)
|
||||
{
|
||||
if (sender.Equals(_selectedVm)==false)
|
||||
@ -80,6 +86,18 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
AvailablePorts.Add(c);
|
||||
}
|
||||
|
||||
private void RestoreDefaults()
|
||||
{
|
||||
if (_comms.IsConnected)
|
||||
_comms.Send("Y");
|
||||
}
|
||||
|
||||
private void WriteToEeprom()
|
||||
{
|
||||
if (_comms.IsConnected)
|
||||
_comms.Send("W");
|
||||
}
|
||||
|
||||
void _session_LineOfDataReceived(string strRx)
|
||||
{
|
||||
// If we are waiting for the version string
|
||||
@ -106,6 +124,10 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
|
||||
public ICommand RefreshPortListCommand { get; private set; }
|
||||
|
||||
public ICommand RestoreDefaultsCommand { get; private set; }
|
||||
|
||||
public ICommand WriteToEepromCommand { get; private set; }
|
||||
|
||||
public BindingList<string> AvailablePorts { get; private set; }
|
||||
|
||||
public enum SessionStates
|
||||
|
@ -1,184 +0,0 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
|
||||
namespace ArducopterConfigurator
|
||||
{
|
||||
// Vm base has functionality for populating properties using reflection
|
||||
|
||||
/// <summary>
|
||||
/// Monitor VM base class
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Common base for some factored out things like only passing data to an active
|
||||
/// Monitor, etc
|
||||
/// </remarks>
|
||||
public abstract class MonitorVm : NotifyProperyChangedBase, IPresentationModel
|
||||
{
|
||||
private readonly IComms _sp;
|
||||
protected bool isActive;
|
||||
protected string[] PropsInUpdateOrder;
|
||||
|
||||
protected MonitorVm(IComms sp)
|
||||
{
|
||||
_sp = sp;
|
||||
_sp.LineOfDataReceived += sp_LineOfDataReceived;
|
||||
}
|
||||
|
||||
void sp_LineOfDataReceived(string obj)
|
||||
{
|
||||
if (isActive)
|
||||
OnStringReceived(obj);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when the mode is selected
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Any initialising commands should be sent to the serial port
|
||||
/// when this method is called.
|
||||
/// </remarks>
|
||||
public void Activate()
|
||||
{
|
||||
isActive = true;
|
||||
OnActivated();
|
||||
}
|
||||
|
||||
public void DeActivate()
|
||||
{
|
||||
isActive = false;
|
||||
OnDeactivated();
|
||||
}
|
||||
|
||||
public event EventHandler updatedByApm;
|
||||
|
||||
protected virtual void OnDeactivated()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected virtual void OnActivated()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Send raw text to the Arducopter
|
||||
/// </summary>
|
||||
protected void SendString(string strToSend)
|
||||
{
|
||||
if (_sp.IsConnected)
|
||||
_sp.Send(strToSend);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Call-back for text sent back from the Arducopter
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is called when a full line of text is received from the APM
|
||||
/// This will not be called when the mode is not selected
|
||||
/// </remarks>
|
||||
protected abstract void OnStringReceived(string strReceived);
|
||||
|
||||
#region Implementation of IPresentationModel
|
||||
|
||||
public abstract string Name { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
// Common method for populating properties, using a hardcoded
|
||||
// property update order, and reflection to get the property type
|
||||
protected void PopulatePropsFromUpdate(string strRx, bool fireInpc)
|
||||
{
|
||||
|
||||
var strs = strRx.Split(',');
|
||||
|
||||
if (PropsInUpdateOrder.Length!=strs.Length)
|
||||
{
|
||||
Console.WriteLine(Name + ": Processing update with " + strs.Length
|
||||
+ " values, but have " + PropsInUpdateOrder.Length
|
||||
+ " properties to populate. Ignoring this update");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < PropsInUpdateOrder.Length; i++)
|
||||
{
|
||||
var prop = this.GetType().GetProperty(PropsInUpdateOrder[i]);
|
||||
var s = strs[i];
|
||||
object value = null;
|
||||
|
||||
if (prop == null)
|
||||
{
|
||||
Console.WriteLine("Trying to set non existant property: " + PropsInUpdateOrder[i]);
|
||||
break;
|
||||
}
|
||||
|
||||
if (prop.PropertyType == typeof(float))
|
||||
{
|
||||
float val;
|
||||
if (!float.TryParse(s, out val))
|
||||
{
|
||||
Console.WriteLine("Error parsing float: {0}, VM: {1}" + s, Name);
|
||||
break;
|
||||
}
|
||||
value = val;
|
||||
}
|
||||
if (prop.PropertyType == typeof(bool))
|
||||
{
|
||||
float val;
|
||||
if (!float.TryParse(s, out val))
|
||||
{
|
||||
Console.WriteLine("Error parsing float (bool): {0}, VM: {1}" + s, Name);
|
||||
break;
|
||||
}
|
||||
value = val != 0.0;
|
||||
}
|
||||
|
||||
if (prop.PropertyType == typeof(int))
|
||||
{
|
||||
int val;
|
||||
if (!int.TryParse(s, out val))
|
||||
{
|
||||
Console.WriteLine("Error parsing int:{0}, VM: {1}" + s, Name);
|
||||
break;
|
||||
}
|
||||
value = val;
|
||||
}
|
||||
|
||||
prop.SetValue(this, value, null);
|
||||
|
||||
if (fireInpc)
|
||||
FirePropertyChanged(PropsInUpdateOrder[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// Common method for sending/updating data
|
||||
// sentence sent to APM is the commandChar followed by the property
|
||||
// vals in the correct order, seperated by semicolons
|
||||
protected void SendPropsWithCommand(string commandChar)
|
||||
{
|
||||
var strings = new string[PropsInUpdateOrder.Length];
|
||||
for (int i = 0; i < PropsInUpdateOrder.Length; i++)
|
||||
{
|
||||
var prop = this.GetType().GetProperty(PropsInUpdateOrder[i]);
|
||||
|
||||
if (prop.PropertyType == typeof(bool))
|
||||
strings[i] = ((bool) prop.GetValue(this, null)) ? "1" : "0";
|
||||
else
|
||||
strings[i] = prop.GetValue(this, null).ToString();
|
||||
|
||||
}
|
||||
|
||||
var sentence = commandChar + string.Join(";", strings);
|
||||
SendString(sentence);
|
||||
}
|
||||
|
||||
public void handleLineOfText(string strRx)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
public event EventHandler<sendTextToApmEventArgs> sendTextToApm;
|
||||
}
|
||||
}
|
@ -1,17 +1,25 @@
|
||||
using System;
|
||||
|
||||
namespace ArducopterConfigurator.PresentationModels
|
||||
{
|
||||
public class MotorCommandsVm : MonitorVm
|
||||
public class MotorCommandsVm : NotifyProperyChangedBase, IPresentationModel
|
||||
{
|
||||
public MotorCommandsVm(IComms _sp)
|
||||
: base(_sp)
|
||||
{
|
||||
}
|
||||
|
||||
public override string Name
|
||||
public string Name
|
||||
{
|
||||
get { return "Motor Commands"; }
|
||||
}
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
}
|
||||
|
||||
public void DeActivate()
|
||||
{
|
||||
// todo stop
|
||||
}
|
||||
|
||||
public event EventHandler updatedByApm;
|
||||
|
||||
public int MotorFront { get; set; }
|
||||
public int MotorRear { get; set; }
|
||||
public int MotorLeft { get; set; }
|
||||
@ -25,20 +33,10 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
protected override void OnDeactivated()
|
||||
public void handleLineOfText(string strRx)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void OnActivated()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void OnStringReceived(string strReceived)
|
||||
{
|
||||
|
||||
}
|
||||
public event EventHandler<sendTextToApmEventArgs> sendTextToApm;
|
||||
}
|
||||
}
|
@ -3,52 +3,47 @@ using System.IO.Ports;
|
||||
|
||||
namespace ArducopterConfigurator.PresentationModels
|
||||
{
|
||||
public class SerialMonitorVm : MonitorVm
|
||||
public class SerialMonitorVm : NotifyProperyChangedBase, IPresentationModel
|
||||
{
|
||||
private string _text;
|
||||
|
||||
public SerialMonitorVm(IComms _sp) : base(_sp)
|
||||
{
|
||||
_sp.LineOfDataReceived += new Action<string>(_sp_DataReceived);
|
||||
|
||||
}
|
||||
|
||||
void _sp_DataReceived(string obj)
|
||||
{
|
||||
_text += obj;
|
||||
FirePropertyChanged("ReceviedText");
|
||||
}
|
||||
|
||||
public string ReceviedText { get { return _text; } }
|
||||
|
||||
public string SendText { get; set; }
|
||||
|
||||
|
||||
protected override void OnActivated()
|
||||
{
|
||||
|
||||
SendString("X");
|
||||
_text = string.Empty;
|
||||
FirePropertyChanged("ReceviedText");
|
||||
}
|
||||
|
||||
|
||||
protected override void OnStringReceived(string strReceived)
|
||||
{
|
||||
_text += strReceived;
|
||||
FirePropertyChanged("ReceviedText");
|
||||
}
|
||||
|
||||
public override string Name
|
||||
public string Name
|
||||
{
|
||||
get { return "Serial Monitor"; }
|
||||
}
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
_text = string.Empty;
|
||||
FirePropertyChanged("ReceviedText");
|
||||
}
|
||||
|
||||
public void DeActivate()
|
||||
{
|
||||
if (sendTextToApm!=null)
|
||||
sendTextToApm(this, new sendTextToApmEventArgs("X"));
|
||||
}
|
||||
|
||||
public event EventHandler updatedByApm;
|
||||
|
||||
public void SendTextCommand()
|
||||
{
|
||||
SendString(SendText);
|
||||
if (sendTextToApm != null)
|
||||
sendTextToApm(this, new sendTextToApmEventArgs(SendText));
|
||||
SendText = "";
|
||||
FirePropertyChanged("SendText");
|
||||
}
|
||||
|
||||
public void handleLineOfText(string strRx)
|
||||
{
|
||||
_text += strRx + Environment.NewLine;
|
||||
FirePropertyChanged("ReceviedText");
|
||||
}
|
||||
|
||||
public event EventHandler<sendTextToApmEventArgs> sendTextToApm;
|
||||
}
|
||||
}
|
@ -12,10 +12,13 @@ namespace ArducopterConfiguratorTest
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_mockComms = new MockComms();
|
||||
_vm = new MotorCommandsVm(_mockComms);
|
||||
|
||||
}
|
||||
|
||||
// Todo
|
||||
// test that it stops all motors on deactivate
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -3,55 +3,55 @@ using NUnit.Framework;
|
||||
|
||||
namespace ArducopterConfiguratorTest
|
||||
{
|
||||
public abstract class VmTestBase<T> where T : MonitorVm
|
||||
{
|
||||
protected T _vm;
|
||||
protected MockComms _mockComms;
|
||||
protected string sampleLineOfData; // should be taken from a real APM if possible
|
||||
protected string getCommand;
|
||||
protected string setCommand;
|
||||
|
||||
[Test]
|
||||
public void ActivateSendsCorrectCommand()
|
||||
{
|
||||
_vm.Activate();
|
||||
Assert.AreEqual(1, _mockComms.SentItems.Count);
|
||||
Assert.AreEqual(getCommand, _mockComms.SentItems[0]);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReceivedDataIgnoredWhenNotActive()
|
||||
{
|
||||
bool inpcFired = false;
|
||||
_vm.PropertyChanged += delegate { inpcFired = true; };
|
||||
|
||||
_mockComms.FireLineRecieve(sampleLineOfData);
|
||||
Assert.False(inpcFired);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReceivedDataIgnoredAfterDeActive()
|
||||
{
|
||||
_vm.Activate();
|
||||
_mockComms.FireLineRecieve(sampleLineOfData);
|
||||
_vm.DeActivate();
|
||||
_mockComms.FireLineRecieve(sampleLineOfData);
|
||||
bool inpcFired = false;
|
||||
_vm.PropertyChanged += delegate { inpcFired = true; };
|
||||
|
||||
Assert.False(inpcFired);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void UpdateStringReceivedPopulatesValues()
|
||||
{
|
||||
bool inpcFired = false;
|
||||
_vm.PropertyChanged += delegate { inpcFired = true; };
|
||||
|
||||
_vm.Activate();
|
||||
_mockComms.FireLineRecieve(sampleLineOfData);
|
||||
|
||||
Assert.True(inpcFired);
|
||||
}
|
||||
}
|
||||
// public abstract class VmTestBase<T> where T : MonitorVm
|
||||
// {
|
||||
// protected T _vm;
|
||||
// protected MockComms _mockComms;
|
||||
// protected string sampleLineOfData; // should be taken from a real APM if possible
|
||||
// protected string getCommand;
|
||||
// protected string setCommand;
|
||||
//
|
||||
// [Test]
|
||||
// public void ActivateSendsCorrectCommand()
|
||||
// {
|
||||
// _vm.Activate();
|
||||
// Assert.AreEqual(1, _mockComms.SentItems.Count);
|
||||
// Assert.AreEqual(getCommand, _mockComms.SentItems[0]);
|
||||
// }
|
||||
//
|
||||
// [Test]
|
||||
// public void ReceivedDataIgnoredWhenNotActive()
|
||||
// {
|
||||
// bool inpcFired = false;
|
||||
// _vm.PropertyChanged += delegate { inpcFired = true; };
|
||||
//
|
||||
// _mockComms.FireLineRecieve(sampleLineOfData);
|
||||
// Assert.False(inpcFired);
|
||||
// }
|
||||
//
|
||||
// [Test]
|
||||
// public void ReceivedDataIgnoredAfterDeActive()
|
||||
// {
|
||||
// _vm.Activate();
|
||||
// _mockComms.FireLineRecieve(sampleLineOfData);
|
||||
// _vm.DeActivate();
|
||||
// _mockComms.FireLineRecieve(sampleLineOfData);
|
||||
// bool inpcFired = false;
|
||||
// _vm.PropertyChanged += delegate { inpcFired = true; };
|
||||
//
|
||||
// Assert.False(inpcFired);
|
||||
// }
|
||||
//
|
||||
// [Test]
|
||||
// public void UpdateStringReceivedPopulatesValues()
|
||||
// {
|
||||
// bool inpcFired = false;
|
||||
// _vm.PropertyChanged += delegate { inpcFired = true; };
|
||||
//
|
||||
// _vm.Activate();
|
||||
// _mockComms.FireLineRecieve(sampleLineOfData);
|
||||
//
|
||||
// Assert.True(inpcFired);
|
||||
// }
|
||||
// }
|
||||
}
|
@ -29,6 +29,7 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AcroConfigView));
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.AcroModeConfigVmBindingSource = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.groupBox4 = new System.Windows.Forms.GroupBox();
|
||||
@ -65,11 +66,11 @@
|
||||
// button2
|
||||
//
|
||||
this.button2.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.AcroModeConfigVmBindingSource, "RefreshCommand", true));
|
||||
this.button2.Location = new System.Drawing.Point(125, 109);
|
||||
this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image")));
|
||||
this.button2.Location = new System.Drawing.Point(206, 108);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(65, 23);
|
||||
this.button2.Size = new System.Drawing.Size(26, 26);
|
||||
this.button2.TabIndex = 12;
|
||||
this.button2.Text = "Refresh";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// AcroModeConfigVmBindingSource
|
||||
@ -277,11 +278,11 @@
|
||||
// button1
|
||||
//
|
||||
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.AcroModeConfigVmBindingSource, "UpdateCommand", true));
|
||||
this.button1.Location = new System.Drawing.Point(196, 109);
|
||||
this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));
|
||||
this.button1.Location = new System.Drawing.Point(235, 108);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(65, 23);
|
||||
this.button1.Size = new System.Drawing.Size(26, 26);
|
||||
this.button1.TabIndex = 8;
|
||||
this.button1.Text = "Update";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// textBox10
|
||||
|
@ -120,6 +120,90 @@
|
||||
<metadata name="AcroModeConfigVmBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAALVSURBVDhPY2CgGojfz8Hgd0SKIXC/DBiD2CAxYoFW3fnE
|
||||
yHl37sUvufskFogj591+KF92NhGkXzDjqI5GzdlyqawjBjjNk8g6GpK35t7XGeff/p8OxJ0Hn/3RqjyZ
|
||||
yhC4Uyx8xrXDc0++/l+x4cEF3bLjngwM9UyoBlms5LRvOzOncfeT/73HXv7vP/Hqf+GaO+9ks/bbMPiv
|
||||
F/DqPTeza9fDz+uuvv9fs/HeVbA4MpBL2eGTv+rWh66Dz/7Hzrx0r2TN7S+xMy7eYXBbLgtWZzyTSyVr
|
||||
b2Hp6hsf5p569T94wpntDPbzBaBmpLE61R2cWb/94f/U+ZfeiEVv8DMr2VNmVbZ7CoNFLyfCono248Kd
|
||||
rR077/+tWHvzo3zyRg+InFK3mH/HoVPVm+79927av41BvZMXaCMrg8tMfvQAE/Ceq58w/fSr2g13/qsk
|
||||
rS6HyKvUy1iW7bgVMOXCf930NdMZGEKZcYa0Vb+6VdXu54FTzv+XjVjUCHVBsZh6ypoTetVH/qvELVnO
|
||||
wBCPGvcWvUI8tl3BQIv4xDwnR+kU7f6uU7r3t4jX1GSYRczygTMm6JXu/6+RvPo+p36VGbILhBy73IzS
|
||||
Vz5T8J82XSly/gn1koP/NVNXP+W2aNKFqxMwrbbTSlrxSit/938538kHuVRyDWFekXDuqtXK3flfIXXz
|
||||
H4X07f/Usnf8l/PqB3rVmBXJImNWCYfmOs3ktd+0snb8142ed0fMtCqQgcGVWyVg6laxxB3/2SJ3/BdO
|
||||
2PFf0X/aLVbVLIwUycjAby8gZl7aqR0x75NuyJRrfCrhbgwitkYawdMeKyVt/i8ZswEY8pv+6wRPfcKp
|
||||
EGOO7E1GIIcdiMUYGPiNOMVt8lh51FKAfC8GJu4IbjnPqbwqEct5VCMX86nFLBBUj2piFdTTgeoB6QUD
|
||||
UNoGhT4vEAsCsSgQSwKxFBBLQPnCQFoAiLmhmsH5AQAEwRbllcrpQwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="button1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
c7uNnGi8xn9S4RHZGLiTUQAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>259, 17</value>
|
||||
</metadata>
|
||||
|
@ -29,6 +29,7 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AltitudeHoldConfigView));
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
@ -73,7 +74,7 @@
|
||||
this.textBox4.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.AltitudeHoldConfigBindingSource, "D", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.textBox4.Location = new System.Drawing.Point(27, 64);
|
||||
this.textBox4.Name = "textBox4";
|
||||
this.textBox4.Size = new System.Drawing.Size(78, 20);
|
||||
this.textBox4.Size = new System.Drawing.Size(50, 20);
|
||||
this.textBox4.TabIndex = 13;
|
||||
//
|
||||
// AltitudeHoldConfigBindingSource
|
||||
@ -85,7 +86,7 @@
|
||||
this.textBox5.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.AltitudeHoldConfigBindingSource, "I", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.textBox5.Location = new System.Drawing.Point(27, 38);
|
||||
this.textBox5.Name = "textBox5";
|
||||
this.textBox5.Size = new System.Drawing.Size(78, 20);
|
||||
this.textBox5.Size = new System.Drawing.Size(50, 20);
|
||||
this.textBox5.TabIndex = 12;
|
||||
//
|
||||
// textBox6
|
||||
@ -93,29 +94,29 @@
|
||||
this.textBox6.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.AltitudeHoldConfigBindingSource, "P", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.textBox6.Location = new System.Drawing.Point(27, 12);
|
||||
this.textBox6.Name = "textBox6";
|
||||
this.textBox6.Size = new System.Drawing.Size(78, 20);
|
||||
this.textBox6.Size = new System.Drawing.Size(50, 20);
|
||||
this.textBox6.TabIndex = 11;
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.button2.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.AltitudeHoldConfigBindingSource, "RefreshCommand", true));
|
||||
this.button2.Location = new System.Drawing.Point(119, 96);
|
||||
this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image")));
|
||||
this.button2.Location = new System.Drawing.Point(205, 93);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(74, 23);
|
||||
this.button2.Size = new System.Drawing.Size(26, 26);
|
||||
this.button2.TabIndex = 18;
|
||||
this.button2.Text = "Refresh";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.AltitudeHoldConfigBindingSource, "UpdateCommand", true));
|
||||
this.button1.Location = new System.Drawing.Point(199, 96);
|
||||
this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));
|
||||
this.button1.Location = new System.Drawing.Point(237, 93);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(74, 23);
|
||||
this.button1.Size = new System.Drawing.Size(26, 26);
|
||||
this.button1.TabIndex = 17;
|
||||
this.button1.Text = "Update";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// AltitudeHoldConfigView
|
||||
|
@ -120,4 +120,88 @@
|
||||
<metadata name="AltitudeHoldConfigBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALVSURBVDhPY2CgGojfz8Hgd0SKIXC/DBiD2CAxYoFW3fnE
|
||||
yHl37sUvufskFogj591+KF92NhGkXzDjqI5GzdlyqawjBjjNk8g6GpK35t7XGeff/p8OxJ0Hn/3RqjyZ
|
||||
yhC4Uyx8xrXDc0++/l+x4cEF3bLjngwM9UyoBlms5LRvOzOncfeT/73HXv7vP/Hqf+GaO+9ks/bbMPiv
|
||||
F/DqPTeza9fDz+uuvv9fs/HeVbA4MpBL2eGTv+rWh66Dz/7Hzrx0r2TN7S+xMy7eYXBbLgtWZzyTSyVr
|
||||
b2Hp6hsf5p569T94wpntDPbzBaBmpLE61R2cWb/94f/U+ZfeiEVv8DMr2VNmVbZ7CoNFLyfCono248Kd
|
||||
rR077/+tWHvzo3zyRg+InFK3mH/HoVPVm+79927av41BvZMXaCMrg8tMfvQAE/Ceq58w/fSr2g13/qsk
|
||||
rS6HyKvUy1iW7bgVMOXCf930NdMZGEKZcYa0Vb+6VdXu54FTzv+XjVjUCHVBsZh6ypoTetVH/qvELVnO
|
||||
wBCPGvcWvUI8tl3BQIv4xDwnR+kU7f6uU7r3t4jX1GSYRczygTMm6JXu/6+RvPo+p36VGbILhBy73IzS
|
||||
Vz5T8J82XSly/gn1koP/NVNXP+W2aNKFqxMwrbbTSlrxSit/938538kHuVRyDWFekXDuqtXK3flfIXXz
|
||||
H4X07f/Usnf8l/PqB3rVmBXJImNWCYfmOs3ktd+0snb8142ed0fMtCqQgcGVWyVg6laxxB3/2SJ3/BdO
|
||||
2PFf0X/aLVbVLIwUycjAby8gZl7aqR0x75NuyJRrfCrhbgwitkYawdMeKyVt/i8ZswEY8pv+6wRPfcKp
|
||||
EGOO7E1GIIcdiMUYGPiNOMVt8lh51FKAfC8GJu4IbjnPqbwqEct5VCMX86nFLBBUj2piFdTTgeoB6QUD
|
||||
UNoGhT4vEAsCsSgQSwKxFBBLQPnCQFoAiLmhmsH5AQAEwRbllcrpQwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="button1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
|
||||
DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
|
||||
bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
|
||||
sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
|
||||
AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
|
||||
JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
|
||||
3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
|
||||
li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
|
||||
ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
|
||||
wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
|
||||
hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
|
||||
4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
|
||||
VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
|
||||
5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
|
||||
qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
|
||||
j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
|
||||
1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
|
||||
rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
|
||||
fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
|
||||
B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
|
||||
yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
|
||||
YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
|
||||
yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
|
||||
vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
|
||||
vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
|
||||
Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
|
||||
bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
|
||||
llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
|
||||
ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
|
||||
xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
|
||||
eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
|
||||
YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
|
||||
XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
|
||||
WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
|
||||
xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
|
||||
dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
|
||||
V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
|
||||
Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
|
||||
Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
|
||||
PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
|
||||
0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
|
||||
/HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
|
||||
XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
|
||||
fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
|
||||
tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
|
||||
6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALEgAACxIB0t1+/AAAA11JREFUOE8tkYtTVHUU
|
||||
x+8fU5PCUjjlMDT42JB4qcSjoumxk00FG6USapngOrvuDg+BSlYmZQKFxWZyyiBRHBChKMCw5e6CzYag
|
||||
su+9+4gWVxb49NulO/d353vO/X7P+Z7zk87/uICm7nvKdcM0X/wV0yWZxss2mjplmnptNPdYOdM9TUOP
|
||||
wL3zGDrsFNf+wgHdBB39i0hv1o2g7fRwuHueGP8/q4/hSQKvsyq+ImJD4LggxAU+1D3LwU4Hr33+A9Le
|
||||
oz9RdcVNlcXJCmtJycamVgjjIpNUCyTUIsfGKtre+2gtS5Qdv4FUeqyP97vmqLgYSDZ94P2XwZkAN60x
|
||||
rt2L0C+HGbaLnC3EootkQY1wW9n7kPzqfqTiqhtUfuOi8oJDdIiKDrGkzc0RErGQxJ8kUNIJ6zHe6/ib
|
||||
D8z32X9sAKnok2E0ZheadgdrwuJfnjhX70W5Lke4PhukzxblZ1lhdNrDgivGmqj3zrcPeLdlnvxPryCp
|
||||
K76j+JxM+dkZUX098W52E51Y+ydpOWFm8yR2Eqf47BQfti6Sre1BytZcZl/rAiUtM1y1K4K2klxUcmEC
|
||||
r4jlJadhmaiYbcD+mDcaZygxybx0QNxCztuXeNk4TaHBwT6TlULdHUrFz4LTMjkmO4UNVor0s+QZJilu
|
||||
tJNjnCS3aY699XfY+VY3UlbZBfbofydXP4VakLKFUH1yFnWtzO5TVgp0IxTUTZCnnyD/5G/k1N0lq/Yu
|
||||
ebpJdrzehZRZ1kXWF1Pk1/wpROOMzM2zrISIB7x4gg9ZCiooyiPcvgh/yH627DpNYa0N9WdTZLzSiZRW
|
||||
0E7mUSsvHpHZXj2KKxwi/VUL6fst+PwhQoEois9JNODE6w6gUhvYXjNGxvEJnk8UyCz5igztGNuqx0mr
|
||||
GScYdvJ0mYWUcguegAMlGEYJLeFVgrgDYZ5RN/Ls4VukHxlFlWtGOnWmj5S8Zl74aAjVx7cJesNsKe0i
|
||||
teg8YW+EZf8KTk8In+LC5/Og2tHCtkMjgiv42V8jifuRdK23Sd3VhkorCvjcOMMBYd9FRHR1ej34I4/w
|
||||
B9yERLw180tSBO+pipuk7hEOEgUS50STsKU+iPHcKCbzLYzmQRrahzC1DVLfNkR9+wCGtjHSdurZmlXP
|
||||
c7uNnGi8xn9S4RHZGLiTUQAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
@ -40,6 +40,8 @@ namespace ArducopterConfigurator
|
||||
this.lblConnectionStatus = new System.Windows.Forms.Label();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
this.button4 = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.mainVmBindingSource)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.availablePortsBindingSource)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
@ -54,7 +56,7 @@ namespace ArducopterConfigurator
|
||||
this.tabCtrlMonitorVms.Location = new System.Drawing.Point(12, 10);
|
||||
this.tabCtrlMonitorVms.Name = "tabCtrlMonitorVms";
|
||||
this.tabCtrlMonitorVms.SelectedIndex = 0;
|
||||
this.tabCtrlMonitorVms.Size = new System.Drawing.Size(530, 396);
|
||||
this.tabCtrlMonitorVms.Size = new System.Drawing.Size(530, 386);
|
||||
this.tabCtrlMonitorVms.TabIndex = 3;
|
||||
this.tabCtrlMonitorVms.Selected += new System.Windows.Forms.TabControlEventHandler(this.tabCtrlConfigs_Selected);
|
||||
//
|
||||
@ -102,7 +104,7 @@ namespace ArducopterConfigurator
|
||||
// lblConnectionStatus
|
||||
//
|
||||
this.lblConnectionStatus.AutoSize = true;
|
||||
this.lblConnectionStatus.Location = new System.Drawing.Point(307, 417);
|
||||
this.lblConnectionStatus.Location = new System.Drawing.Point(189, 418);
|
||||
this.lblConnectionStatus.Name = "lblConnectionStatus";
|
||||
this.lblConnectionStatus.Size = new System.Drawing.Size(112, 13);
|
||||
this.lblConnectionStatus.TabIndex = 8;
|
||||
@ -121,11 +123,35 @@ namespace ArducopterConfigurator
|
||||
this.toolTip.SetToolTip(this.button2, "Refresh port list");
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.mainVmBindingSource, "RestoreDefaultsCommand", true, System.Windows.Forms.DataSourceUpdateMode.Never));
|
||||
this.button3.Image = ((System.Drawing.Image)(resources.GetObject("button3.Image")));
|
||||
this.button3.Location = new System.Drawing.Point(502, 402);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(40, 34);
|
||||
this.button3.TabIndex = 10;
|
||||
this.toolTip.SetToolTip(this.button3, "Restore Defaults");
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button4
|
||||
//
|
||||
this.button4.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.mainVmBindingSource, "WriteToEepromCommand", true));
|
||||
this.button4.Image = ((System.Drawing.Image)(resources.GetObject("button4.Image")));
|
||||
this.button4.Location = new System.Drawing.Point(456, 402);
|
||||
this.button4.Name = "button4";
|
||||
this.button4.Size = new System.Drawing.Size(40, 34);
|
||||
this.button4.TabIndex = 11;
|
||||
this.toolTip.SetToolTip(this.button4, "Save to Eprom");
|
||||
this.button4.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// mainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(554, 445);
|
||||
this.Controls.Add(this.button4);
|
||||
this.Controls.Add(this.button3);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.lblConnectionStatus);
|
||||
this.Controls.Add(this.button1);
|
||||
@ -154,6 +180,8 @@ namespace ArducopterConfigurator
|
||||
private System.Windows.Forms.Label lblConnectionStatus;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.ToolTip toolTip;
|
||||
private System.Windows.Forms.Button button3;
|
||||
private System.Windows.Forms.Button button4;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -178,6 +178,55 @@
|
||||
LyBmXtqpHTHvk27IlGt8KuFuDCK2RhrB0x4rJW3+LxmzARjym/7rBE99wqkQY47sTUYghx2IxRgY+I04
|
||||
xW3yWHnUUoB8LwYm7ghuOc+pvCoRy3lUIxfzqcUsEFSPamIV1NOB6gHpBQNQ2gaFPi8QCwKxKBBLArEU
|
||||
EEtA+cJAWgCIuaGawfkBAATBFuWVyulDAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="button3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="button4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
R0lGODlhIAAYAIcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8BISEh0dHSEhISIiISUlIDc3
|
||||
Nzw8PD09PURERExMTGdnZ21tbYuLi5+fn6ioqKqqqvT09Pr6+v39/f7+/v///wAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/78KCgpICAgP8AAAD/AP//AAAA//8A/wD/////
|
||||
/yH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAD9ACwAAAAAIAAYAAAI3gD7CRzY70LBgwYTIiTIsKHAChkg
|
||||
SoxIcaLDi/0iZNDIcaPHjhgbSoBAsqTJkxBCCrxQIYJLlDAhMGAwgULIDBsjLKDwoKfPnw9m4sR5kaXL
|
||||
CBQsAF06k6ZNjDhdLp3qwMHQDEVbSp0KtGnNmzm5dmVwNetRsT+9Pr0YNQJanw0alHVodOtbtWDtohU6
|
||||
1KxesXihhn0blGxfulrdEg7MdvBdw0QRH11AubLlygoUOA2JYePlz5ivYlVJtnQG06hHqxw4IUPr165j
|
||||
w15NkEIG27hv685NmyDW3/2AC8cYEAA7
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
Loading…
Reference in New Issue
Block a user