diff options
| author | Jacob Palecki <[email protected]> | 2020-09-19 19:27:37 -0700 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2020-09-19 19:27:37 -0700 |
| commit | 8f5c6c2a733812b19641789e34552afe9e601686 (patch) | |
| tree | 9ad46aea405930b77ee89587a1339ea1ed51fa45 /grapher/Models/Calculations/AccelCalculator.cs | |
| parent | Furhter designer changes (diff) | |
| download | rawaccel-8f5c6c2a733812b19641789e34552afe9e601686.tar.xz rawaccel-8f5c6c2a733812b19641789e34552afe9e601686.zip | |
further work
Diffstat (limited to 'grapher/Models/Calculations/AccelCalculator.cs')
| -rw-r--r-- | grapher/Models/Calculations/AccelCalculator.cs | 54 |
1 files changed, 32 insertions, 22 deletions
diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs index ab1f346..ff1088b 100644 --- a/grapher/Models/Calculations/AccelCalculator.cs +++ b/grapher/Models/Calculations/AccelCalculator.cs @@ -57,35 +57,14 @@ namespace grapher.Models.Calculations #region Methods - public void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection<MagnitudeData> magnitudeData, bool strip = false, DriverSettings settings = null) + public void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection<MagnitudeData> magnitudeData) { double lastInputMagnitude = 0; double lastOutputMagnitude = 0; - bool stripSens = strip && ShouldStripSens(ref settings); - bool stripRot = strip && ShouldStripRot(ref settings); - - if(stripSens) - { - Sensitivity = GetSens(ref settings); - } - - if (stripRot) - { - RotationVector = GetRotVector(ref settings); - } - foreach (var magnitudeDatum in magnitudeData) { var output = accel.Accelerate(magnitudeDatum.x, magnitudeDatum.y, MeasurementTime); - var outputX = output.Item1; - var outputY = output.Item2; - - if (stripSens) - { - (outputX, outputY) = StripThisSens(outputX, outputY); - } - var outMagnitude = Magnitude(output.Item1, output.Item2); var ratio = magnitudeDatum.magnitude > 0 ? outMagnitude / magnitudeDatum.magnitude : starter; @@ -115,6 +94,37 @@ namespace grapher.Models.Calculations data.OrderedVelocityPointsList.AddRange(data.VelocityPoints.Values.ToList()); } + public void CalculateCombinedDiffSens(AccelData data, ManagedAccel accel, DriverSettings settings, ICollection<MagnitudeData> magnitudeData) + { + double lastInputMagnitudeX = 0; + double lastOutputMagnitudeX = 0; + double lastInputMagnitudeY = 0; + double lastOutputMagnitudeY = 0; + + Sensitivity = GetSens(ref settings); + + foreach (var magnitudeDatum in magnitudeData) + { + var output = accel.Accelerate(magnitudeDatum.x, magnitudeDatum.y, MeasurementTime); + var outputWithoutSens = StripThisSens(output.Item1, output.Item2); + var magnitudeWithoutSens = Magnitude(outputWithoutSens.Item1, outputWithoutSens.Item2); + + var ratio = magnitudeDatum.magnitude > 0 ? magnitudeWithoutSens / magnitudeDatum.magnitude : 1; + + if (!data.Combined.AccelPoints.ContainsKey(magnitudeDatum.magnitude)) + { + data.Combined.AccelPoints.Add(magnitudeDatum.magnitude, ratio); + } + + var xRatio = magnitudeDatum.x > 0 ? output.Item1 / magnitudeDatum.x : settings.sensitivity.x * ratio; + + if (!data.X.AccelPoints.ContainsKey(magnitudeDatum.magnitude)) + { + + } + } + } + public ReadOnlyCollection<MagnitudeData> GetMagnitudes() { var magnitudes = new List<MagnitudeData>(); |