using RobotNet.VDA5050.Connection; using RobotNet.VDA5050.Factsheet; using RobotNet.VDA5050.Order; using RobotNet.VDA5050.State; using RobotNet.VDA5050.Type; using RobotNet.VDA5050.Visualization; namespace RobotNet10.FleetManager.Services.RobotManager.Models; /// /// RobotData chứa tất cả thông tin liên quan đến 1 robot /// public class RobotData { /// /// Robot ID (SerialNumber) /// public string RobotId { get; set; } = string.Empty; /// /// Latest State message /// public StateMsg? State { get; set; } /// /// Latest Connection state /// public ConnectionState ConnectionState { get; set; } /// /// Latest Order message /// public OrderMsg? Order { get; set; } /// /// Latest Factsheet message /// public FactSheetMsg? Factsheet { get; set; } /// /// Latest Visualization message /// public VisualizationMsg? Visualization { get; set; } /// /// Last updated timestamp /// public DateTime LastUpdated { get; set; } /// /// When order state was cleared by cancel (so new order can be accepted before robot reports empty state). /// Used to avoid overwriting with stale state from robot; cleared when robot sends empty NodeStates/EdgeStates or after timeout. /// public DateTime? OrderClearedByCancelAt { get; set; } }