using RobotNet.VDA5050.InstantAction;
using RobotNet.VDA5050.Order;
namespace RobotNet10.FleetManager.Services.RobotConnections;
///
/// 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 to a robot
///
Task PublishOrderAsync(string robotId, OrderMsg order, CancellationToken cancellationToken = default);
///
/// Publish instant actions message to a robot
///
Task PublishInstantActionsAsync(string robotId, InstantActionsMsg instantActions, CancellationToken cancellationToken = default);
}