using System;
using System.Threading;
using System.Threading.Tasks;
namespace StandardScene.Magnetic.Tasking
{
///
/// FASS 2.0 车型与 LoopMission 衔接接口。
/// LoopMission 仍通过 goalSite 标签分配目标;车型侧负责一次全程任务执行。
///
public interface IFass2LoopCar
{
bool IsTaskIdle { get; }
bool HasGoalSite { get; }
int? GoalSiteId { get; }
/// 执行 goalSite(或指定目标)对应的全程 FASS 2.0 任务。
Task ExecuteGoalTaskAsync(int? goalSiteId = null, double defaultSpeed = -1,
CancellationToken cancellationToken = default);
/// 任务到达终点后触发,参数为到达站 ID。
event Action TaskCompleted;
}
}