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();
}