Initial commit
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace RobotNet10.MapManager.Data;
|
||||
|
||||
/// <summary>
|
||||
/// Node vehicle property - Vehicle-specific properties for nodes
|
||||
/// Maps to VDMA LIF: node.vehicleTypeNodeProperties[]
|
||||
/// </summary>
|
||||
[Table("NodeVehicleProperties")]
|
||||
public class NodeVehicleProperty
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Node reference
|
||||
/// </summary>
|
||||
[Required]
|
||||
public Guid NodeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Vehicle type reference
|
||||
/// </summary>
|
||||
[Required]
|
||||
public Guid VehicleTypeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Absolute orientation of vehicle on node (VDMA LIF: theta) - Optional
|
||||
/// In radians, range: [-Pi ... Pi]
|
||||
/// </summary>
|
||||
public double? Theta { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Actions that vehicle can perform at this node (VDMA LIF: actions) - Optional
|
||||
/// JSON array format:
|
||||
/// [
|
||||
/// {
|
||||
/// "actionType": "pick",
|
||||
/// "actionDescription": "...",
|
||||
/// "requirementType": "REQUIRED",
|
||||
/// "blockingType": "HARD",
|
||||
/// "actionParameters": [{"key": "...", "value": "..."}]
|
||||
/// }
|
||||
/// ]
|
||||
/// </summary>
|
||||
public string? Actions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Allowed deviation radius in meters (VDA5050: allowedDeviationXY) - Optional
|
||||
/// Indicates how exact an AGV has to drive over a node in order for it to count as traversed.
|
||||
/// If = 0: no deviation is allowed (no deviation means within the normal tolerance of the AGV manufacturer).
|
||||
/// If > 0: allowed deviation-radius in meters. If the AGV passes a node within the deviation-radius, the node is considered to have been traversed.
|
||||
/// Minimum: 0
|
||||
/// </summary>
|
||||
public double? AllowedDeviationXY { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Allowed deviation of theta angle in radians (VDA5050: allowedDeviationTheta) - Optional
|
||||
/// Indicates how big the deviation of theta angle can be.
|
||||
/// The lowest acceptable angle is theta - allowedDeviationTheta and the highest acceptable angle is theta + allowedDeviationTheta.
|
||||
/// Range: [0.0 ... 3.141592654] (0 to Pi)
|
||||
/// </summary>
|
||||
public double? AllowedDeviationTheta { get; set; }
|
||||
|
||||
// Navigation properties
|
||||
[ForeignKey(nameof(NodeId))]
|
||||
public virtual Node Node { get; set; } = null!;
|
||||
|
||||
[ForeignKey(nameof(VehicleTypeId))]
|
||||
public virtual VehicleType VehicleType { get; set; } = null!;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user