Initial commit

This commit is contained in:
2026-07-03 16:31:37 +07:00
commit 899c7c637d
1939 changed files with 641750 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
using RobotNet.VDA5050.InstantAction;
using RobotNet.VDA5050.Order;
using RobotNet10.FleetManager.Script;
using RobotNet10.FleetManager.Services.RobotManager.Models;
using RobotNet10.Shared;
using Action = RobotNet.VDA5050.InstantAction.Action;
namespace RobotNet10.FleetManager.Services.RobotController;
/// <summary>
/// Interface for RobotController - instance per robot
/// </summary>
public interface IRobotController : IDisposable
{
/// <summary>
/// Robot ID (SerialNumber)
/// </summary>
string RobotId { get; }
/// <summary>
/// Robot data containing all robot information
/// </summary>
RobotData Data { get; }
/// <summary>
/// Whether robot is online (derived from ConnectionState)
/// </summary>
bool IsOnline { get; }
/// <summary>
/// Whether the robot is ready for the order
/// </summary>
bool IsReady { get; }
/// <summary>
/// Move robot to a specific node by NodeName
/// </summary>
Task<MessageResult> MoveToNodeAsync(string nodeName, double? angle, CancellationToken cancellationToken = default);
/// <summary>
/// Move robot to a specific node by NodeId (string)
/// </summary>
Task<MessageResult> MoveToNodeByIdAsync(string nodeId, double? angle, CancellationToken cancellationToken = default);
/// <summary>
/// Move robot to a specific node by NodeId (Guid)
/// </summary>
Task<MessageResult> MoveToNodeByGuidAsync(Guid nodeId, double? angle, CancellationToken cancellationToken = default);
/// <summary>
/// Move the robot to a taget action and execute action
/// </summary>
/// <param name="nodeName"></param>
/// <param name="action"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<MessageResult> MoveToStationAsync(string nodeName, StationAction action, CancellationToken cancellationToken = default);
/// <summary>
/// Send a single instant action to robot
/// </summary>
Task<MessageResult> SendInstantActionAsync(Action action, CancellationToken cancellationToken = default);
/// <summary>
/// Send order to robot
/// </summary>
Task<MessageResult> SendOrderAsync(OrderMsg order, CancellationToken cancellationToken = default);
/// <summary>
/// Send instant actions message to robot
/// </summary>
Task<MessageResult> SendInstantActionsAsync(InstantActionsMsg instantActions, CancellationToken cancellationToken = default);
/// <summary>
/// Request factsheet from robot
/// </summary>
Task<MessageResult> RequestFactsheetAsync(CancellationToken cancellationToken = default);
/// <summary>
/// Request state from robot
/// </summary>
Task<MessageResult> RequestStateAsync(CancellationToken cancellationToken = default);
/// <summary>
/// Cancel current order
/// </summary>
Task<MessageResult> CancelOrderAsync(CancellationToken cancellationToken = default);
}