summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authora1xd <[email protected]>2020-12-05 01:21:03 -0500
committera1xd <[email protected]>2020-12-05 01:21:03 -0500
commit2c7c24ee1513616dc6260849bf97340d8484b6b4 (patch)
tree2210c90268748f685297313e0541862bf6894aa0
parentadd changes from review (diff)
downloadrawaccel-2c7c24ee1513616dc6260849bf97340d8484b6b4.tar.xz
rawaccel-2c7c24ee1513616dc6260849bf97340d8484b6b4.zip
add more changes from review
improve version error messages revert poll time changes add range validation after text parse
-rw-r--r--grapher/Models/AccelGUIFactory.cs4
-rw-r--r--grapher/Models/Calculations/AccelData.cs14
-rw-r--r--grapher/Models/Charts/AccelCharts.cs4
-rw-r--r--grapher/Models/Charts/ChartState/ChartState.cs2
-rw-r--r--grapher/Models/Charts/ChartState/CombinedState.cs4
-rw-r--r--grapher/Models/Charts/ChartState/XYOneGraphState.cs4
-rw-r--r--grapher/Models/Charts/ChartState/XYTwoGraphState.cs4
-rw-r--r--grapher/Models/Fields/Field.cs20
-rw-r--r--grapher/Models/Mouse/MouseWatcher.cs6
-rw-r--r--wrapper/wrapper.cpp10
10 files changed, 41 insertions, 31 deletions
diff --git a/grapher/Models/AccelGUIFactory.cs b/grapher/Models/AccelGUIFactory.cs
index d789593..901a1b5 100644
--- a/grapher/Models/AccelGUIFactory.cs
+++ b/grapher/Models/AccelGUIFactory.cs
@@ -105,8 +105,8 @@ namespace grapher.Models
Label mouseLabel)
{
var accelCalculator = new AccelCalculator(
- new Field(dpiTextBox.TextBox, form, Constants.DefaultDPI),
- new Field(pollRateTextBox.TextBox, form, Constants.DefaultPollRate));
+ new Field(dpiTextBox.TextBox, form, Constants.DefaultDPI, 1),
+ new Field(pollRateTextBox.TextBox, form, Constants.DefaultPollRate, 1));
var accelCharts = new AccelCharts(
form,
diff --git a/grapher/Models/Calculations/AccelData.cs b/grapher/Models/Calculations/AccelData.cs
index 778c5a2..d35217f 100644
--- a/grapher/Models/Calculations/AccelData.cs
+++ b/grapher/Models/Calculations/AccelData.cs
@@ -56,9 +56,9 @@ namespace grapher.Models.Calculations
OutVelocityToPoints.Clear();
}
- public void CalculateDots(double x, double y, double timeInMsRecip)
+ public void CalculateDots(double x, double y, double timeInMs)
{
- var outVelocity = AccelCalculator.Magnitude(x, y) * timeInMsRecip;
+ var outVelocity = AccelCalculator.Velocity(x, y, timeInMs);
(var inCombVel, var combSens, var combGain) = Combined.FindPointValuesFromOut(outVelocity);
Estimated.Velocity.Set(inCombVel, outVelocity);
@@ -66,10 +66,10 @@ namespace grapher.Models.Calculations
Estimated.Gain.Set(inCombVel, combGain);
}
- public void CalculateDotsXY(double x, double y, double timeInMsRecip)
+ public void CalculateDotsXY(double x, double y, double timeInMs)
{
- var outX = Math.Abs(x) * timeInMsRecip;
- var outY = Math.Abs(y) * timeInMsRecip;
+ var outX = Math.Abs(x) / timeInMs;
+ var outY = Math.Abs(y) / timeInMs;
(var inXVelocity, var xSensitivity, var xGain) = X.FindPointValuesFromOut(outX);
EstimatedX.Velocity.Set(inXVelocity, outX);
@@ -82,10 +82,10 @@ namespace grapher.Models.Calculations
EstimatedY.Gain.Set(inYVelocity, yGain);
}
- public void CalculateDotsCombinedDiffSens(double x, double y, double timeInMsRecip, DriverSettings settings)
+ public void CalculateDotsCombinedDiffSens(double x, double y, double timeInMs, DriverSettings settings)
{
(var xStripped, var yStripped) = AccelCalculator.StripSens(x, y, settings.sensitivity.x, settings.sensitivity.y);
- var outVelocity = AccelCalculator.Magnitude(xStripped, yStripped) * timeInMsRecip;
+ var outVelocity = AccelCalculator.Velocity(xStripped, yStripped, timeInMs);
if (OutVelocityToPoints.TryGetValue(outVelocity, out var points))
{
diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs
index 188db10..b7abb35 100644
--- a/grapher/Models/Charts/AccelCharts.cs
+++ b/grapher/Models/Charts/AccelCharts.cs
@@ -99,9 +99,9 @@ namespace grapher
#region Methods
- public void MakeDots(double x, double y, double timeInMsRecip)
+ public void MakeDots(double x, double y, double timeInMs)
{
- ChartState.MakeDots(x, y, timeInMsRecip);
+ ChartState.MakeDots(x, y, timeInMs);
}
public void DrawLastMovement()
diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs
index c1b8e9b..0bb141e 100644
--- a/grapher/Models/Charts/ChartState/ChartState.cs
+++ b/grapher/Models/Charts/ChartState/ChartState.cs
@@ -40,7 +40,7 @@ namespace grapher.Models.Charts.ChartState
internal bool TwoDotsPerGraph { get; set; }
- public abstract void MakeDots(double x, double y, double timeInMsRecip);
+ public abstract void MakeDots(double x, double y, double timeInMs);
public abstract void Bind();
diff --git a/grapher/Models/Charts/ChartState/CombinedState.cs b/grapher/Models/Charts/ChartState/CombinedState.cs
index 9fcdc11..9eadb87 100644
--- a/grapher/Models/Charts/ChartState/CombinedState.cs
+++ b/grapher/Models/Charts/ChartState/CombinedState.cs
@@ -30,9 +30,9 @@ namespace grapher.Models.Charts.ChartState
GainChart.ClearSecondDots();
}
- public override void MakeDots(double x, double y, double timeInMsRecip)
+ public override void MakeDots(double x, double y, double timeInMs)
{
- Data.CalculateDots(x, y, timeInMsRecip);
+ Data.CalculateDots(x, y, timeInMs);
}
public override void Bind()
diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs
index 95c4b20..2b3cd9c 100644
--- a/grapher/Models/Charts/ChartState/XYOneGraphState.cs
+++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs
@@ -28,9 +28,9 @@ namespace grapher.Models.Charts.ChartState
GainChart.SetCombined();
}
- public override void MakeDots(double x, double y, double timeInMsRecip)
+ public override void MakeDots(double x, double y, double timeInMs)
{
- Data.CalculateDotsCombinedDiffSens(x, y, timeInMsRecip, Settings);
+ Data.CalculateDotsCombinedDiffSens(x, y, timeInMs, Settings);
}
public override void Bind()
diff --git a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs
index 075cc0f..732ea3c 100644
--- a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs
+++ b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs
@@ -33,9 +33,9 @@ namespace grapher.Models.Charts.ChartState
GainChart.ClearSecondDots();
}
- public override void MakeDots(double x, double y, double timeInMsRecip)
+ public override void MakeDots(double x, double y, double timeInMs)
{
- Data.CalculateDotsXY(x, y, timeInMsRecip);
+ Data.CalculateDotsXY(x, y, timeInMs);
}
public override void Bind()
diff --git a/grapher/Models/Fields/Field.cs b/grapher/Models/Fields/Field.cs
index 541bbe2..345f814 100644
--- a/grapher/Models/Fields/Field.cs
+++ b/grapher/Models/Fields/Field.cs
@@ -27,12 +27,16 @@ namespace grapher
#region Constructors
- public Field(TextBox box, Form containingForm, double defaultData)
+ public Field(TextBox box, Form containingForm, double defaultData,
+ double minData = double.MinValue,
+ double maxData = double.MaxValue)
{
DefaultText = DecimalString(defaultData);
Box = box;
_data = defaultData;
DefaultData = defaultData;
+ MinData = minData;
+ MaxData = maxData;
State = FieldState.Undefined;
ContainingForm = containingForm;
FormatString = Constants.DefaultFieldFormatString;
@@ -69,7 +73,7 @@ namespace grapher
{
return DefaultData;
}
- }
+ }
}
public int Top
@@ -122,6 +126,10 @@ namespace grapher
private double DefaultData { get; set; }
+ private double MinData { get; }
+
+ private double MaxData { get; }
+
#endregion Properties
#region Methods
@@ -268,12 +276,10 @@ namespace grapher
private void TextToData()
{
- try
- {
- _data = Convert.ToDouble(Box.Text);
- }
- catch
+ if (double.TryParse(Box.Text, out double value) &&
+ value <= MaxData && value >= MinData)
{
+ _data = value;
}
Box.Text = DecimalString(Data);
diff --git a/grapher/Models/Mouse/MouseWatcher.cs b/grapher/Models/Mouse/MouseWatcher.cs
index ae48a76..cbfc119 100644
--- a/grapher/Models/Mouse/MouseWatcher.cs
+++ b/grapher/Models/Mouse/MouseWatcher.cs
@@ -711,9 +711,9 @@ namespace grapher.Models.Mouse
private MouseData MouseData { get; }
- private double PollTimeReciprocal
+ private double PollTime
{
- get => Math.Abs(SettingsManager.PollRateField.Data) * 0.001;
+ get => 1000 / SettingsManager.PollRateField.Data;
}
#endregion Properties
@@ -757,7 +757,7 @@ namespace grapher.Models.Mouse
}
MouseData.Set(rawInput.Data.Mouse.LastX, rawInput.Data.Mouse.LastY);
- AccelCharts.MakeDots(x, y, PollTimeReciprocal);
+ AccelCharts.MakeDots(x, y, PollTime);
}
}
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp
index c59dc00..fcbf2e8 100644
--- a/wrapper/wrapper.cpp
+++ b/wrapper/wrapper.cpp
@@ -355,16 +355,20 @@ public ref struct VersionHelper
}
catch (DriverIOException^) {
// Assume version ioctl is unimplemented (driver version < v1.3.0)
- throw gcnew VersionException("driver version is out of date, run installer.exe to reinstall");
+ throw gcnew VersionException("driver version is out of date\n\nrun installer.exe to reinstall");
}
Version^ drv_ver_managed = convert(drv_ver);
if (drv_ver_managed < convert(min_driver_version)) {
- throw gcnew VersionException("driver version is out of date, run installer.exe to reinstall");
+ throw gcnew VersionException(
+ String::Format("driver version is out of date (v{0})\n\nrun installer.exe to reinstall",
+ drv_ver_managed));
}
else if (drv_ver_managed > wrapperActual) {
- throw gcnew VersionException("newer driver version is installed");
+ throw gcnew VersionException(
+ String::Format("newer driver version is installed (v{0})",
+ drv_ver_managed));
}
else {
return drv_ver_managed;