6.6 KiB
6.6 KiB
滑块质量值获取验证测试
测试目的
验证系统在不同场景下是否正确获取和使用用户选择的滑块质量值(200g/300g/500g),确保法向力计算和报告生成的准确性。
测试场景
场景1:默认质量值测试
操作步骤:
- 启动程序,连接设备
- 不修改质量选择(默认200g)
- 选择标准 GB/T 10006-2021
- 执行测试
- 生成PDF报告
预期结果:
- UI显示:滑块质量 = 200.0 g
- 法向力计算:W = 0.2 × 9.80665 = 1.96133 N
- 报告显示:
测试标准: GB/T 10006-2021 滑块质量: 200.0 g 测试速度: 100.0 mm/min 测试行程: 80.0 mm - 摩擦系数计算:μ = F / 1.96133
场景2:选择300g质量测试
操作步骤:
- 启动程序,连接设备
- 在设置页选择滑块质量:300g
- 选择标准 ISO 8295:1995
- 执行测试
- 生成PDF报告
预期结果:
- UI显示:滑块质量 = 300.0 g
- 法向力计算:W = 0.3 × 9.80665 = 2.94200 N
- 报告显示:
测试标准: ISO 8295:1995 滑块质量: 300.0 g 测试速度: 100.0 mm/min 测试行程: 80.0 mm - 摩擦系数计算:μ = F / 2.94200
场景3:选择500g质量测试
操作步骤:
- 启动程序,连接设备
- 在设置页选择滑块质量:500g
- 选择标准 ASTM D1894-24
- 执行测试
- 生成PDF报告
预期结果:
- UI显示:滑块质量 = 500.0 g
- 法向力计算:W = 0.5 × 9.80665 = 4.90333 N
- 报告显示:
测试标准: ASTM D1894-24 滑块质量: 500.0 g 测试速度: 150.0 mm/min 测试行程: 150.0 mm - 摩擦系数计算:μ = F / 4.90333
场景4:切换质量后选择标准
操作步骤:
- 启动程序,连接设备
- 选择滑块质量:200g
- 选择标准 GB/T 10006-2021
- 切换滑块质量为:500g
- 执行测试
- 生成PDF报告
预期结果:
- UI显示:滑块质量 = 500.0 g(最新选择的值)
- 法向力计算:W = 0.5 × 9.80665 = 4.90333 N
- 报告显示:
测试标准: GB/T 10006-2021 滑块质量: 500.0 g 测试速度: 100.0 mm/min 测试行程: 80.0 mm - 摩擦系数计算:μ = F / 4.90333
场景5:先选择标准后选择质量
操作步骤:
- 启动程序,连接设备
- 选择标准 ISO 8295:1995
- 选择滑块质量:300g
- 执行测试
- 生成PDF报告
预期结果:
- UI显示:滑块质量 = 300.0 g
- 法向力计算:W = 0.3 × 9.80665 = 2.94200 N
- 报告显示:
测试标准: ISO 8295:1995 滑块质量: 300.0 g 测试速度: 100.0 mm/min 测试行程: 80.0 mm - 摩擦系数计算:μ = F / 2.94200
场景6:自定义模式质量测试
操作步骤:
- 启动程序,连接设备
- 选择滑块质量:300g
- 点击"自定义"按钮
- 修改水平测试速度为:120 mm/min
- 点击"更新参数到设备"
- 执行测试
- 生成PDF报告
预期结果:
- UI显示:滑块质量 = 300.0 g
- 法向力计算:W = 0.3 × 9.80665 = 2.94200 N
- 报告显示:
测试标准: 自定义 滑块质量: 300.0 g 测试速度: 120.0 mm/min 测试行程: [用户设置的值] mm - 摩擦系数计算:μ = F / 2.94200
验证点检查清单
代码层面验证
Parameters.SledMass默认值为 200.0g- ComboBox 双向绑定到
Parameters.SledMass - 选择标准时不覆盖
Parameters.SledMass - 法向力计算使用
parameters.SledMass:double gravityForce = (parameters.SledMass / 1000.0) * 9.80665; - 报告生成使用
parameters.SledMass:$"滑块质量: {parameters.SledMass:F1} g"
UI层面验证
- 质量下拉框显示三个选项:200g、300g、500g
- 默认选中200g
- 选择不同质量后,UI立即更新
- 选择标准后,质量值不变
- 切换质量后,新值立即生效
计算层面验证
- 200g质量:法向力 = 1.96133 N
- 300g质量:法向力 = 2.94200 N
- 500g质量:法向力 = 4.90333 N
- 摩擦系数 = 摩擦力 / 法向力
- 不同质量下,相同摩擦力产生不同摩擦系数
报告层面验证
- 报告显示用户选择的质量值
- 报告显示选择的标准名称
- 报告显示正确的测试速度和行程
- 报告中的摩擦系数与计算值一致
关键代码位置
1. 质量属性定义(Model.cs)
private double _sledMass = 200.0; // 默认值 200g
public double SledMass
{
get => _sledMass;
set { _sledMass = value; OnPropertyChanged(); }
}
2. UI绑定(SettingsPage.xaml)
<ComboBox SelectedValue="{Binding Parameters.SledMass, Mode=TwoWay}"
SelectedValuePath="Tag">
<ComboBoxItem Content="200 g" Tag="200.0"/>
<ComboBoxItem Content="300 g" Tag="300.0"/>
<ComboBoxItem Content="500 g" Tag="500.0"/>
</ComboBox>
3. 标准选择不覆盖质量(ViewModel.cs)
// 更新所有相关参数(用于报告生成)
// 注意:不更新 SledMass,保留用户在UI上选择的质量值
Parameters.Standard = standardName;
// Parameters.SledMass 保持用户选择的值(200g/300g/500g)
Parameters.TestSpeed = speed;
Parameters.TestStroke = displacement;
4. 法向力计算(Services.cs)
// 計算法向力(重力):W = m * g
// 質量單位從 g 轉換為 kg
double gravityForce = (parameters.SledMass / 1000.0) * GravityConstant;
5. 报告生成(PdfReportService.cs)
$"滑块质量: {parameters.SledMass:F1} g"
测试结论
修复前的问题
- 选择标准时会强制将质量设置为200g
- 用户选择的300g或500g质量会被覆盖
- 导致法向力计算错误
- 报告显示的质量值不正确
修复后的效果
- ✅ 选择标准时保留用户选择的质量值
- ✅ 法向力计算使用正确的质量值
- ✅ 报告显示用户实际选择的质量值
- ✅ 摩擦系数计算准确
- ✅ 支持200g/300g/500g三种质量选择
注意事项
- 质量选择优先:建议用户先选择质量,再选择标准
- 质量可随时更改:用户可以在任何时候更改质量,新值立即生效
- 质量影响计算:不同质量会产生不同的法向力,从而影响摩擦系数
- 报告准确性:报告会显示测试时实际使用的质量值
- 标准独立性:选择标准只影响速度和位移,不影响质量
相关文档
标准选择功能说明.md- 完整功能说明CSI-H238M/ViewModels/ViewModel.cs- 标准选择逻辑CSI-H238M/Services/Services.cs- 法向力计算CSI-H238M/Services/PdfReportService.cs- 报告生成