RobotNet/RobotNet.RobotManager/Services/IRobotController.cs
2025-10-15 15:15:53 +07:00

37 lines
1.5 KiB
C#

using RobotNet.RobotShares.Dtos;
using RobotNet.RobotShares.VDA5050.Factsheet;
using RobotNet.RobotShares.VDA5050.FactsheetExtend;
using RobotNet.RobotShares.VDA5050.State;
using RobotNet.RobotShares.VDA5050.Visualization;
using RobotNet.Shares;
namespace RobotNet.RobotManager.Services;
public interface IRobotController
{
string SerialNumber { get; }
bool IsOnline { get; set; }
bool IsWorking { get; }
string State { get; }
RobotOrderDto OrderState { get; }
RobotActionDto[] ActionStates { get; }
AutoResetEvent RobotUpdated { get; set; }
StateMsg StateMsg { get; set; }
VisualizationMsg VisualizationMsg { get; set; }
FactSheetMsg FactSheetMsg { get; set; }
FactsheetExtendMsg FactsheetExtendMsg { get; set; }
NavigationPathEdge[] BasePath { get; }
NavigationPathEdge[] FullPath { get; }
string[] CurrentZones { get; }
void Log(string message, LogLevel level = LogLevel.Information);
Task<MessageResult<string>> InstantAction(RobotNet.RobotShares.VDA5050.InstantAction.Action action, bool waittingFisished);
Task<MessageResult> MoveToNode(string goalName, IDictionary<string, IEnumerable<RobotShares.VDA5050.InstantAction.Action>>? actions = null, double? lastAngle = null);
Task<MessageResult> MoveRandom(List<string> nodes);
Task<MessageResult> CancelOrder();
Task<MessageResult> CancelAction();
void Initialize(double x, double y, double theta);
MessageResult Rotate(double angle);
MessageResult MoveStraight(double x, double y);
void Dispose();
}