diff --git a/Configurator/Configurator.Net/ArducopterConfigurator.csproj b/Configurator/Configurator.Net/ArducopterConfigurator.csproj
index 5eef9172c0..873250a174 100644
--- a/Configurator/Configurator.Net/ArducopterConfigurator.csproj
+++ b/Configurator/Configurator.Net/ArducopterConfigurator.csproj
@@ -79,7 +79,6 @@
mainForm.cs
-
@@ -100,10 +99,6 @@
AltitudeHoldConfigView.cs
-
- CalibrationView.cs
- Designer
-
PositionHoldConfigView.cs
@@ -153,12 +148,6 @@
AltitudeHoldConfigView.cs
-
- UserControl
-
-
- CalibrationView.cs
-
diff --git a/Configurator/Configurator.Net/PresentationModels/CalibrationOffsetsDataVm.cs b/Configurator/Configurator.Net/PresentationModels/CalibrationOffsetsDataVm.cs
deleted file mode 100644
index 2660ef98e4..0000000000
--- a/Configurator/Configurator.Net/PresentationModels/CalibrationOffsetsDataVm.cs
+++ /dev/null
@@ -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 sendTextToApm;
- }
-}
\ No newline at end of file
diff --git a/Configurator/Configurator.Net/PresentationModels/MainVm.cs b/Configurator/Configurator.Net/PresentationModels/MainVm.cs
index de718220b4..154703d65b 100644
--- a/Configurator/Configurator.Net/PresentationModels/MainVm.cs
+++ b/Configurator/Configurator.Net/PresentationModels/MainVm.cs
@@ -28,7 +28,6 @@ namespace ArducopterConfigurator.PresentationModels
new FlightControlPidsVm(),
new PositionAltitudePidsVm(),
//new MotorCommandsVm(session),
- new CalibrationOffsetsDataVm(),
new SerialMonitorVm()
};
diff --git a/Configurator/Configurator.Net/PresentationModels/SensorsVm.cs b/Configurator/Configurator.Net/PresentationModels/SensorsVm.cs
index c1a8d94fa8..6c8f26107f 100644
--- a/Configurator/Configurator.Net/PresentationModels/SensorsVm.cs
+++ b/Configurator/Configurator.Net/PresentationModels/SensorsVm.cs
@@ -27,53 +27,139 @@ namespace ArducopterConfigurator.PresentationModels
///
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 event EventHandler updatedByApm;
-
-
public void handleLineOfText(string strRx)
{
- PropertyHelper.PopulatePropsFromUpdate(this, _propsInUpdateOrder, strRx, false);
+ 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 event EventHandler 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; }
}
diff --git a/Configurator/Configurator.Net/PresentationModels/VmBase.cs b/Configurator/Configurator.Net/PresentationModels/VmBase.cs
index af8af989df..763639e790 100644
--- a/Configurator/Configurator.Net/PresentationModels/VmBase.cs
+++ b/Configurator/Configurator.Net/PresentationModels/VmBase.cs
@@ -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
///
public static class PropertyHelper
{
diff --git a/Configurator/Configurator.Net/Views/CalibrationView.Designer.cs b/Configurator/Configurator.Net/Views/CalibrationView.Designer.cs
deleted file mode 100644
index cbba61eabd..0000000000
--- a/Configurator/Configurator.Net/Views/CalibrationView.Designer.cs
+++ /dev/null
@@ -1,251 +0,0 @@
-namespace ArducopterConfigurator.Views
-{
- partial class CalibrationView
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Component Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- 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;
- }
-}
diff --git a/Configurator/Configurator.Net/Views/CalibrationView.cs b/Configurator/Configurator.Net/Views/CalibrationView.cs
deleted file mode 100644
index ef0fe79323..0000000000
--- a/Configurator/Configurator.Net/Views/CalibrationView.cs
+++ /dev/null
@@ -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 { }
-}
diff --git a/Configurator/Configurator.Net/Views/CalibrationView.resx b/Configurator/Configurator.Net/Views/CalibrationView.resx
deleted file mode 100644
index 29d67c743d..0000000000
--- a/Configurator/Configurator.Net/Views/CalibrationView.resx
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 17, 17
-
-
\ No newline at end of file
diff --git a/Configurator/Configurator.Net/Views/FlightDataView.Designer.cs b/Configurator/Configurator.Net/Views/FlightDataView.Designer.cs
index a3f55fd303..cb6b388cd8 100644
--- a/Configurator/Configurator.Net/Views/FlightDataView.Designer.cs
+++ b/Configurator/Configurator.Net/Views/FlightDataView.Designer.cs
@@ -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;
}
}
diff --git a/Configurator/Configurator.Net/Views/FlightDataView.cs b/Configurator/Configurator.Net/Views/FlightDataView.cs
index 9b802b75ad..fba8d50a87 100644
--- a/Configurator/Configurator.Net/Views/FlightDataView.cs
+++ b/Configurator/Configurator.Net/Views/FlightDataView.cs
@@ -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 { }
diff --git a/Configurator/Configurator.Net/Views/FlightDataView.resx b/Configurator/Configurator.Net/Views/FlightDataView.resx
index 451adcab1f..538672bb6c 100644
--- a/Configurator/Configurator.Net/Views/FlightDataView.resx
+++ b/Configurator/Configurator.Net/Views/FlightDataView.resx
@@ -120,4 +120,96 @@
20, 28
+
+
+
+ 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
+ c7uNnGi8xn9S4RHZGLiTUQAAAABJRU5ErkJggg==
+
+
+
+
+ R0lGODlhFgAVAIMAADJ/x+/3/5rA40qOzrPP6v///1mX0sHY7lGT0PT4/LfS68bb70qUzgAAAAAAAAAA
+ ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQABwD/ACwAAAAAFgAVAAAIdAALCBxIsACAgggTDjyosOFChxAZ
+ QlQocSLCihYLJBCAAAACAQkyJjBg4ACABQgMhJwowIDAgyMFWBxw4KVABQguAtjJs6fPnwlp2iyA02LL
+ kDAHyJw4EoECAARSrmTK0SPIjAQxYjW4taBWrF8zhrU4tkBAADs=
+
+
\ No newline at end of file
diff --git a/Configurator/Configurator.Net/Views/mainForm.cs b/Configurator/Configurator.Net/Views/mainForm.cs
index f41051dc99..8dd2dbdb65 100644
--- a/Configurator/Configurator.Net/Views/mainForm.cs
+++ b/Configurator/Configurator.Net/Views/mainForm.cs
@@ -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)},