feat: format EM observation diagnostics
This commit is contained in:
+40
@@ -0,0 +1,40 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using MultiWheelC.TrajectoryPlanning.EMPlanner;
|
||||
|
||||
namespace MultiWheelC.TrajectoryPlanning.TrajectoryObservation;
|
||||
|
||||
public sealed class TrajectoryObservationDiagnostic
|
||||
{
|
||||
public TrajectoryObservationDiagnostic(string text)
|
||||
{
|
||||
Text = text ?? string.Empty;
|
||||
}
|
||||
|
||||
public string Text { get; }
|
||||
}
|
||||
|
||||
public static class TrajectoryObservationDiagnostics
|
||||
{
|
||||
public static TrajectoryObservationDiagnostic Create(PlanningCycleResult latestCycle,
|
||||
TimeSpan elapsed, bool planningInFlight, EmTrajectory publishedTrajectory)
|
||||
{
|
||||
if (latestCycle == null)
|
||||
return new TrajectoryObservationDiagnostic(planningInFlight
|
||||
? "planning status=pending"
|
||||
: "planning status=not-started");
|
||||
|
||||
string text = "planning cycle=" + latestCycle.Version.ToString(CultureInfo.InvariantCulture) +
|
||||
" status=" + latestCycle.Result.Status +
|
||||
" published=" + latestCycle.Published +
|
||||
" elapsed=" + Math.Max(0d, elapsed.TotalMilliseconds).ToString("F0", CultureInfo.InvariantCulture) +
|
||||
"ms";
|
||||
if (planningInFlight)
|
||||
text += "\nreplan=pending";
|
||||
if (publishedTrajectory != null)
|
||||
text += "\ntrajectory=" + publishedTrajectory.Metadata.TrajectoryId;
|
||||
if (!string.IsNullOrWhiteSpace(latestCycle.Result.FailureReason))
|
||||
text += "\nreason=" + latestCycle.Result.FailureReason;
|
||||
return new TrajectoryObservationDiagnostic(text);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user