更新202606222

This commit is contained in:
GukSang.Jin
2026-06-22 11:04:39 +08:00
parent 7241d043c0
commit 4e751755bc
2 changed files with 111 additions and 29 deletions

View File

@@ -533,11 +533,21 @@ namespace Footwear_Test_methodsfor_wholeshoe_Slipresistanceperformance.Services
var pressure = ConvertAdc(pressureRaw, pressureZero, pressureCoefficient);
// Keep each settings row paired with the same ADC channel used by the legacy zero-capture button.
var friction1 = ConvertAdc(friction1Raw, frictionZero1, frictionCoefficient1);
var friction2 = ConvertAdc(friction2Raw, frictionZero2, frictionCoefficient2);
var friction = (friction1 + friction2) * -1.0;
return AdcConversionResult.Valid(pressure, friction1, friction2, friction);
var namedFriction1 = ConvertAdc(friction1Raw, frictionZero1, frictionCoefficient1);
var namedFriction2 = ConvertAdc(friction2Raw, frictionZero2, frictionCoefficient2);
var namedFriction = (namedFriction1 + namedFriction2) * -1.0;
var legacyFriction1 = ConvertAdc(friction2Raw, frictionZero1, frictionCoefficient2);
var legacyFriction2 = ConvertAdc(friction1Raw, frictionZero2, frictionCoefficient1);
var legacyFriction = (legacyFriction1 + legacyFriction2) * -1.0;
return AdcConversionResult.Valid(
pressure,
namedFriction1,
namedFriction2,
namedFriction,
legacyFriction1,
legacyFriction2,
legacyFriction);
}
private bool ValidateAdcSettings(
@@ -606,14 +616,18 @@ namespace Footwear_Test_methodsfor_wholeshoe_Slipresistanceperformance.Services
if (conversion.IsValid)
{
Log.Debug(
"ADC 采样RawPressure={RawPressure}, RawFriction1={RawFriction1}, RawFriction2={RawFriction2}, Pressure={Pressure:F3} N, Friction1={Friction1:F3} N, Friction2={Friction2:F3} N, Friction={Friction:F3} N, Coefficients=[P:{PressureCoefficient}, F1:{FrictionCoefficient1}, F2:{FrictionCoefficient2}], Zeros=[P:{PressureZero}, F1:{FrictionZero1}, F2:{FrictionZero2}]",
"ADC 采样RawPressure={RawPressure}, RawFriction1={RawFriction1}, RawFriction2={RawFriction2}, Pressure={Pressure:F3} N, FrictionMode=LegacyCross, FinalFriction={Friction:F3} N, LegacyFriction1={LegacyFriction1:F3} N, LegacyFriction2={LegacyFriction2:F3} N, NamedFriction1={NamedFriction1:F3} N, NamedFriction2={NamedFriction2:F3} N, NamedFriction={NamedFriction:F3} N, FrictionDelta={FrictionDelta:F3} N, Coefficients=[P:{PressureCoefficient}, F1:{FrictionCoefficient1}, F2:{FrictionCoefficient2}], Zeros=[P:{PressureZero}, F1:{FrictionZero1}, F2:{FrictionZero2}]",
pressureRaw,
friction1Raw,
friction2Raw,
conversion.Pressure,
conversion.Friction1,
conversion.Friction2,
conversion.Friction,
conversion.LegacyFriction1,
conversion.LegacyFriction2,
conversion.NamedFriction1,
conversion.NamedFriction2,
conversion.NamedFriction,
conversion.Friction - conversion.NamedFriction,
settings.NormalPressureCoefficient,
settings.FrictionCoefficient1,
settings.FrictionCoefficient2,
@@ -734,16 +748,35 @@ namespace Footwear_Test_methodsfor_wholeshoe_Slipresistanceperformance.Services
private readonly record struct AdcConversionResult(
bool IsValid,
double Pressure,
double Friction1,
double Friction2,
double NamedFriction1,
double NamedFriction2,
double NamedFriction,
double LegacyFriction1,
double LegacyFriction2,
double Friction,
string Error)
{
public static AdcConversionResult Valid(double pressure, double friction1, double friction2, double friction) =>
new(true, pressure, friction1, friction2, friction, string.Empty);
public static AdcConversionResult Valid(
double pressure,
double namedFriction1,
double namedFriction2,
double namedFriction,
double legacyFriction1,
double legacyFriction2,
double friction) =>
new(
true,
pressure,
namedFriction1,
namedFriction2,
namedFriction,
legacyFriction1,
legacyFriction2,
friction,
string.Empty);
public static AdcConversionResult Invalid(string error) =>
new(false, 0, 0, 0, 0, error);
new(false, 0, 0, 0, 0, 0, 0, 0, error);
}
}
}