更新20260527

This commit is contained in:
GukSang.Jin
2026-05-27 09:46:19 +08:00
parent dcf50ea870
commit 273ac62b88

View File

@@ -688,9 +688,12 @@ public sealed class CValueCalibrationViewModel : PageViewModel
CValueCalibrationActionViewModel actionViewModel)
{
var calibrationDataStatus = RefreshDeviceValues();
var shutdownSummary = action == CalibrationStartAction
? CloseCalibrationActuatorsAfterCompletion()
: string.Empty;
LastAction = action == CalibrationStartAction && !calibrationDataStatus.HasAllValues
? $"{waitState.CompletedText}{calibrationDataStatus.MissingSummary}"
: waitState.CompletedText;
? AppendActionSummary(waitState.CompletedText, calibrationDataStatus.MissingSummary, shutdownSummary)
: AppendActionSummary(waitState.CompletedText, shutdownSummary);
waitState.End();
try
@@ -703,6 +706,50 @@ public sealed class CValueCalibrationViewModel : PageViewModel
}
}
private string CloseCalibrationActuatorsAfterCompletion()
{
var failedActions = new List<string>(2);
CloseHoldActionAfterCompletion(MethaneValveAction, MethaneValveCoil, failedActions);
CloseHoldActionAfterCompletion(SamplingPumpAction, SamplingPumpCoil, failedActions);
return failedActions.Count == 0
? "已关闭甲烷阀和取样泵"
: $"{string.Join("", failedActions)}关闭失败";
}
private void CloseHoldActionAfterCompletion(
string action,
ushort coilAddress,
List<string> failedActions)
{
if (_tcpDeviceConnectionService.TryWriteCoil(coilAddress, false))
{
if (!UpdateActionStatus(action, coilAddress) && _actionsByLabel.TryGetValue(action, out var actionViewModel))
{
actionViewModel.UpdateStatus(false);
}
return;
}
failedActions.Add(action);
Debug.WriteLine($"C value calibration action '{action}' auto close failed after calibration completion.");
}
private static string AppendActionSummary(string message, params string[] summaries)
{
foreach (var summary in summaries)
{
if (!string.IsNullOrWhiteSpace(summary))
{
message = $"{message}{summary}";
}
}
return message;
}
private bool TryStartCoilPulse(ushort coilAddress, string actionText)
{
if (!_tcpDeviceConnectionService.TryWriteCoil(coilAddress, true))