diff options
| author | Jacob Palecki <[email protected]> | 2020-08-13 20:56:41 -0700 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2020-08-13 20:56:41 -0700 |
| commit | 32323636b4b5390c114fc2a6d845b7621a983cdc (patch) | |
| tree | 01d7df8f55e5a1cce90617fd876eaf994eb26846 /grapher/Models/Calculations | |
| parent | All works smoothly (diff) | |
| download | rawaccel-32323636b4b5390c114fc2a6d845b7621a983cdc.tar.xz rawaccel-32323636b4b5390c114fc2a6d845b7621a983cdc.zip | |
Fix initial points, add poll time constant
Diffstat (limited to 'grapher/Models/Calculations')
| -rw-r--r-- | grapher/Models/Calculations/AccelCalculator.cs | 17 | ||||
| -rw-r--r-- | grapher/Models/Calculations/AccelChartData.cs | 5 | ||||
| -rw-r--r-- | grapher/Models/Calculations/AccelData.cs | 32 |
3 files changed, 30 insertions, 24 deletions
diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs index e194854..bba3c32 100644 --- a/grapher/Models/Calculations/AccelCalculator.cs +++ b/grapher/Models/Calculations/AccelCalculator.cs @@ -23,13 +23,13 @@ namespace grapher.Models.Calculations public static ReadOnlyCollection<MagnitudeData> MagnitudesX = GetMagnitudesX(); public static ReadOnlyCollection<MagnitudeData> MagnitudesY = GetMagnitudesY(); - public static void Calculate(AccelData data, ManagedAccel accel, double starterX, double starterY) + public static void Calculate(AccelData data, ManagedAccel accel) { data.Clear(); - Calculate(data.Combined, accel, starterX, MagnitudesCombined); - Calculate(data.X, accel, starterY, MagnitudesX); - Calculate(data.Y, accel, starterY, MagnitudesY); + Calculate(data.Combined, accel, accel.GetSensitivityX(), MagnitudesCombined); + Calculate(data.X, accel, accel.GetSensitivityX(), MagnitudesX); + Calculate(data.Y, accel, accel.GetSensitivityY(), MagnitudesY); } public static void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection<MagnitudeData> magnitudeData) @@ -132,5 +132,14 @@ namespace grapher.Models.Calculations return Math.Sqrt(x * x + y * y); } + public static double Velocity(int x, int y, double time) + { + return Magnitude(x, y) / time; + } + + public static double Velocity(double x, double y, double time) + { + return Magnitude(x, y) / time; + } } } diff --git a/grapher/Models/Calculations/AccelChartData.cs b/grapher/Models/Calculations/AccelChartData.cs index fa31f35..20142a7 100644 --- a/grapher/Models/Calculations/AccelChartData.cs +++ b/grapher/Models/Calculations/AccelChartData.cs @@ -36,7 +36,7 @@ namespace grapher.Models.Calculations OutVelocityToPoints.Clear(); } - public (double, double, double) FindInValuesFromOut(double outVelocityValue) + public (double, double, double) FindPointValuesFromOut(double outVelocityValue) { if (OutVelocityToPoints.TryGetValue(outVelocityValue, out var values)) { @@ -52,11 +52,8 @@ namespace grapher.Models.Calculations } velIdx = Math.Min(velIdx, VelocityPoints.Count - 1); - values = (VelocityPoints.ElementAt(velIdx).Key, AccelPoints.ElementAt(velIdx).Value, GainPoints.ElementAt(velIdx).Value); - OutVelocityToPoints.Add(outVelocityValue, values); - return values; } } diff --git a/grapher/Models/Calculations/AccelData.cs b/grapher/Models/Calculations/AccelData.cs index 6fb4767..683c67e 100644 --- a/grapher/Models/Calculations/AccelData.cs +++ b/grapher/Models/Calculations/AccelData.cs @@ -44,30 +44,30 @@ namespace grapher.Models.Calculations Y.Clear(); } - public void CalculateDots(int x, int y) + public void CalculateDots(int x, int y, double timeInMs) { - var magnitude = AccelCalculator.Magnitude(x, y); + var magnitude = AccelCalculator.Velocity(x, y, timeInMs); - (var inCombVel, var combSens, var combGain) = Combined.FindInValuesFromOut(magnitude); + (var inCombVel, var combSens, var combGain) = Combined.FindPointValuesFromOut(magnitude); Estimated.Velocity.Set(inCombVel, magnitude); Estimated.Sensitivity.Set(inCombVel, combSens); Estimated.Gain.Set(inCombVel, combGain); } - public void CalculateDotsXY(int x, int y) + public void CalculateDotsXY(int x, int y, double timeInMs) { - var magnitudeX = Math.Abs(x); - var magnitudeY = Math.Abs(y); - - (var inXVel, var xSens, var xGain) = X.FindInValuesFromOut(magnitudeX); - EstimatedX.Velocity.Set(inXVel, magnitudeX); - EstimatedX.Sensitivity.Set(inXVel, xSens); - EstimatedX.Gain.Set(inXVel, xGain); - - (var inYVel, var ySens, var yGain) = Y.FindInValuesFromOut(magnitudeY); - EstimatedY.Velocity.Set(inYVel, magnitudeY); - EstimatedY.Sensitivity.Set(inYVel, ySens); - EstimatedY.Gain.Set(inYVel, yGain); + var outX = Math.Abs(x); + var outY = Math.Abs(y); + + (var inXVelocity, var xSensitivity, var xGain) = X.FindPointValuesFromOut(outX); + EstimatedX.Velocity.Set(inXVelocity, outX); + EstimatedX.Sensitivity.Set(inXVelocity, xSensitivity); + EstimatedX.Gain.Set(inXVelocity, xGain); + + (var inYVelocity, var ySensitivity, var yGain) = Y.FindPointValuesFromOut(outY); + EstimatedY.Velocity.Set(inYVelocity, outY); + EstimatedY.Sensitivity.Set(inYVelocity, ySensitivity); + EstimatedY.Gain.Set(inYVelocity, yGain); } } |