更新20260527
This commit is contained in:
@@ -688,9 +688,12 @@ public sealed class CValueCalibrationViewModel : PageViewModel
|
|||||||
CValueCalibrationActionViewModel actionViewModel)
|
CValueCalibrationActionViewModel actionViewModel)
|
||||||
{
|
{
|
||||||
var calibrationDataStatus = RefreshDeviceValues();
|
var calibrationDataStatus = RefreshDeviceValues();
|
||||||
|
var shutdownSummary = action == CalibrationStartAction
|
||||||
|
? CloseCalibrationActuatorsAfterCompletion()
|
||||||
|
: string.Empty;
|
||||||
LastAction = action == CalibrationStartAction && !calibrationDataStatus.HasAllValues
|
LastAction = action == CalibrationStartAction && !calibrationDataStatus.HasAllValues
|
||||||
? $"{waitState.CompletedText},{calibrationDataStatus.MissingSummary}"
|
? AppendActionSummary(waitState.CompletedText, calibrationDataStatus.MissingSummary, shutdownSummary)
|
||||||
: waitState.CompletedText;
|
: AppendActionSummary(waitState.CompletedText, shutdownSummary);
|
||||||
waitState.End();
|
waitState.End();
|
||||||
|
|
||||||
try
|
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)
|
private bool TryStartCoilPulse(ushort coilAddress, string actionText)
|
||||||
{
|
{
|
||||||
if (!_tcpDeviceConnectionService.TryWriteCoil(coilAddress, true))
|
if (!_tcpDeviceConnectionService.TryWriteCoil(coilAddress, true))
|
||||||
|
|||||||
Reference in New Issue
Block a user