53 lines
1.4 KiB
C#
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();
|
|
}
|