chore: save current workspace progress

This commit is contained in:
梁薄云
2026-08-09 22:13:18 +08:00
parent 650c2ab0e3
commit 2f4fd15e52
449 changed files with 76593 additions and 971 deletions
@@ -106,7 +106,7 @@ public sealed class TrajectoryObservationSegmentTracker
return CreateUpdate(false, true, "方向段已完成,忽略后续观察样本。");
DirectionSegmentView current = segments[State.ActiveSegmentIndex];
if (!IsEligibleGearSwitchTerminal(now, measuredState, trajectory, current))
if (!IsEligibleTerminal(now, measuredState, trajectory, current))
{
if (State.Phase == TrajectoryObservationSegmentPhase.Planning)
return CreateUpdate(false, false, "等待当前方向段的有效换向终点轨迹。");
@@ -167,11 +167,13 @@ public sealed class TrajectoryObservationSegmentTracker
(!lastUpdateAtUtc.HasValue || now >= lastUpdateAtUtc.Value);
}
private bool IsEligibleGearSwitchTerminal(DateTimeOffset now, VehicleMotionState measuredState,
private bool IsEligibleTerminal(DateTimeOffset now, VehicleMotionState measuredState,
EmTrajectory trajectory, DirectionSegmentView current)
{
if (trajectory == null || trajectory.Metadata.SegmentIndex != current.SegmentIndex ||
trajectory.Metadata.Direction != current.Direction || trajectory.Metadata.TerminalType != EmTerminalType.GearSwitch)
trajectory.Metadata.Direction != current.Direction ||
(trajectory.Metadata.TerminalType != EmTerminalType.GearSwitch &&
trajectory.Metadata.TerminalType != EmTerminalType.Goal))
return false;
EmTrajectoryPoint terminalPoint = trajectory.Points[trajectory.Points.Count - 1];
@@ -182,6 +184,8 @@ public sealed class TrajectoryObservationSegmentTracker
if (!projector.TryProject(measuredState.Pose, current, current.LengthMeters, current.LengthMeters,
settings.GearSwitchProjectionToleranceMeters, current.LengthMeters, out _))
return false;
if (trajectory.Metadata.TerminalType == EmTerminalType.Goal)
return State.ActiveSegmentIndex + 1 >= segments.Count;
if (State.ActiveSegmentIndex + 1 >= segments.Count)
return true;