63 lines
2.0 KiB
C#
63 lines
2.0 KiB
C#
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;
|
|
|
|
/// <summary>
|
|
/// Service interface for managing MQTT connections to robots via VDA5050 protocol
|
|
/// </summary>
|
|
public interface IRobotConnectionsService
|
|
{
|
|
/// <summary>
|
|
/// Start MQTT connection and subscribe to topics
|
|
/// </summary>
|
|
Task StartAsync(CancellationToken? cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Stop MQTT connection
|
|
/// </summary>
|
|
Task StopAsync();
|
|
|
|
/// <summary>
|
|
/// Check if MQTT client is connected
|
|
/// </summary>
|
|
bool IsConnected { get; }
|
|
|
|
/// <summary>
|
|
/// Publish order message from robot
|
|
/// </summary>
|
|
Task<bool> PublishStateAsync(StateMsg state, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Publish visualization message from robot
|
|
/// </summary>
|
|
Task<bool> PublishVisualizationAsync(VisualizationMsg visualization, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Publish factsheet message from robot
|
|
/// </summary>
|
|
/// <param name="factsheet"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <returns></returns>
|
|
Task<bool> PublishFactsheetAsync(FactSheetMsg factsheet, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Publish connection message from robot
|
|
/// </summary>
|
|
/// <param name="connection"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <returns></returns>
|
|
Task<bool> PublishConnectionAsync(ConnectionMsg connection, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Publish Connection state from robot
|
|
/// </summary>
|
|
/// <param name="state"></param>
|
|
/// <returns></returns>
|
|
Task PublishConnectionStateAsync(ConnectionState state);
|
|
}
|