Configurator.Net: Added Sensor Calibration to main sensor view; killed old calibration tab
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1665 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
parent
1fb955bdcc
commit
637ca47b4a
@ -79,7 +79,6 @@
|
||||
<DependentUpon>mainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="NotifyProperyChangedBase.cs" />
|
||||
<Compile Include="PresentationModels\CalibrationOffsetsDataVm.cs" />
|
||||
<Compile Include="PresentationModels\MotorCommandsVm.cs" />
|
||||
<Compile Include="PresentationModels\PositionHoldConfigVm.cs" />
|
||||
<Compile Include="PresentationModels\StableModeConfigVm.cs" />
|
||||
@ -100,10 +99,6 @@
|
||||
<EmbeddedResource Include="Views\AltitudeHoldConfigView.resx">
|
||||
<DependentUpon>AltitudeHoldConfigView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\CalibrationView.resx">
|
||||
<DependentUpon>CalibrationView.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\PositionHoldConfigView.resx">
|
||||
<DependentUpon>PositionHoldConfigView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@ -153,12 +148,6 @@
|
||||
<Compile Include="Views\AltitudeHoldConfigView.Designer.cs">
|
||||
<DependentUpon>AltitudeHoldConfigView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\CalibrationView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\CalibrationView.Designer.cs">
|
||||
<DependentUpon>CalibrationView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Core\IPresentationModel.cs" />
|
||||
<Compile Include="Core\IView.cs" />
|
||||
<Compile Include="Views\PositionHoldConfigView.cs">
|
||||
|
@ -1,80 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace ArducopterConfigurator.PresentationModels
|
||||
{
|
||||
public class CalibrationOffsetsDataVm : NotifyProperyChangedBase, IPresentationModel
|
||||
{
|
||||
private readonly string[] PropsInUpdateOrder = new[]
|
||||
{
|
||||
"GyroRollOffset",
|
||||
"GyroPitchOffset",
|
||||
"GyroYawOffset",
|
||||
"AccelRollOffset",
|
||||
"AccelPitchOffset",
|
||||
"AccelZOffset"
|
||||
};
|
||||
|
||||
public CalibrationOffsetsDataVm()
|
||||
{
|
||||
|
||||
|
||||
RefreshCommand = new DelegateCommand(_ => RefreshValues());
|
||||
UpdateCommand = new DelegateCommand(_ => UpdateValues());
|
||||
}
|
||||
|
||||
public ICommand RefreshCommand { get; private set; }
|
||||
|
||||
public ICommand UpdateCommand { get; private set; }
|
||||
|
||||
public float GyroRollOffset { get; set; }
|
||||
public float GyroPitchOffset { get; set; }
|
||||
public float GyroYawOffset { get; set; }
|
||||
|
||||
public float AccelRollOffset { get; set; }
|
||||
public float AccelPitchOffset { get; set; }
|
||||
public float AccelZOffset { get; set; }
|
||||
|
||||
private void RefreshValues()
|
||||
{
|
||||
if (sendTextToApm != null)
|
||||
sendTextToApm(this, new sendTextToApmEventArgs("J"));
|
||||
}
|
||||
|
||||
public void UpdateValues()
|
||||
{
|
||||
if (sendTextToApm != null)
|
||||
{
|
||||
var apmString = PropertyHelper.ComposePropValuesWithCommand(this, PropsInUpdateOrder, "I");
|
||||
sendTextToApm(this, new sendTextToApmEventArgs(apmString));
|
||||
}
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return "Calibration"; }
|
||||
}
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
RefreshValues();
|
||||
}
|
||||
|
||||
public void DeActivate()
|
||||
{
|
||||
}
|
||||
|
||||
public event EventHandler updatedByApm;
|
||||
|
||||
public void handleLineOfText(string strRx)
|
||||
{
|
||||
PropertyHelper.PopulatePropsFromUpdate(this, PropsInUpdateOrder, strRx, true);
|
||||
|
||||
if (updatedByApm != null)
|
||||
updatedByApm(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
public event EventHandler<sendTextToApmEventArgs> sendTextToApm;
|
||||
}
|
||||
}
|
@ -28,7 +28,6 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
new FlightControlPidsVm(),
|
||||
new PositionAltitudePidsVm(),
|
||||
//new MotorCommandsVm(session),
|
||||
new CalibrationOffsetsDataVm(),
|
||||
new SerialMonitorVm()
|
||||
};
|
||||
|
||||
|
@ -27,53 +27,139 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
/// </remarks>
|
||||
public class SensorsVm : NotifyProperyChangedBase, IPresentationModel
|
||||
{
|
||||
|
||||
private const string CALIB_REFRESH = "J";
|
||||
private const string CALIB_UPDATE = "I";
|
||||
private const string SEND_SENSOR_DATA = "S";
|
||||
private const string STOP_UPDATES = "X";
|
||||
|
||||
private bool waitingForCalibData;
|
||||
public SensorsVm()
|
||||
{
|
||||
RefreshCalibrationOffsetsCommand = new DelegateCommand(_ => RefreshCalibValues());
|
||||
UpdateCalibrationOffsetsCommand = new DelegateCommand(_ => UpdateCalibValues());
|
||||
CalculateCalibrationOffsetsCommand = new DelegateCommand(_ => CalcCalibValues());
|
||||
}
|
||||
|
||||
public void RefreshCalibValues()
|
||||
{
|
||||
sendString(STOP_UPDATES);
|
||||
waitingForCalibData = true;
|
||||
sendString(CALIB_REFRESH);
|
||||
}
|
||||
|
||||
public void UpdateCalibValues()
|
||||
{
|
||||
sendString(PropertyHelper.ComposePropValuesWithCommand(this, _calibrationPropsInUpdateOrder, CALIB_UPDATE));
|
||||
sendString(SEND_SENSOR_DATA);
|
||||
}
|
||||
|
||||
public void CalcCalibValues()
|
||||
{
|
||||
AccelRollOffset = AccelRollOffset - AccelRoll;
|
||||
AccelPitchOffset = AccelPitchOffset - AccelPitch;
|
||||
//AccelZOffset = AccelZOffset - AccelZ;
|
||||
FirePropertyChanged("AccelRollOffset");
|
||||
FirePropertyChanged("AccelPitchOffset");
|
||||
//FirePropertyChanged("AccelZOffset");
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return "Sensor Data"; }
|
||||
}
|
||||
|
||||
private readonly string[] _propsInUpdateOrder = new[]
|
||||
{
|
||||
"LoopTime",
|
||||
"GyroRoll",
|
||||
"GyroPitch",
|
||||
"GyroYaw",
|
||||
"Unused", // Throttle
|
||||
"Unused", // control roll
|
||||
"Unused", // control pitch
|
||||
"Unused", // control yaw
|
||||
"MotorFront",
|
||||
"MotorRear",
|
||||
"MotorRight",
|
||||
"MotorLeft",
|
||||
"AccelRoll",
|
||||
"AccelPitch",
|
||||
"AccelZ",
|
||||
};
|
||||
|
||||
|
||||
|
||||
private readonly string[] _sensorPropsInUpdateOrder = new[]
|
||||
{
|
||||
"LoopTime",
|
||||
"GyroRoll",
|
||||
"GyroPitch",
|
||||
"GyroYaw",
|
||||
"Unused", // Throttle
|
||||
"Unused", // control roll
|
||||
"Unused", // control pitch
|
||||
"Unused", // control yaw
|
||||
"MotorFront",
|
||||
"MotorRear",
|
||||
"MotorRight",
|
||||
"MotorLeft",
|
||||
"AccelRoll",
|
||||
"AccelPitch",
|
||||
"AccelZ",
|
||||
};
|
||||
|
||||
private readonly string[] _calibrationPropsInUpdateOrder = new[]
|
||||
{
|
||||
"GyroRollOffset",
|
||||
"GyroPitchOffset",
|
||||
"GyroYawOffset",
|
||||
"AccelRollOffset",
|
||||
"AccelPitchOffset",
|
||||
"AccelZOffset"
|
||||
};
|
||||
|
||||
|
||||
private void sendString(string str)
|
||||
{
|
||||
if (sendTextToApm != null)
|
||||
sendTextToApm(this, new sendTextToApmEventArgs(str));
|
||||
}
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
if (sendTextToApm!=null)
|
||||
sendTextToApm(this, new sendTextToApmEventArgs("S"));
|
||||
// Get the calib. data first
|
||||
waitingForCalibData = true;
|
||||
sendString(CALIB_REFRESH);
|
||||
}
|
||||
|
||||
public void DeActivate()
|
||||
{
|
||||
if (sendTextToApm != null)
|
||||
sendTextToApm(this, new sendTextToApmEventArgs("X"));
|
||||
sendString(STOP_UPDATES);
|
||||
}
|
||||
|
||||
public void handleLineOfText(string strRx)
|
||||
{
|
||||
if ( waitingForCalibData)
|
||||
{
|
||||
PropertyHelper.PopulatePropsFromUpdate(this, _calibrationPropsInUpdateOrder, strRx, true);
|
||||
waitingForCalibData = false;
|
||||
sendString(SEND_SENSOR_DATA);
|
||||
}
|
||||
else
|
||||
{
|
||||
PropertyHelper.PopulatePropsFromUpdate(this, _sensorPropsInUpdateOrder, strRx, false);
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler updatedByApm;
|
||||
|
||||
|
||||
public void handleLineOfText(string strRx)
|
||||
{
|
||||
PropertyHelper.PopulatePropsFromUpdate(this, _propsInUpdateOrder, strRx, false);
|
||||
}
|
||||
|
||||
|
||||
public event EventHandler<sendTextToApmEventArgs> sendTextToApm;
|
||||
|
||||
|
||||
public ICommand RefreshCalibrationOffsetsCommand { get; private set; }
|
||||
|
||||
public ICommand UpdateCalibrationOffsetsCommand { get; private set; }
|
||||
|
||||
public ICommand CalculateCalibrationOffsetsCommand { get; private set; }
|
||||
|
||||
|
||||
#region Calibration Properties
|
||||
|
||||
public float GyroRollOffset { get; set; }
|
||||
public float GyroPitchOffset { get; set; }
|
||||
public float GyroYawOffset { get; set; }
|
||||
|
||||
public float AccelRollOffset { get; set; }
|
||||
public float AccelPitchOffset { get; set; }
|
||||
public float AccelZOffset { get; set; }
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Sensor Properties
|
||||
|
||||
private int _loopTime;
|
||||
public int LoopTime
|
||||
{
|
||||
@ -195,6 +281,7 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
}
|
||||
|
||||
private int accelZ;
|
||||
|
||||
public int AccelZ
|
||||
{
|
||||
get { return accelZ; }
|
||||
@ -205,6 +292,7 @@ namespace ArducopterConfigurator.PresentationModels
|
||||
FirePropertyChanged("AccelZ");
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public int Unused { get; set; }
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ namespace ArducopterConfigurator
|
||||
/// instead of having specific value assignment logic in every class to pick
|
||||
/// apart the update and populate properties, this guy will Set the properties
|
||||
/// in the correct order. All the interested class needs to provide is the
|
||||
/// list of property names in the same order as the update from the APM
|
||||
/// list of property names in the same order as the update from the APMwl
|
||||
/// </remarks>
|
||||
public static class PropertyHelper
|
||||
{
|
||||
|
@ -1,251 +0,0 @@
|
||||
namespace ArducopterConfigurator.Views
|
||||
{
|
||||
partial class CalibrationView
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.textBox3 = new System.Windows.Forms.TextBox();
|
||||
this.calibrationOffsetsDataVmBindingSource = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.textBox4 = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.textBox5 = new System.Windows.Forms.TextBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.textBox6 = new System.Windows.Forms.TextBox();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.calibrationOffsetsDataVmBindingSource)).BeginInit();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.label3);
|
||||
this.groupBox1.Controls.Add(this.textBox3);
|
||||
this.groupBox1.Controls.Add(this.label2);
|
||||
this.groupBox1.Controls.Add(this.textBox2);
|
||||
this.groupBox1.Controls.Add(this.label1);
|
||||
this.groupBox1.Controls.Add(this.textBox1);
|
||||
this.groupBox1.Location = new System.Drawing.Point(3, 3);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(141, 107);
|
||||
this.groupBox1.TabIndex = 0;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Gyro Offset";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(6, 84);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(28, 13);
|
||||
this.label3.TabIndex = 5;
|
||||
this.label3.Text = "Yaw";
|
||||
//
|
||||
// textBox3
|
||||
//
|
||||
this.textBox3.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.calibrationOffsetsDataVmBindingSource, "GyroYawOffset", true));
|
||||
this.textBox3.Location = new System.Drawing.Point(59, 77);
|
||||
this.textBox3.Name = "textBox3";
|
||||
this.textBox3.Size = new System.Drawing.Size(71, 20);
|
||||
this.textBox3.TabIndex = 4;
|
||||
//
|
||||
// calibrationOffsetsDataVmBindingSource
|
||||
//
|
||||
this.calibrationOffsetsDataVmBindingSource.DataSource = typeof(ArducopterConfigurator.PresentationModels.CalibrationOffsetsDataVm);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(6, 58);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(31, 13);
|
||||
this.label2.TabIndex = 3;
|
||||
this.label2.Text = "Pitch";
|
||||
//
|
||||
// textBox2
|
||||
//
|
||||
this.textBox2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.calibrationOffsetsDataVmBindingSource, "GyroPitchOffset", true));
|
||||
this.textBox2.Location = new System.Drawing.Point(59, 51);
|
||||
this.textBox2.Name = "textBox2";
|
||||
this.textBox2.Size = new System.Drawing.Size(71, 20);
|
||||
this.textBox2.TabIndex = 2;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(6, 32);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(25, 13);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "Roll";
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.calibrationOffsetsDataVmBindingSource, "GyroRollOffset", true));
|
||||
this.textBox1.Location = new System.Drawing.Point(59, 25);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(71, 20);
|
||||
this.textBox1.TabIndex = 0;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(6, 84);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(14, 13);
|
||||
this.label4.TabIndex = 5;
|
||||
this.label4.Text = "Z";
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.label4);
|
||||
this.groupBox2.Controls.Add(this.textBox4);
|
||||
this.groupBox2.Controls.Add(this.label5);
|
||||
this.groupBox2.Controls.Add(this.textBox5);
|
||||
this.groupBox2.Controls.Add(this.label6);
|
||||
this.groupBox2.Controls.Add(this.textBox6);
|
||||
this.groupBox2.Location = new System.Drawing.Point(150, 3);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(141, 107);
|
||||
this.groupBox2.TabIndex = 6;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "Accel Offset";
|
||||
//
|
||||
// textBox4
|
||||
//
|
||||
this.textBox4.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.calibrationOffsetsDataVmBindingSource, "AccelZOffset", true));
|
||||
this.textBox4.Location = new System.Drawing.Point(59, 77);
|
||||
this.textBox4.Name = "textBox4";
|
||||
this.textBox4.Size = new System.Drawing.Size(71, 20);
|
||||
this.textBox4.TabIndex = 4;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(6, 58);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(31, 13);
|
||||
this.label5.TabIndex = 3;
|
||||
this.label5.Text = "Pitch";
|
||||
//
|
||||
// textBox5
|
||||
//
|
||||
this.textBox5.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.calibrationOffsetsDataVmBindingSource, "AccelPitchOffset", true));
|
||||
this.textBox5.Location = new System.Drawing.Point(59, 51);
|
||||
this.textBox5.Name = "textBox5";
|
||||
this.textBox5.Size = new System.Drawing.Size(71, 20);
|
||||
this.textBox5.TabIndex = 2;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(6, 32);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(25, 13);
|
||||
this.label6.TabIndex = 1;
|
||||
this.label6.Text = "Roll";
|
||||
//
|
||||
// textBox6
|
||||
//
|
||||
this.textBox6.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.calibrationOffsetsDataVmBindingSource, "AccelRollOffset", true));
|
||||
this.textBox6.Location = new System.Drawing.Point(59, 25);
|
||||
this.textBox6.Name = "textBox6";
|
||||
this.textBox6.Size = new System.Drawing.Size(71, 20);
|
||||
this.textBox6.TabIndex = 0;
|
||||
//
|
||||
// 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.calibrationOffsetsDataVmBindingSource, "RefreshCommand", true));
|
||||
this.button2.Location = new System.Drawing.Point(143, 117);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(74, 23);
|
||||
this.button2.TabIndex = 14;
|
||||
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.calibrationOffsetsDataVmBindingSource, "UpdateCommand", true));
|
||||
this.button1.Location = new System.Drawing.Point(223, 117);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(74, 23);
|
||||
this.button1.TabIndex = 13;
|
||||
this.button1.Text = "Update";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// CalibrationView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.groupBox2);
|
||||
this.Controls.Add(this.groupBox1);
|
||||
this.Name = "CalibrationView";
|
||||
this.Size = new System.Drawing.Size(300, 143);
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.calibrationOffsetsDataVmBindingSource)).EndInit();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox2.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.TextBox textBox3;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TextBox textBox2;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
private System.Windows.Forms.TextBox textBox4;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TextBox textBox5;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox textBox6;
|
||||
private System.Windows.Forms.BindingSource calibrationOffsetsDataVmBindingSource;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.Button button1;
|
||||
}
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using ArducopterConfigurator.PresentationModels;
|
||||
|
||||
namespace ArducopterConfigurator.Views
|
||||
{
|
||||
public partial class CalibrationView : CalibrationViewDesignable
|
||||
{
|
||||
public CalibrationView()
|
||||
{
|
||||
InitializeComponent();
|
||||
BindButtons();
|
||||
}
|
||||
|
||||
public override void SetDataContext(CalibrationOffsetsDataVm vm)
|
||||
{
|
||||
calibrationOffsetsDataVmBindingSource.DataSource = vm;
|
||||
|
||||
|
||||
if (Program.IsMonoRuntime)
|
||||
vm.PropertyChanged += ((sender, e) => calibrationOffsetsDataVmBindingSource.ResetBindings(false));
|
||||
}
|
||||
}
|
||||
|
||||
// Required for VS2008 designer. No functional value
|
||||
public class CalibrationViewDesignable : ViewCommon<CalibrationOffsetsDataVm> { }
|
||||
}
|
@ -1,123 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="calibrationOffsetsDataVmBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
@ -29,6 +29,7 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FlightDataView));
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
@ -60,6 +61,15 @@
|
||||
this.linearIndicatorControl6 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||
this.linearIndicatorControl7 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||
this.linearIndicatorControl8 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||
this.textBox11 = new System.Windows.Forms.TextBox();
|
||||
this.textBox12 = new System.Windows.Forms.TextBox();
|
||||
this.textBox13 = new System.Windows.Forms.TextBox();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.FlightDataVmBindingSource)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@ -75,7 +85,7 @@
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(68, 138);
|
||||
this.label2.Location = new System.Drawing.Point(53, 138);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(31, 13);
|
||||
this.label2.TabIndex = 3;
|
||||
@ -84,7 +94,7 @@
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(124, 138);
|
||||
this.label3.Location = new System.Drawing.Point(100, 138);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(30, 13);
|
||||
this.label3.TabIndex = 5;
|
||||
@ -93,7 +103,7 @@
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(176, 138);
|
||||
this.label4.Location = new System.Drawing.Point(146, 138);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(32, 13);
|
||||
this.label4.TabIndex = 7;
|
||||
@ -102,10 +112,10 @@
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "MotorLeft", true));
|
||||
this.textBox1.Location = new System.Drawing.Point(2, 247);
|
||||
this.textBox1.Location = new System.Drawing.Point(11, 247);
|
||||
this.textBox1.Name = "textBox1";
|
||||
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 = 8;
|
||||
//
|
||||
// FlightDataVmBindingSource
|
||||
@ -127,7 +137,7 @@
|
||||
this.textBox2.Location = new System.Drawing.Point(124, 28);
|
||||
this.textBox2.Name = "textBox2";
|
||||
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 = 12;
|
||||
//
|
||||
// textBox3
|
||||
@ -136,7 +146,7 @@
|
||||
this.textBox3.Location = new System.Drawing.Point(124, 78);
|
||||
this.textBox3.Name = "textBox3";
|
||||
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 = 13;
|
||||
//
|
||||
// label6
|
||||
@ -154,7 +164,7 @@
|
||||
this.textBox4.Location = new System.Drawing.Point(187, 109);
|
||||
this.textBox4.Name = "textBox4";
|
||||
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 = 17;
|
||||
//
|
||||
// label7
|
||||
@ -181,7 +191,7 @@
|
||||
this.textBox5.Location = new System.Drawing.Point(247, 109);
|
||||
this.textBox5.Name = "textBox5";
|
||||
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 = 20;
|
||||
//
|
||||
// label9
|
||||
@ -199,7 +209,7 @@
|
||||
this.textBox6.Location = new System.Drawing.Point(340, 157);
|
||||
this.textBox6.Name = "textBox6";
|
||||
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 = 26;
|
||||
//
|
||||
// label10
|
||||
@ -217,7 +227,7 @@
|
||||
this.textBox7.Location = new System.Drawing.Point(343, 109);
|
||||
this.textBox7.Name = "textBox7";
|
||||
this.textBox7.ReadOnly = true;
|
||||
this.textBox7.Size = new System.Drawing.Size(47, 20);
|
||||
this.textBox7.Size = new System.Drawing.Size(35, 20);
|
||||
this.textBox7.TabIndex = 23;
|
||||
//
|
||||
// textBox8
|
||||
@ -226,25 +236,25 @@
|
||||
this.textBox8.Location = new System.Drawing.Point(55, 247);
|
||||
this.textBox8.Name = "textBox8";
|
||||
this.textBox8.ReadOnly = true;
|
||||
this.textBox8.Size = new System.Drawing.Size(47, 20);
|
||||
this.textBox8.Size = new System.Drawing.Size(35, 20);
|
||||
this.textBox8.TabIndex = 29;
|
||||
//
|
||||
// textBox9
|
||||
//
|
||||
this.textBox9.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "MotorRear", true));
|
||||
this.textBox9.Location = new System.Drawing.Point(108, 247);
|
||||
this.textBox9.Location = new System.Drawing.Point(99, 247);
|
||||
this.textBox9.Name = "textBox9";
|
||||
this.textBox9.ReadOnly = true;
|
||||
this.textBox9.Size = new System.Drawing.Size(47, 20);
|
||||
this.textBox9.Size = new System.Drawing.Size(35, 20);
|
||||
this.textBox9.TabIndex = 30;
|
||||
//
|
||||
// textBox10
|
||||
//
|
||||
this.textBox10.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "MotorRight", true));
|
||||
this.textBox10.Location = new System.Drawing.Point(161, 247);
|
||||
this.textBox10.Location = new System.Drawing.Point(143, 247);
|
||||
this.textBox10.Name = "textBox10";
|
||||
this.textBox10.ReadOnly = true;
|
||||
this.textBox10.Size = new System.Drawing.Size(47, 20);
|
||||
this.textBox10.Size = new System.Drawing.Size(35, 20);
|
||||
this.textBox10.TabIndex = 31;
|
||||
//
|
||||
// indicatorRollGyro
|
||||
@ -323,7 +333,7 @@
|
||||
this.linearIndicatorControl2.BarLight = System.Drawing.Color.FromArgb(((int)(((byte)(102)))), ((int)(((byte)(144)))), ((int)(((byte)(252)))));
|
||||
this.linearIndicatorControl2.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.FlightDataVmBindingSource, "AccelPitch", true));
|
||||
this.linearIndicatorControl2.IsVertical = true;
|
||||
this.linearIndicatorControl2.Location = new System.Drawing.Point(264, 21);
|
||||
this.linearIndicatorControl2.Location = new System.Drawing.Point(259, 21);
|
||||
this.linearIndicatorControl2.Max = 500;
|
||||
this.linearIndicatorControl2.MaxWaterMark = 0;
|
||||
this.linearIndicatorControl2.Min = -500;
|
||||
@ -367,7 +377,7 @@
|
||||
this.linearIndicatorControl4.BarLight = System.Drawing.Color.FromArgb(((int)(((byte)(102)))), ((int)(((byte)(144)))), ((int)(((byte)(252)))));
|
||||
this.linearIndicatorControl4.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.FlightDataVmBindingSource, "MotorFront", true));
|
||||
this.linearIndicatorControl4.IsVertical = true;
|
||||
this.linearIndicatorControl4.Location = new System.Drawing.Point(71, 157);
|
||||
this.linearIndicatorControl4.Location = new System.Drawing.Point(60, 157);
|
||||
this.linearIndicatorControl4.Max = 2000;
|
||||
this.linearIndicatorControl4.MaxWaterMark = 0;
|
||||
this.linearIndicatorControl4.Min = 1000;
|
||||
@ -389,7 +399,7 @@
|
||||
this.linearIndicatorControl5.BarLight = System.Drawing.Color.FromArgb(((int)(((byte)(102)))), ((int)(((byte)(144)))), ((int)(((byte)(252)))));
|
||||
this.linearIndicatorControl5.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.FlightDataVmBindingSource, "MotorRear", true));
|
||||
this.linearIndicatorControl5.IsVertical = true;
|
||||
this.linearIndicatorControl5.Location = new System.Drawing.Point(124, 157);
|
||||
this.linearIndicatorControl5.Location = new System.Drawing.Point(105, 157);
|
||||
this.linearIndicatorControl5.Max = 2000;
|
||||
this.linearIndicatorControl5.MaxWaterMark = 0;
|
||||
this.linearIndicatorControl5.Min = 1000;
|
||||
@ -411,7 +421,7 @@
|
||||
this.linearIndicatorControl6.BarLight = System.Drawing.Color.FromArgb(((int)(((byte)(102)))), ((int)(((byte)(144)))), ((int)(((byte)(252)))));
|
||||
this.linearIndicatorControl6.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.FlightDataVmBindingSource, "MotorRear", true));
|
||||
this.linearIndicatorControl6.IsVertical = true;
|
||||
this.linearIndicatorControl6.Location = new System.Drawing.Point(179, 157);
|
||||
this.linearIndicatorControl6.Location = new System.Drawing.Point(150, 157);
|
||||
this.linearIndicatorControl6.Max = 2000;
|
||||
this.linearIndicatorControl6.MaxWaterMark = 0;
|
||||
this.linearIndicatorControl6.Min = 1000;
|
||||
@ -455,7 +465,7 @@
|
||||
this.linearIndicatorControl8.BarLight = System.Drawing.Color.FromArgb(((int)(((byte)(102)))), ((int)(((byte)(144)))), ((int)(((byte)(252)))));
|
||||
this.linearIndicatorControl8.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.FlightDataVmBindingSource, "AccelZ", true));
|
||||
this.linearIndicatorControl8.IsVertical = true;
|
||||
this.linearIndicatorControl8.Location = new System.Drawing.Point(353, 21);
|
||||
this.linearIndicatorControl8.Location = new System.Drawing.Point(347, 21);
|
||||
this.linearIndicatorControl8.Max = 500;
|
||||
this.linearIndicatorControl8.MaxWaterMark = 0;
|
||||
this.linearIndicatorControl8.Min = -500;
|
||||
@ -467,10 +477,112 @@
|
||||
this.linearIndicatorControl8.Value = 100;
|
||||
this.linearIndicatorControl8.WatermarkLineColor = System.Drawing.Color.DarkGray;
|
||||
//
|
||||
// textBox11
|
||||
//
|
||||
this.textBox11.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textBox11.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "AccelRollOffset", true));
|
||||
this.textBox11.Enabled = false;
|
||||
this.textBox11.Location = new System.Drawing.Point(47, 98);
|
||||
this.textBox11.Name = "textBox11";
|
||||
this.textBox11.ReadOnly = true;
|
||||
this.textBox11.Size = new System.Drawing.Size(35, 13);
|
||||
this.textBox11.TabIndex = 42;
|
||||
this.textBox11.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
//
|
||||
// textBox12
|
||||
//
|
||||
this.textBox12.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textBox12.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "AccelZOffset", true));
|
||||
this.textBox12.Enabled = false;
|
||||
this.textBox12.Location = new System.Drawing.Point(313, 46);
|
||||
this.textBox12.Name = "textBox12";
|
||||
this.textBox12.ReadOnly = true;
|
||||
this.textBox12.Size = new System.Drawing.Size(34, 13);
|
||||
this.textBox12.TabIndex = 43;
|
||||
this.textBox12.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
//
|
||||
// textBox13
|
||||
//
|
||||
this.textBox13.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textBox13.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "AccelPitchOffset", true));
|
||||
this.textBox13.Enabled = false;
|
||||
this.textBox13.Location = new System.Drawing.Point(225, 46);
|
||||
this.textBox13.Name = "textBox13";
|
||||
this.textBox13.ReadOnly = true;
|
||||
this.textBox13.Size = new System.Drawing.Size(34, 13);
|
||||
this.textBox13.TabIndex = 44;
|
||||
this.textBox13.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.FlightDataVmBindingSource, "RefreshCalibrationOffsetsCommand", true));
|
||||
this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image")));
|
||||
this.button2.Location = new System.Drawing.Point(225, 241);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(26, 26);
|
||||
this.button2.TabIndex = 46;
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.FlightDataVmBindingSource, "UpdateCalibrationOffsetsCommand", true));
|
||||
this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));
|
||||
this.button1.Location = new System.Drawing.Point(225, 212);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(26, 26);
|
||||
this.button1.TabIndex = 45;
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.FlightDataVmBindingSource, "CalculateCalibrationOffsetsCommand", true));
|
||||
this.button3.Image = ((System.Drawing.Image)(resources.GetObject("button3.Image")));
|
||||
this.button3.Location = new System.Drawing.Point(225, 183);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(26, 26);
|
||||
this.button3.TabIndex = 47;
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label11
|
||||
//
|
||||
this.label11.AutoSize = true;
|
||||
this.label11.Location = new System.Drawing.Point(257, 190);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(48, 13);
|
||||
this.label11.TabIndex = 48;
|
||||
this.label11.Text = "Calibrate";
|
||||
//
|
||||
// label12
|
||||
//
|
||||
this.label12.AutoSize = true;
|
||||
this.label12.Location = new System.Drawing.Point(257, 219);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(84, 13);
|
||||
this.label12.TabIndex = 49;
|
||||
this.label12.Text = "Save Calibration";
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Location = new System.Drawing.Point(257, 250);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(96, 13);
|
||||
this.label13.TabIndex = 50;
|
||||
this.label13.Text = "Refresh Calibration";
|
||||
//
|
||||
// FlightDataView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.label13);
|
||||
this.Controls.Add(this.label12);
|
||||
this.Controls.Add(this.label11);
|
||||
this.Controls.Add(this.button3);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.textBox13);
|
||||
this.Controls.Add(this.textBox12);
|
||||
this.Controls.Add(this.textBox11);
|
||||
this.Controls.Add(this.linearIndicatorControl8);
|
||||
this.Controls.Add(this.linearIndicatorControl7);
|
||||
this.Controls.Add(this.linearIndicatorControl6);
|
||||
@ -546,5 +658,14 @@
|
||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl6;
|
||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl7;
|
||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl8;
|
||||
private System.Windows.Forms.TextBox textBox11;
|
||||
private System.Windows.Forms.TextBox textBox12;
|
||||
private System.Windows.Forms.TextBox textBox13;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button3;
|
||||
private System.Windows.Forms.Label label11;
|
||||
private System.Windows.Forms.Label label12;
|
||||
private System.Windows.Forms.Label label13;
|
||||
}
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ namespace ArducopterConfigurator.views
|
||||
public FlightDataView()
|
||||
{
|
||||
InitializeComponent();
|
||||
BindButtons();
|
||||
}
|
||||
|
||||
public override void SetDataContext(SensorsVm vm)
|
||||
@ -24,6 +25,7 @@ namespace ArducopterConfigurator.views
|
||||
if (Program.IsMonoRuntime)
|
||||
vm.PropertyChanged += ((sender, e) => FlightDataVmBindingSource.ResetBindings(false));
|
||||
}
|
||||
|
||||
}
|
||||
// Required for VS2008 designer. No functional value
|
||||
public class FlightDataViewDesignable : ViewCommon<SensorsVm> { }
|
||||
|
@ -120,4 +120,96 @@
|
||||
<metadata name="FlightDataVmBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>20, 28</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
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAALVSURBVDhPY2CgGojfz8Hgd0SKIXC/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>
|
||||
<data name="button3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
R0lGODlhFgAVAIMAADJ/x+/3/5rA40qOzrPP6v///1mX0sHY7lGT0PT4/LfS68bb70qUzgAAAAAAAAAA
|
||||
ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQABwD/ACwAAAAAFgAVAAAIdAALCBxIsACAgggTDjyosOFChxAZ
|
||||
QlQocSLCihYLJBCAAAACAQkyJjBg4ACABQgMhJwowIDAgyMFWBxw4KVABQguAtjJs6fPnwlp2iyA02LL
|
||||
kDAHyJw4EoECAARSrmTK0SPIjAQxYjW4taBWrF8zhrU4tkBAADs=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
@ -24,7 +24,6 @@ namespace ArducopterConfigurator
|
||||
{
|
||||
{typeof (SensorsVm), typeof (FlightDataView)},
|
||||
{typeof (TransmitterChannelsVm), typeof (TransmitterChannelsView)},
|
||||
{typeof (CalibrationOffsetsDataVm), typeof (CalibrationView)},
|
||||
{typeof (MotorCommandsVm), typeof (MotorCommandsView)},
|
||||
{typeof (AcroModeConfigVm), typeof (AcroConfigView)},
|
||||
{typeof (StableModeConfigVm), typeof (StableConfigView)},
|
||||
|
Loading…
Reference in New Issue
Block a user