48 lines
1.2 KiB
C#
48 lines
1.2 KiB
C#
using RobotNet.VDA5050.Order;
|
|
using RobotNet10.RobotApp.Detection;
|
|
using RobotNet10.RobotApp.Shared.Enums;
|
|
namespace RobotNet10.RobotApp.Interfaces;
|
|
|
|
public enum NavigationState
|
|
{
|
|
None,
|
|
Idle,
|
|
Initializing,
|
|
Waiting,
|
|
Moving,
|
|
Rotating,
|
|
Docking,
|
|
FinePositioning,
|
|
MovingStraight,
|
|
Completed,
|
|
Canceled,
|
|
Paused,
|
|
Error,
|
|
SafetyStop
|
|
}
|
|
|
|
public interface INavigation
|
|
{
|
|
event Action<NavigationState>? OnNavigationFinished;
|
|
bool IsReady { get; }
|
|
bool Driving { get; }
|
|
double VelocityX { get; }
|
|
double VelocityY { get; }
|
|
double Omega { get; }
|
|
NavigationState State { get; }
|
|
void Move(OrderMsg order, bool hasLoad = false);
|
|
void MoveStraight(double x, double y, bool hasLoad = false, RobotDirection? direction = null);
|
|
void Rotate(double angle);
|
|
void DockTo(IDetectSession session, bool hasLoad = false, RobotDirection? direction = null);
|
|
void Pause();
|
|
void Resume();
|
|
void UpdateOrder(string lastBaseNodeId);
|
|
void RefreshOrder(Node[] nodes, Edge[] edges);
|
|
void Refresh();
|
|
void SafetyStop();
|
|
void CancelMovement();
|
|
void SetSpeed(double speed);
|
|
void Start();
|
|
void Stop();
|
|
}
|