using RobotApp.VDA5050.Visualization; using System.ComponentModel.DataAnnotations; namespace RobotApp.VDA5050.State; #nullable disable public enum OperatingMode { AUTOMATIC, SEMIAUTOMATIC, MANUAL, SERVICE, TEACHIN, } public class StateMsg { [Required] public uint HeaderId { get; set; } [Required] public string Timestamp { get; set; } [Required] public string Version { get; set; } [Required] public string Manufacturer { get; set; } [Required] public string SerialNumber { get; set; } public Map[] Maps { get; set; } = []; [Required] public string OrderId { get; set; } [Required] public int OrderUpdateId { get; set; } public string ZoneSetId { get; set; } [Required] public string LastNodeId { get; set; } [Required] public int LastNodeSequenceId { get; set; } [Required] public bool Driving { get; set; } public bool Paused { get; set; } public bool NewBaseRequest { get; set; } public double DistanceSinceLastNode { get; set; } [Required] public string OperatingMode { get; set; } [Required] public NodeState[] NodeStates { get; set; } = []; [Required] public EdgeState[] EdgeStates { get; set; } = []; public AgvPosition AgvPosition { get; set; } = new(); public Velocity Velocity { get; set; } = new(); public Load[] Loads { get; set; } = []; [Required] public ActionState[] ActionStates { get; set; } = []; [Required] public BatteryState BatteryState { get; set; } = new(); [Required] public Error[] Errors { get; set; } = []; public Information[] Information { get; set; } = []; [Required] public SafetyState SafetyState { get; set; } = new(); }