using RobotNet.VDA5050.Connection; using RobotNet.VDA5050.Factsheet; using RobotNet.VDA5050.InstantAction; using RobotNet.VDA5050.State; using RobotNet.VDA5050.Type; using RobotNet.VDA5050.Visualization; namespace RobotNet10.RobotApp.Services.Robot.Connection; /// /// Service interface for managing MQTT connections to robots via VDA5050 protocol /// public interface IRobotConnectionsService { /// /// Start MQTT connection and subscribe to topics /// Task StartAsync(CancellationToken? cancellationToken); /// /// Stop MQTT connection /// Task StopAsync(); /// /// Check if MQTT client is connected /// bool IsConnected { get; } /// /// Publish order message from robot /// Task PublishStateAsync(StateMsg state, CancellationToken cancellationToken = default); /// /// Publish visualization message from robot /// Task PublishVisualizationAsync(VisualizationMsg visualization, CancellationToken cancellationToken = default); /// /// Publish factsheet message from robot /// /// /// /// Task PublishFactsheetAsync(FactSheetMsg factsheet, CancellationToken cancellationToken = default); /// /// Publish connection message from robot /// /// /// /// Task PublishConnectionAsync(ConnectionMsg connection, CancellationToken cancellationToken = default); /// /// Publish Connection state from robot /// /// /// Task PublishConnectionStateAsync(ConnectionState state); }