summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2020-08-04 15:08:48 -0700
committerJacob Palecki <[email protected]>2020-08-04 15:08:48 -0700
commitc0b8b46f84eda91d01ce2eead3777c31be96bd60 (patch)
tree95d856da2fe0c2417c548c32c0a41f42574ca9c8
parentRead from driver to get graph values (diff)
downloadrawaccel-c0b8b46f84eda91d01ce2eead3777c31be96bd60.tar.xz
rawaccel-c0b8b46f84eda91d01ce2eead3777c31be96bd60.zip
Data rebind for faster graph update
-rw-r--r--grapher/AccelGUI.cs53
-rw-r--r--grapher/Form1.cs3
2 files changed, 29 insertions, 27 deletions
diff --git a/grapher/AccelGUI.cs b/grapher/AccelGUI.cs
index 8ef411f..85d2416 100644
--- a/grapher/AccelGUI.cs
+++ b/grapher/AccelGUI.cs
@@ -34,7 +34,8 @@ namespace grapher
Option offset,
Option acceleration,
Option limtOrExp,
- Option midpoint)
+ Option midpoint,
+ Button writeButton)
{
AccelForm = accelForm;
AccelCharts = accelCharts;
@@ -48,6 +49,12 @@ namespace grapher
Acceleration = acceleration;
LimitOrExponent = limtOrExp;
Midpoint = midpoint;
+ WriteButton = writeButton;
+
+ OrderedAccelPoints = new SortedDictionary<double, double>();
+ OrderedVelocityPoints = new SortedDictionary<double, double>();
+ OrderedGainPoints = new SortedDictionary<double, double>();
+
ManagedAcceleration.ReadFromDriver();
UpdateGraph();
@@ -83,6 +90,12 @@ namespace grapher
public Button WriteButton { get; }
+ public SortedDictionary<double, double> OrderedAccelPoints { get; }
+
+ public SortedDictionary<double, double> OrderedVelocityPoints { get; }
+
+ public SortedDictionary<double, double> OrderedGainPoints { get; }
+
#endregion properties
#region methods
@@ -119,9 +132,9 @@ namespace grapher
public void UpdateGraph()
{
- var orderedAccelPoints = new SortedDictionary<double, double>();
- var orderedVelocityPoints = new SortedDictionary<double, double>();
- var orderedGainPoints = new SortedDictionary<double, double>();
+ OrderedAccelPoints.Clear();
+ OrderedVelocityPoints.Clear();
+ OrderedGainPoints.Clear();
double lastInputMagnitude = 0;
double lastOutputMagnitude = 0;
@@ -139,50 +152,38 @@ namespace grapher
lastInputMagnitude = magnitudeData.magnitude;
lastOutputMagnitude = outMagnitude;
- if (!orderedAccelPoints.ContainsKey(magnitudeData.magnitude))
+ if (!OrderedAccelPoints.ContainsKey(magnitudeData.magnitude))
{
- orderedAccelPoints.Add(magnitudeData.magnitude, ratio);
+ OrderedAccelPoints.Add(magnitudeData.magnitude, ratio);
}
- if (!orderedVelocityPoints.ContainsKey(magnitudeData.magnitude))
+ if (!OrderedVelocityPoints.ContainsKey(magnitudeData.magnitude))
{
- orderedVelocityPoints.Add(magnitudeData.magnitude, outMagnitude);
+ OrderedVelocityPoints.Add(magnitudeData.magnitude, outMagnitude);
}
- if (!orderedGainPoints.ContainsKey(magnitudeData.magnitude))
+ if (!OrderedGainPoints.ContainsKey(magnitudeData.magnitude))
{
- orderedGainPoints.Add(magnitudeData.magnitude, slope);
+ OrderedGainPoints.Add(magnitudeData.magnitude, slope);
}
+
}
var accelSeries = AccelCharts.SensitivityChart.Series.FirstOrDefault();
accelSeries.Points.Clear();
- foreach (var point in orderedAccelPoints)
- {
- accelSeries.Points.AddXY(point.Key, point.Value);
- }
-
var velSeries = AccelCharts.VelocityChart.Series.FirstOrDefault();
velSeries.Points.Clear();
- foreach (var point in orderedVelocityPoints)
- {
- velSeries.Points.AddXY(point.Key, point.Value);
- }
-
var gainSeries = AccelCharts.GainChart.Series.FirstOrDefault();
gainSeries.Points.Clear();
- foreach (var point in orderedGainPoints)
- {
- gainSeries.Points.AddXY(point.Key, point.Value);
- }
+ accelSeries.Points.DataBindXY(OrderedAccelPoints.Keys, OrderedAccelPoints.Values);
+ velSeries.Points.DataBindXY(OrderedVelocityPoints.Keys, OrderedVelocityPoints.Values);
+ gainSeries.Points.DataBindXY(OrderedGainPoints.Keys, OrderedGainPoints.Values);
}
-
#endregion methods
-
}
}
diff --git a/grapher/Form1.cs b/grapher/Form1.cs
index 4edb9e3..237a25d 100644
--- a/grapher/Form1.cs
+++ b/grapher/Form1.cs
@@ -131,7 +131,8 @@ namespace grapher
offset,
acceleration,
limitOrExponent,
- midpoint);
+ midpoint,
+ writeButton);
this.AccelerationChart.ChartAreas[0].AxisX.RoundAxisValues();