using RobotNet10.NavigationTune.Shared.Models; namespace RobotNet10.NavigationTune.Shared.Interfaces; /// /// Test executor interface /// public interface ITestExecutor { /// /// Execute a test scenario. /// The navigation algorithm runs on a WatchThread (50Hz); onTelemetryUpdate is invoked from that thread. /// When onComplete is provided, the method returns immediately with Status=Running and invokes onComplete when done. /// Task ExecuteAsync( TestScenario scenario, NavigationParameterSet parameters, Action? onTelemetryUpdate = null, CancellationToken cancellationToken = default, Action? onComplete = null ); /// /// Pause test execution /// void Pause(); /// /// Resume test execution /// void Resume(); /// /// Stop test execution /// void Stop(); /// /// Emergency stop /// void EmergencyStop(); /// /// Get current execution state /// TestStatus GetStatus(); /// /// Get progress information /// TestProgress GetProgress(); }