using RobotNet.VDA5050.Visualization; using System.ComponentModel.DataAnnotations; using System.Text.Json.Serialization; namespace RobotNet.VDA5050.State; public class StateMsg { [Required] [JsonPropertyName("headerId")] public uint HeaderId { get; set; } [JsonConverter(typeof(DateTimeConverter))] [JsonPropertyName("timestamp")] public DateTime Timestamp { get; set; } [Required] [JsonPropertyName("version")] public string Version { get; set; } = string.Empty; [Required] [JsonPropertyName("manufacturer")] public string Manufacturer { get; set; } = string.Empty; [Required] [JsonPropertyName("serialNumber")] public string SerialNumber { get; set; } = string.Empty; [JsonPropertyName("maps")] public Map[]? Maps { get; set; } [Required] [JsonPropertyName("orderId")] public string OrderId { get; set; } = string.Empty; [Required] [JsonPropertyName("orderUpdateId")] public int OrderUpdateId { get; set; } [JsonPropertyName("zoneSetId")] public string? ZoneSetId { get; set; } [Required] [JsonPropertyName("lastNodeId")] public string LastNodeId { get; set; } = string.Empty; [Required] [JsonPropertyName("lastNodeSequenceId")] public int LastNodeSequenceId { get; set; } [Required] [JsonPropertyName("driving")] public bool Driving { get; set; } [JsonPropertyName("paused")] public bool Paused { get; set; } [JsonPropertyName("newBaseRequest")] public bool NewBaseRequest { get; set; } [JsonPropertyName("distanceSinceLastNode")] public double? DistanceSinceLastNode { get; set; } [Required] [JsonPropertyName("operatingMode")] public string OperatingMode { get; set; } = string.Empty; [Required] [JsonPropertyName("nodeStates")] public NodeState[] NodeStates { get; set; } = []; [Required] [JsonPropertyName("edgeStates")] public EdgeState[] EdgeStates { get; set; } = []; [JsonPropertyName("agvPosition")] public AgvPosition AgvPosition { get; set; } = new(); [JsonPropertyName("velocity")] public Velocity Velocity { get; set; } = new(); [JsonPropertyName("loads")] public Load[] Loads { get; set; } = []; [Required] [JsonPropertyName("actionStates")] public ActionState[] ActionStates { get; set; } = []; [Required] [JsonPropertyName("batteryState")] public BatteryState BatteryState { get; set; } = new(); [Required] [JsonPropertyName("errors")] public Error[] Errors { get; set; } = []; [JsonPropertyName("information")] public Information[] Information { get; set; } = []; [Required] [JsonPropertyName("safetyState")] public SafetyState SafetyState { get; set; } = new(); }