Initial commit

This commit is contained in:
2026-07-13 09:25:40 +07:00
parent c08ff54676
commit bccfb156d7
1938 changed files with 641646 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
namespace RobotNet10.FleetManager.Services.TrafficControl.Models;
/// <summary>
/// Severity levels for conflicts
/// </summary>
public enum ConflictSeverity
{
/// <summary>
/// Low severity - can be resolved by waiting
/// </summary>
Low,
/// <summary>
/// Medium severity - needs route adjustment
/// </summary>
Medium,
/// <summary>
/// High severity - needs complete reroute
/// </summary>
High
}

View File

@@ -0,0 +1,62 @@
namespace RobotNet10.FleetManager.Services.TrafficControl.Models;
/// <summary>
/// Types of conflicts between robots
/// </summary>
public enum ConflictType
{
/// <summary>
/// Xảy ra khi hai robot sử dụng cùng một cạnh (edge) trong biểu đồ đường đi (graph)
/// trong khoảng thời gian trùng lặp, đồng thời lộ trình tiếp theo của robot chồng lên nhau.
/// </summary>
Confrontation,
/// <summary>
/// Xảy ra khi hai robot sử dụng cùng một cạnh (edge) trong biểu đồ đường đi (graph)
/// trong khoảng thời gian trùng lặp nhưng lộ trình tiếp theo của 2 robot không chồng lấn lên nhau.
/// </summary>
Edge,
/// <summary>
/// Xảy ra khi hai robot chiếm cùng một nút (vertex/node) trong biểu đồ đường đi
/// tại cùng một thời điểm hoặc trong khoảng thời gian trùng lặp.
/// </summary>
Vertex,
/// <summary>
/// Xảy ra khi hai robot ở quá gần nhau (dựa trên khoảng cách Euclidean) trong không gian liên tục,
/// vi phạm khoảng cách an toàn (minDistance).
/// </summary>
Proximity,
/// <summary>
/// Xảy ra khi hai robot di chuyển qua một hành lang hẹp (thường được biểu diễn bằng một chuỗi cạnh hoặc node)
/// theo hướng ngược nhau, dẫn đến tình trạng không thể vượt qua nhau.
/// </summary>
Corridor,
/// <summary>
/// Xảy ra khi hai robot có lộ trình giao nhau về mặt thời gian, nhưng không nhất thiết ở cùng một cạnh hoặc nút,
/// mà ở các vị trí khiến chúng không thể di chuyển tiếp mà không va chạm.
/// </summary>
Temporal,
/// <summary>
/// Xảy ra khi hai robot cần xoay tại một điểm (thường là node) và không gian xoay bị chồng lấn,
/// dẫn đến va chạm hoặc cản trở.
/// </summary>
Rotation,
/// <summary>
/// Xảy ra khi các robot cạnh tranh cho một tài nguyên chung (ví dụ: một khu vực làm việc, điểm sạc, hoặc thiết bị nâng)
/// </summary>
Resource,
/// <summary>
/// Xảy ra lỗi khi kiểm tra xung đột
/// </summary>
None
}

View File

@@ -0,0 +1,35 @@
namespace RobotNet10.FleetManager.Services.TrafficControl.Models;
/// <summary>
/// Reasons for robot priority
/// </summary>
public enum PriorityReason
{
/// <summary>
/// Emergency situation
/// </summary>
Emergency,
/// <summary>
/// High value order
/// </summary>
HighValueOrder,
/// <summary>
/// Time critical requirement
/// </summary>
TimeCritical,
/// <summary>
/// Manual override by user
/// </summary>
ManualOverride,
/// <summary>
/// Default priority
/// </summary>
Default
}

View File

@@ -0,0 +1,25 @@
namespace RobotNet10.FleetManager.Services.TrafficControl.Models;
/// <summary>
/// Status of edge reservations
/// </summary>
public enum ReservationStatus
{
/// <summary>
/// Edge is reserved but not yet in use
/// </summary>
Reserved,
/// <summary>
/// Robot is currently using the edge
/// </summary>
InUse,
/// <summary>
/// Reservation has been released
/// </summary>
Released
}

View File

@@ -0,0 +1,20 @@
namespace RobotNet10.FleetManager.Services.TrafficControl.Models;
/// <summary>
/// Specific actions for conflict resolution
/// </summary>
public enum ResolutionAction
{
/// <summary>
/// Wait at node (add wait node to Horizon)
/// </summary>
Wait,
/// <summary>
/// Reroute (calculate new route for Horizon)
/// </summary>
Reroute
}

View File

@@ -0,0 +1,20 @@
namespace RobotNet10.FleetManager.Services.TrafficControl.Models;
/// <summary>
/// Strategies for resolving conflicts
/// </summary>
public enum ResolutionStrategy
{
/// <summary>
/// Robot waits at node (can only add wait node to Horizon, NOT to Base)
/// </summary>
WaitAtNode,
/// <summary>
/// Robot reroutes (can only reroute Horizon, NOT Base)
/// </summary>
Reroute
}