using System; using System.Collections.Generic; using System.ComponentModel; using CommonUsage.Protocols.VDA5050.Objects; namespace CommonUsage.Protocols.VDA5050.Messages { /// /// 6.10 Topic: "state" (from AGV to master control) /// todo: complete all fields required by VDA5050 /// public class stateMessage { public uint headerId; public string timestamp = ""; public string version = ""; public string manufacturer = ""; public string serialNumber = ""; /// /// Unique order identification of the current order or the previously finished order. /// The orderId is kept until a new order is received. /// Empty string (""), if no previous orderId is available. /// public string orderId = ""; /// /// Order update identification to identify, that an order update has been accepted by the AGV. /// "0" if no previous orderUpdateId is available. /// public uint orderUpdatedId = 0; public string lastNodeId; public uint lastNodeSequenceId; /// /// Array of nodeState objects that need to be traversed for fulfilling the order (empty array if idle) /// public nodeState[] nodeStates = []; /// /// Array of edgeState objects that need to be traversed for fulfilling the order (empty array if idle) /// public edgeState[] edgeStates = []; public agvPosition agvPosition; public velocity velocity; public load[] loads = []; public bool driving; public bool paused; public bool newBaseRequest; public double distanceSinceLastNode; public batteryState batteryState; public actionState[] actionStates = Array.Empty(); public string operatingMode = ""; public List errors { get; set; } = new List(); // Array of errorState objects public info[] information = []; public safetyState safetyState; } }