Files
I150/srcs/RobotNet10/Shared/RobotNet10.NavigationTune.Shared/Interfaces/ITestExecutor.cs
2026-07-03 16:37:12 +07:00

53 lines
1.4 KiB
C#

using RobotNet10.NavigationTune.Shared.Models;
namespace RobotNet10.NavigationTune.Shared.Interfaces;
/// <summary>
/// Test executor interface
/// </summary>
public interface ITestExecutor
{
/// <summary>
/// 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.
/// </summary>
Task<TestExecutionResult> ExecuteAsync(
TestScenario scenario,
NavigationParameterSet parameters,
Action<TelemetryData>? onTelemetryUpdate = null,
CancellationToken cancellationToken = default,
Action<TestExecutionResult>? onComplete = null
);
/// <summary>
/// Pause test execution
/// </summary>
void Pause();
/// <summary>
/// Resume test execution
/// </summary>
void Resume();
/// <summary>
/// Stop test execution
/// </summary>
void Stop();
/// <summary>
/// Emergency stop
/// </summary>
void EmergencyStop();
/// <summary>
/// Get current execution state
/// </summary>
TestStatus GetStatus();
/// <summary>
/// Get progress information
/// </summary>
TestProgress GetProgress();
}