Files
ParkingRobot/ClumsyPilot/ParkrobTrajplanner/PathSmoothing/Contracts/PathSmoothingDiagnostics.cs
T

37 lines
1.5 KiB
C#
Raw Normal View History

2026-07-28 16:48:24 +08:00
using System;
namespace MultiWheelC.TrajectoryPlanning.PathSmoothing;
2026-08-09 22:13:18 +08:00
/// <summary>一次 Local G2 平滑尝试的不可变诊断快照,适用于成功、取消和失败结果。</summary>
2026-07-28 16:48:24 +08:00
public sealed class PathSmoothingDiagnostics
{
2026-08-09 22:13:18 +08:00
/// <summary>创建不可行、零耗时且没有终止原因的默认诊断快照。</summary>
2026-07-28 16:48:24 +08:00
public PathSmoothingDiagnostics()
2026-08-09 22:13:18 +08:00
: this(new PathQualityMetrics(), TimeSpan.Zero, string.Empty)
2026-07-28 16:48:24 +08:00
{
}
2026-08-09 22:13:18 +08:00
/// <summary>创建平滑诊断快照。</summary>
/// <param name="metrics">路径可行性、曲率、净空和相对变化的质量指标。</param>
/// <param name="elapsed">从服务入口到终止的累计耗时。</param>
/// <param name="terminationReason">可供调用方记录的成功、取消或失败原因;为 <see langword="null"/> 时为空字符串。</param>
2026-07-28 16:48:24 +08:00
public PathSmoothingDiagnostics(
PathQualityMetrics metrics,
TimeSpan elapsed,
string terminationReason = null)
{
Metrics = metrics ?? new PathQualityMetrics();
Elapsed = elapsed;
TerminationReason = terminationReason ?? string.Empty;
}
2026-08-09 22:13:18 +08:00
/// <summary>本次尝试的质量指标;未提供时为全零且不可行的默认指标。</summary>
2026-07-28 16:48:24 +08:00
public PathQualityMetrics Metrics { get; }
2026-08-09 22:13:18 +08:00
/// <summary>本次尝试的累计耗时,类型为 <see cref="TimeSpan"/>。</summary>
2026-07-28 16:48:24 +08:00
public TimeSpan Elapsed { get; }
2026-08-09 22:13:18 +08:00
/// <summary>终止原因文本;不承载可消费的部分路径。</summary>
2026-07-28 16:48:24 +08:00
public string TerminationReason { get; }
}