44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using RobotNet.VDA5050.Type;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace RobotNet.VDA5050.InstantAction;
|
|
|
|
/// <summary>
|
|
/// Action data transfer object for VDMA LIF actions
|
|
/// Used in VehicleType.Actions, NodeVehicleProperty.Actions, EdgeVehicleProperty.Actions
|
|
/// </summary>
|
|
public class ActionLIF
|
|
{
|
|
/// <summary>
|
|
/// Type of action (e.g., "pick", "drop", "charge")
|
|
/// </summary>
|
|
[JsonPropertyName("actionType")]
|
|
public string ActionType { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Description of the action
|
|
/// </summary>
|
|
[JsonPropertyName("actionDescription")]
|
|
public string? ActionDescription { get; set; }
|
|
|
|
/// <summary>
|
|
/// Requirement type: REQUIRED, CONDITIONAL, OPTIONAL
|
|
/// </summary>
|
|
[JsonConverter(typeof(JsonStringEnumConverter))]
|
|
[JsonPropertyName("requirementType")]
|
|
public RequirementType RequirementType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Blocking type: NONE, SOFT, HARD
|
|
/// </summary>
|
|
[JsonConverter(typeof(JsonStringEnumConverter))]
|
|
[JsonPropertyName("blockingType")]
|
|
public BlockingType BlockingType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Action parameters as key-value pairs
|
|
/// </summary>
|
|
[JsonPropertyName("actionParameters")]
|
|
public List<ActionParameter> ActionParameters { get; set; } = [];
|
|
}
|