Configurator.Net: More work on TX calibration

git-svn-id: https://arducopter.googlecode.com/svn/trunk@1709 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
mandrolic 2011-02-21 15:35:09 +00:00
parent 417df6aaaa
commit f4df0ec89f
5 changed files with 77 additions and 199 deletions

View File

@ -76,8 +76,10 @@ namespace ArducopterConfigurator
// Right Motor Command = 1002 // Right Motor Command = 1002
// Left Motor Command = 1004 // Left Motor Command = 1004
// then adc 4,3, and 5 // then adc 4,3, and 5
// mag heading float * 3
// mag heading int * 3
_jabberData = "2,-10,3,-2,1011,1012,1002,1000,1001,1200,1003,1400,1000,1000,1000"; _jabberData = "2,-10,3,-2,1011,1012,1002,1000,1001,1200,1003,1400,1000,1000,1000,1.000,1.000,1.000,0,0,0";
StartJabber(); StartJabber();
} }
if (stringSent == "X") if (stringSent == "X")

View File

@ -44,12 +44,7 @@ namespace ArducopterConfigurator.PresentationModels
{ {
StartCalibrationCommand = new DelegateCommand(_ => BeginCalibration(),_=>!IsCalibrating); StartCalibrationCommand = new DelegateCommand(_ => BeginCalibration(),_=>!IsCalibrating);
SaveCalibrationCommand = new DelegateCommand(_ => SaveCalibration(),_=> IsCalibrating); SaveCalibrationCommand = new DelegateCommand(_ => SaveCalibration(),_=> IsCalibrating);
// todo: cancel calibration?
CancelCalibrationCommand = new DelegateCommand(_ => CancelCalibration(), _ => IsCalibrating); CancelCalibrationCommand = new DelegateCommand(_ => CancelCalibration(), _ => IsCalibrating);
ResetCommand = new DelegateCommand(_ => ResetWatermarks());
} }
@ -61,16 +56,17 @@ namespace ArducopterConfigurator.PresentationModels
private void BeginCalibration() private void BeginCalibration()
{ {
ResetWatermarks();
IsCalibrating = true;
// send x command to stop jabber // send x command to stop jabber
sendString(STOP_UPDATES); sendString(STOP_UPDATES);
ResetWatermarks();
IsCalibrating = true;
// send command to clear the slope and offsets // send command to clear the slope and offsets
// 11;0;1;0;1;0;1;0;1;0;1;0; // 11;0;1;0;1;0;1;0;1;0;1;0;
sendString("11;0;1;0;1;0;1;0;1;0;1;0;"); sendString("11;0;1;0;1;0;1;0;1;0;1;0;");
// continue the sensor // continue the sensor
sendString(START_UPDATES); sendString(START_UPDATES);
@ -80,6 +76,7 @@ namespace ArducopterConfigurator.PresentationModels
private void CancelCalibration() private void CancelCalibration()
{ {
IsCalibrating = false; IsCalibrating = false;
HideWatermarks();
} }
private float GetScale(int min, int max) private float GetScale(int min, int max)
@ -116,7 +113,7 @@ namespace ArducopterConfigurator.PresentationModels
var vals = string.Format("{0:0.00};{1};{2:0.00};{3};{4:0.00};{5};{6:0.00};{7};{8:0.00};{9};{10:0.00};{11};", var vals = string.Format("{0:0.00};{1:0.00};{2:0.00};{3:0.00};{4:0.00};{5:0.00};{6:0.00};{7:0.00};{8:0.00};{9:0.00};{10:0.00};{11:0.00};",
GetScale(RollMin, RollMax), GetScale(RollMin, RollMax),
GetOffset(RollMin, RollMax), GetOffset(RollMin, RollMax),
GetScale(PitchMin, PitchMax), GetScale(PitchMin, PitchMax),
@ -136,7 +133,7 @@ namespace ArducopterConfigurator.PresentationModels
IsCalibrating = false; IsCalibrating = false;
HideWatermarks();
// save // save
//sendString(WRITE_TO_EEPROM); //sendString(WRITE_TO_EEPROM);
} }
@ -151,7 +148,16 @@ namespace ArducopterConfigurator.PresentationModels
ModeMax = ModeMin = Mode; ModeMax = ModeMin = Mode;
} }
public ICommand ResetCommand { get; private set; } private void HideWatermarks()
{
ThrottleMin = ThrottleMax = 0;
RollMax = RollMin = 0;
YawMax = YawMin = 0;
PitchMax = PitchMin = 0;
AuxMax = AuxMin = 0;
ModeMax = ModeMin = 0;
}
public ICommand StartCalibrationCommand { get; private set; } public ICommand StartCalibrationCommand { get; private set; }
public ICommand SaveCalibrationCommand { get; private set; } public ICommand SaveCalibrationCommand { get; private set; }
public ICommand CancelCalibrationCommand { get; private set; } public ICommand CancelCalibrationCommand { get; private set; }
@ -183,8 +189,6 @@ namespace ArducopterConfigurator.PresentationModels
public void handleLineOfText(string strRx) public void handleLineOfText(string strRx)
{ {
PropertyHelper.PopulatePropsFromUpdate(this, _propsInUpdateOrder, strRx, false); PropertyHelper.PopulatePropsFromUpdate(this, _propsInUpdateOrder, strRx, false);
} }
public event EventHandler<sendTextToApmEventArgs> sendTextToApm; public event EventHandler<sendTextToApmEventArgs> sendTextToApm;

View File

@ -21,8 +21,8 @@ namespace ArducopterConfigurator
var t = Type.GetType("Mono.Runtime"); var t = Type.GetType("Mono.Runtime");
IsMonoRuntime = (t != null); IsMonoRuntime = (t != null);
var session = new CommsSession(); //var session = new CommsSession();
//var session = new FakeCommsSession(); var session = new FakeCommsSession();
var mainVm = new MainVm(session); var mainVm = new MainVm(session);

View File

@ -49,12 +49,10 @@
this.linearIndicatorControl4 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl(); this.linearIndicatorControl4 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
this.linearIndicatorControl5 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl(); this.linearIndicatorControl5 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
this.linearIndicatorControl6 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl(); this.linearIndicatorControl6 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
this.button1 = new System.Windows.Forms.Button();
this.label12 = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label(); this.label11 = new System.Windows.Forms.Label();
this.button3 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button();
this.label6 = new System.Windows.Forms.Label();
this.button4 = new System.Windows.Forms.Button(); this.button4 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.TransmitterChannelsBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.TransmitterChannelsBindingSource)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
@ -93,10 +91,11 @@
// textBox6 // textBox6
// //
this.textBox6.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Yaw", true)); this.textBox6.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Yaw", true));
this.textBox6.Location = new System.Drawing.Point(212, 26); this.textBox6.Enabled = false;
this.textBox6.Location = new System.Drawing.Point(206, 26);
this.textBox6.Name = "textBox6"; this.textBox6.Name = "textBox6";
this.textBox6.ReadOnly = true; this.textBox6.ReadOnly = true;
this.textBox6.Size = new System.Drawing.Size(47, 20); this.textBox6.Size = new System.Drawing.Size(35, 20);
this.textBox6.TabIndex = 29; this.textBox6.TabIndex = 29;
// //
// label3 // label3
@ -111,43 +110,47 @@
// textBox1 // textBox1
// //
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Roll", true)); this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Roll", true));
this.textBox1.Location = new System.Drawing.Point(212, 76); this.textBox1.Enabled = false;
this.textBox1.Location = new System.Drawing.Point(206, 76);
this.textBox1.Name = "textBox1"; this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true; this.textBox1.ReadOnly = true;
this.textBox1.Size = new System.Drawing.Size(47, 20); this.textBox1.Size = new System.Drawing.Size(35, 20);
this.textBox1.TabIndex = 32; this.textBox1.TabIndex = 32;
// //
// textBox2 // textBox2
// //
this.textBox2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Throttle", true)); this.textBox2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Throttle", true));
this.textBox2.Location = new System.Drawing.Point(7, 147); this.textBox2.Enabled = false;
this.textBox2.Location = new System.Drawing.Point(13, 141);
this.textBox2.Name = "textBox2"; this.textBox2.Name = "textBox2";
this.textBox2.ReadOnly = true; this.textBox2.ReadOnly = true;
this.textBox2.Size = new System.Drawing.Size(47, 20); this.textBox2.Size = new System.Drawing.Size(35, 20);
this.textBox2.TabIndex = 35; this.textBox2.TabIndex = 35;
// //
// textBox3 // textBox3
// //
this.textBox3.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Pitch", true)); this.textBox3.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Pitch", true));
this.textBox3.Location = new System.Drawing.Point(59, 147); this.textBox3.Enabled = false;
this.textBox3.Location = new System.Drawing.Point(65, 141);
this.textBox3.Name = "textBox3"; this.textBox3.Name = "textBox3";
this.textBox3.ReadOnly = true; this.textBox3.ReadOnly = true;
this.textBox3.Size = new System.Drawing.Size(47, 20); this.textBox3.Size = new System.Drawing.Size(35, 20);
this.textBox3.TabIndex = 36; this.textBox3.TabIndex = 36;
// //
// textBox4 // textBox4
// //
this.textBox4.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Mode", true)); this.textBox4.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Mode", true));
this.textBox4.Location = new System.Drawing.Point(143, 186); this.textBox4.Enabled = false;
this.textBox4.Location = new System.Drawing.Point(118, 182);
this.textBox4.Name = "textBox4"; this.textBox4.Name = "textBox4";
this.textBox4.ReadOnly = true; this.textBox4.ReadOnly = true;
this.textBox4.Size = new System.Drawing.Size(47, 20); this.textBox4.Size = new System.Drawing.Size(35, 20);
this.textBox4.TabIndex = 39; this.textBox4.TabIndex = 39;
// //
// label4 // label4
// //
this.label4.AutoSize = true; this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(156, 104); this.label4.Location = new System.Drawing.Point(123, 106);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(34, 13); this.label4.Size = new System.Drawing.Size(34, 13);
this.label4.TabIndex = 38; this.label4.TabIndex = 38;
@ -156,16 +159,17 @@
// textBox5 // textBox5
// //
this.textBox5.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Aux", true)); this.textBox5.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.TransmitterChannelsBindingSource, "Aux", true));
this.textBox5.Location = new System.Drawing.Point(203, 186); this.textBox5.Enabled = false;
this.textBox5.Location = new System.Drawing.Point(176, 182);
this.textBox5.Name = "textBox5"; this.textBox5.Name = "textBox5";
this.textBox5.ReadOnly = true; this.textBox5.ReadOnly = true;
this.textBox5.Size = new System.Drawing.Size(47, 20); this.textBox5.Size = new System.Drawing.Size(35, 20);
this.textBox5.TabIndex = 42; this.textBox5.TabIndex = 42;
// //
// label5 // label5
// //
this.label5.AutoSize = true; this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(209, 104); this.label5.Location = new System.Drawing.Point(176, 106);
this.label5.Name = "label5"; this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(25, 13); this.label5.Size = new System.Drawing.Size(25, 13);
this.label5.TabIndex = 41; this.label5.TabIndex = 41;
@ -183,7 +187,7 @@
this.linearIndicatorControl3.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "ThrottleMin", true, System.Windows.Forms.DataSourceUpdateMode.Never)); this.linearIndicatorControl3.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "ThrottleMin", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.linearIndicatorControl3.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Throttle", true, System.Windows.Forms.DataSourceUpdateMode.Never)); this.linearIndicatorControl3.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Throttle", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.linearIndicatorControl3.IsVertical = true; this.linearIndicatorControl3.IsVertical = true;
this.linearIndicatorControl3.Location = new System.Drawing.Point(16, 30); this.linearIndicatorControl3.Location = new System.Drawing.Point(23, 30);
this.linearIndicatorControl3.Max = 2000; this.linearIndicatorControl3.Max = 2000;
this.linearIndicatorControl3.MaxWaterMark = 0; this.linearIndicatorControl3.MaxWaterMark = 0;
this.linearIndicatorControl3.Min = 1000; this.linearIndicatorControl3.Min = 1000;
@ -207,7 +211,7 @@
this.linearIndicatorControl1.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "PitchMin", true, System.Windows.Forms.DataSourceUpdateMode.Never)); this.linearIndicatorControl1.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "PitchMin", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.linearIndicatorControl1.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Pitch", true)); this.linearIndicatorControl1.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Pitch", true));
this.linearIndicatorControl1.IsVertical = true; this.linearIndicatorControl1.IsVertical = true;
this.linearIndicatorControl1.Location = new System.Drawing.Point(67, 30); this.linearIndicatorControl1.Location = new System.Drawing.Point(75, 30);
this.linearIndicatorControl1.Max = 2000; this.linearIndicatorControl1.Max = 2000;
this.linearIndicatorControl1.MaxWaterMark = 0; this.linearIndicatorControl1.MaxWaterMark = 0;
this.linearIndicatorControl1.Min = 1000; this.linearIndicatorControl1.Min = 1000;
@ -231,7 +235,7 @@
this.linearIndicatorControl2.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "ModeMin", true, System.Windows.Forms.DataSourceUpdateMode.Never)); this.linearIndicatorControl2.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "ModeMin", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.linearIndicatorControl2.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Mode", true)); this.linearIndicatorControl2.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Mode", true));
this.linearIndicatorControl2.IsVertical = true; this.linearIndicatorControl2.IsVertical = true;
this.linearIndicatorControl2.Location = new System.Drawing.Point(161, 123); this.linearIndicatorControl2.Location = new System.Drawing.Point(128, 125);
this.linearIndicatorControl2.Max = 2000; this.linearIndicatorControl2.Max = 2000;
this.linearIndicatorControl2.MaxWaterMark = 0; this.linearIndicatorControl2.MaxWaterMark = 0;
this.linearIndicatorControl2.Min = 1000; this.linearIndicatorControl2.Min = 1000;
@ -255,7 +259,7 @@
this.linearIndicatorControl4.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "AuxMin", true, System.Windows.Forms.DataSourceUpdateMode.Never)); this.linearIndicatorControl4.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "AuxMin", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.linearIndicatorControl4.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Aux", true)); this.linearIndicatorControl4.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Aux", true));
this.linearIndicatorControl4.IsVertical = true; this.linearIndicatorControl4.IsVertical = true;
this.linearIndicatorControl4.Location = new System.Drawing.Point(212, 123); this.linearIndicatorControl4.Location = new System.Drawing.Point(186, 125);
this.linearIndicatorControl4.Max = 2000; this.linearIndicatorControl4.Max = 2000;
this.linearIndicatorControl4.MaxWaterMark = 0; this.linearIndicatorControl4.MaxWaterMark = 0;
this.linearIndicatorControl4.Min = 1000; this.linearIndicatorControl4.Min = 1000;
@ -279,7 +283,7 @@
this.linearIndicatorControl5.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "RollMin", true, System.Windows.Forms.DataSourceUpdateMode.Never)); this.linearIndicatorControl5.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "RollMin", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.linearIndicatorControl5.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Roll", true)); this.linearIndicatorControl5.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Roll", true));
this.linearIndicatorControl5.IsVertical = false; this.linearIndicatorControl5.IsVertical = false;
this.linearIndicatorControl5.Location = new System.Drawing.Point(106, 76); this.linearIndicatorControl5.Location = new System.Drawing.Point(106, 79);
this.linearIndicatorControl5.Max = 2000; this.linearIndicatorControl5.Max = 2000;
this.linearIndicatorControl5.MaxWaterMark = 0; this.linearIndicatorControl5.MaxWaterMark = 0;
this.linearIndicatorControl5.Min = 1000; this.linearIndicatorControl5.Min = 1000;
@ -303,7 +307,7 @@
this.linearIndicatorControl6.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "YawMin", true, System.Windows.Forms.DataSourceUpdateMode.Never)); this.linearIndicatorControl6.DataBindings.Add(new System.Windows.Forms.Binding("MinWatermark", this.TransmitterChannelsBindingSource, "YawMin", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.linearIndicatorControl6.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Yaw", true)); this.linearIndicatorControl6.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.TransmitterChannelsBindingSource, "Yaw", true));
this.linearIndicatorControl6.IsVertical = false; this.linearIndicatorControl6.IsVertical = false;
this.linearIndicatorControl6.Location = new System.Drawing.Point(106, 26); this.linearIndicatorControl6.Location = new System.Drawing.Point(106, 29);
this.linearIndicatorControl6.Max = 2000; this.linearIndicatorControl6.Max = 2000;
this.linearIndicatorControl6.MaxWaterMark = 0; this.linearIndicatorControl6.MaxWaterMark = 0;
this.linearIndicatorControl6.Min = 1000; this.linearIndicatorControl6.Min = 1000;
@ -315,20 +319,10 @@
this.linearIndicatorControl6.Value = 1200; this.linearIndicatorControl6.Value = 1200;
this.linearIndicatorControl6.WatermarkLineColor = System.Drawing.Color.Red; this.linearIndicatorControl6.WatermarkLineColor = System.Drawing.Color.Red;
// //
// button1
//
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.TransmitterChannelsBindingSource, "ResetCommand", true));
this.button1.Location = new System.Drawing.Point(7, 174);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 49;
this.button1.Text = "Reset";
this.button1.UseVisualStyleBackColor = true;
//
// label12 // label12
// //
this.label12.AutoSize = true; this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(304, 159); this.label12.Location = new System.Drawing.Point(296, 60);
this.label12.Name = "label12"; this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(84, 13); this.label12.Size = new System.Drawing.Size(84, 13);
this.label12.TabIndex = 53; this.label12.TabIndex = 53;
@ -337,7 +331,7 @@
// label11 // label11
// //
this.label11.AutoSize = true; this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(304, 130); this.label11.Location = new System.Drawing.Point(296, 31);
this.label11.Name = "label11"; this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(48, 13); this.label11.Size = new System.Drawing.Size(48, 13);
this.label11.TabIndex = 52; this.label11.TabIndex = 52;
@ -347,7 +341,7 @@
// //
this.button3.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.TransmitterChannelsBindingSource, "StartCalibrationCommand", true)); this.button3.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.TransmitterChannelsBindingSource, "StartCalibrationCommand", true));
this.button3.Image = ((System.Drawing.Image)(resources.GetObject("button3.Image"))); this.button3.Image = ((System.Drawing.Image)(resources.GetObject("button3.Image")));
this.button3.Location = new System.Drawing.Point(272, 123); this.button3.Location = new System.Drawing.Point(264, 24);
this.button3.Name = "button3"; this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(26, 26); this.button3.Size = new System.Drawing.Size(26, 26);
this.button3.TabIndex = 51; this.button3.TabIndex = 51;
@ -357,42 +351,31 @@
// //
this.button2.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.TransmitterChannelsBindingSource, "SaveCalibrationCommand", true)); this.button2.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.TransmitterChannelsBindingSource, "SaveCalibrationCommand", true));
this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image"))); this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image")));
this.button2.Location = new System.Drawing.Point(272, 152); this.button2.Location = new System.Drawing.Point(264, 53);
this.button2.Name = "button2"; this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(26, 26); this.button2.Size = new System.Drawing.Size(26, 26);
this.button2.TabIndex = 50; this.button2.TabIndex = 50;
this.button2.UseVisualStyleBackColor = true; this.button2.UseVisualStyleBackColor = true;
// //
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(304, 189);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(40, 13);
this.label6.TabIndex = 55;
this.label6.Text = "Cancel";
//
// button4 // button4
// //
this.button4.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.TransmitterChannelsBindingSource, "CancelCalibrationCommand", true)); this.button4.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.TransmitterChannelsBindingSource, "CancelCalibrationCommand", true));
this.button4.Image = ((System.Drawing.Image)(resources.GetObject("button4.Image"))); this.button4.Location = new System.Drawing.Point(264, 83);
this.button4.Location = new System.Drawing.Point(272, 182);
this.button4.Name = "button4"; this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(26, 26); this.button4.Size = new System.Drawing.Size(59, 26);
this.button4.TabIndex = 54; this.button4.TabIndex = 54;
this.button4.Text = "Cancel";
this.button4.UseVisualStyleBackColor = true; this.button4.UseVisualStyleBackColor = true;
// //
// TransmitterChannelsView // TransmitterChannelsView
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label6);
this.Controls.Add(this.button4); this.Controls.Add(this.button4);
this.Controls.Add(this.label12); this.Controls.Add(this.label12);
this.Controls.Add(this.label11); this.Controls.Add(this.label11);
this.Controls.Add(this.button3); this.Controls.Add(this.button3);
this.Controls.Add(this.button2); this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.linearIndicatorControl6); this.Controls.Add(this.linearIndicatorControl6);
this.Controls.Add(this.linearIndicatorControl5); this.Controls.Add(this.linearIndicatorControl5);
this.Controls.Add(this.linearIndicatorControl4); this.Controls.Add(this.linearIndicatorControl4);
@ -440,12 +423,10 @@
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl4; private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl4;
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl5; private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl5;
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl6; private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl6;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label12; private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label label11; private System.Windows.Forms.Label label11;
private System.Windows.Forms.Button button3; private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button2;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Button button4; private System.Windows.Forms.Button button4;
} }
} }

View File

@ -123,140 +123,31 @@
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="button3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="button3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
R0lGODlhFgAVAIMAADJ/x+/3/5rA40qOzrPP6v///1mX0sHY7lGT0PT4/LfS68bb70qUzgAAAAAAAAAA R0lGODlhFgAVAPMAADJ/x+/3/5rA40qOzrPP6v///1mX0sHY7lGT0PT4/LfS68bb70qUzgAAAAAAAAAA
ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQABwD/ACwAAAAAFgAVAAAIdAALCBxIsACAgggTDjyosOFChxAZ ACwAAAAAFgAVAAAEU7DISQuoOM+r+/YgB2riiJVmkQgIgAhJmhjGASyIEY+CIV0zgWlw+EkUiBNgyWw6
QlQocSLCihYLJBCAAAACAQkyJjBg4ACABQgMhJwowIDAgyMFWBxw4KVABQguAtjJs6fPnwlp2iyA02LL nxmisYA09WLAgXA0QygAhNyOy3LBUhQU2rKuqNHvVNw0L0QAADs=
kDAHyJw4EoECAARSrmTK0SPIjAQxYjW4taBWrF8zhrU4tkBAADs=
</value> </value>
</data> </data>
<data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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 AElFTkSuQmCC
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/gUDmPP8usTo0wAAAAlwSFlzAAALDAAACwwBP0AiyAAAA11JREFUOE8tkYtTVHUU
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>
<data name="button4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
c7uNnGi8xn9S4RHZGLiTUQAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
</root> </root>