37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
using RobotNet10.Shared.Detection;
|
|
|
|
namespace RobotNet10.RobotApp.Detection;
|
|
|
|
/// <summary>
|
|
/// Main service interface for marker and landmark detection
|
|
/// Manages detection sessions and device transforms
|
|
/// </summary>
|
|
public interface IMarkerDetector : IDisposable
|
|
{
|
|
/// <summary>
|
|
/// Create a new detection session
|
|
/// </summary>
|
|
/// <param name="config">Session configuration with search area and marker list</param>
|
|
/// <returns>Created detection session instance</returns>
|
|
/// <exception cref="ArgumentException">
|
|
/// Thrown if:
|
|
/// - Marker IDs don't exist in database
|
|
/// - Device IDs don't exist in device provider
|
|
/// - Invalid configuration parameters
|
|
/// </exception>
|
|
Task<IDetectSession> CreateSessionAsync(MarkersSearchRequest request);
|
|
|
|
/// <summary>
|
|
/// Get all active sessions
|
|
/// </summary>
|
|
/// <returns>Read-only list of active sessions</returns>
|
|
IReadOnlyList<IDetectSession> GetActiveSessions();
|
|
|
|
/// <summary>
|
|
/// Get session by ID
|
|
/// </summary>
|
|
/// <param name="sessionId">Session ID to find</param>
|
|
/// <returns>Session if found, null otherwise</returns>
|
|
IDetectSession? GetSession(Guid sessionId);
|
|
}
|