更新122
This commit is contained in:
@@ -63,6 +63,7 @@ namespace TabletTester2025.ViewModels
|
||||
[ObservableProperty] private double _hardnessValue;
|
||||
[ObservableProperty] private bool _hardnessPass;
|
||||
[ObservableProperty] private double _hardnessAvg;
|
||||
[ObservableProperty] private double _hardnessAverageDeviation;
|
||||
[ObservableProperty] private double _hardnessRSD;
|
||||
[ObservableProperty] private double _hardnessInternalMin = 40;
|
||||
[ObservableProperty] private double _hardnessInternalMax = 60;
|
||||
@@ -83,6 +84,7 @@ namespace TabletTester2025.ViewModels
|
||||
|
||||
|
||||
private List<double> _hardnessResults = new();
|
||||
public ObservableCollection<HardnessSamplePoint> HardnessSamplePoints { get; } = new();
|
||||
|
||||
// 脆碎度
|
||||
[ObservableProperty] private double _weightBefore;
|
||||
@@ -245,8 +247,13 @@ namespace TabletTester2025.ViewModels
|
||||
await Task.Delay(100); // 脉冲宽度,可根据PLC程序调整20~100ms
|
||||
await _plc.WriteCoilAsync(_plcConfig.HardnessStartReset, false);
|
||||
_hardnessResults.Clear();
|
||||
HardnessSamplePoints.Clear();
|
||||
HardnessCurrentCount = 0;
|
||||
HardnessAvg = 0;
|
||||
HardnessAverageDeviation = 0;
|
||||
HardnessRSD = 0;
|
||||
HardnessMax = 0;
|
||||
HardnessMin= 0;
|
||||
HardnessMin= 0;
|
||||
HardnessShishilizhi = 0;
|
||||
Phase = TestPhase.Idle;
|
||||
|
||||
@@ -1289,8 +1296,10 @@ namespace TabletTester2025.ViewModels
|
||||
Phase = TestPhase.Running;
|
||||
HardnessPass = false;
|
||||
_hardnessResults.Clear();
|
||||
HardnessSamplePoints.Clear();
|
||||
HardnessCurrentCount = 0;
|
||||
HardnessAvg = 0;
|
||||
HardnessAverageDeviation = 0;
|
||||
HardnessRSD = 0;
|
||||
HardnessMax = 0;
|
||||
HardnessMin = 0;
|
||||
@@ -1321,6 +1330,12 @@ namespace TabletTester2025.ViewModels
|
||||
await WaitForCoilStateAsync(completeCoil, true, TimeSpan.FromSeconds(120), "等待硬度完成信号超时");
|
||||
double value = await ReadHardnessResultAsync();
|
||||
_hardnessResults.Add(value);
|
||||
HardnessSamplePoints.Add(new HardnessSamplePoint
|
||||
{
|
||||
SequenceNo = _hardnessResults.Count,
|
||||
Value = value,
|
||||
RecordedAt = DateTime.Now
|
||||
});
|
||||
ApplyHardnessStatistics(count);
|
||||
await WaitForCoilStateAsync(completeCoil, false, TimeSpan.FromSeconds(10), "硬度完成信号未回落");
|
||||
}
|
||||
@@ -1397,11 +1412,15 @@ namespace TabletTester2025.ViewModels
|
||||
requiredCount);
|
||||
|
||||
HardnessAvg = stats.Average;
|
||||
HardnessAverageDeviation = stats.AverageDeviation;
|
||||
HardnessRSD = stats.RsdPercent;
|
||||
HardnessMax = stats.Maximum;
|
||||
HardnessMin = stats.Minimum;
|
||||
HardnessCurrentCount = stats.Count;
|
||||
HardnessPass = stats.IsPass;
|
||||
|
||||
foreach (var sample in HardnessSamplePoints)
|
||||
sample.DeviationFromAverage = Math.Abs(sample.Value - stats.Average);
|
||||
}
|
||||
|
||||
/// 脆碎度测试主逻辑(实时状态显示)
|
||||
@@ -1793,6 +1812,7 @@ namespace TabletTester2025.ViewModels
|
||||
|
||||
// 硬度
|
||||
HardnessAvg = HardnessAvg,
|
||||
HardnessAverageDeviation = HardnessAverageDeviation,
|
||||
HardnessRSD = HardnessRSD,
|
||||
HardnessMax = HardnessMax,
|
||||
HardnessMin = HardnessMin,
|
||||
@@ -1854,8 +1874,11 @@ namespace TabletTester2025.ViewModels
|
||||
.Where(s => s.ChannelName == _dissolutionResultChannel && s.Percent.HasValue)
|
||||
.ToList()
|
||||
: new List<DissolutionSamplePoint>();
|
||||
var hardnessSamples = CurrentTest == TestType.Hardness
|
||||
? HardnessSamplePoints.ToList()
|
||||
: new List<HardnessSamplePoint>();
|
||||
|
||||
await Task.Run(() => _db.InsertBatch(batch, dissolutionSamples));
|
||||
await Task.Run(() => _db.InsertBatch(batch, dissolutionSamples, hardnessSamples));
|
||||
|
||||
|
||||
await Application.Current.Dispatcher.InvokeAsync(() =>
|
||||
|
||||
Reference in New Issue
Block a user