更新20260527
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user