namespace MultiWheelC.Control.Abstractions
{
    /// <summary>
    /// 定义根据参考速度和实际纵向速度生成底盘命令速度的统一接口。
    /// </summary>
    public interface ILongitudinalController
    {
        /// <summary>
        /// 根据本周期速度目标、速度反馈和时间间隔计算有符号底盘命令速度。
        /// </summary>
        double ComputeSpeedMetersPerSecond(
            PathTrackingContext context);

        /// <summary>
        /// 清除积分、历史误差和其他跨周期状态，以便安全开始新的控制过程。
        /// </summary>
        void Reset();
    }
}
