/// <summary> /// Constructor for a mmu container which is initialized by serialized data /// </summary> /// <param name="data"></param> /// <param name="mmus"></param> /// <param name="tasks"></param> public MMUContainer(SerializableMMUContainer data, List <IMotionModelUnitAccess> mmus, List <MotionTask> tasks) { this.History = new List <MotionTask>(); if (data.History != null) { foreach (string id in data.History) { MotionTask task = tasks.Find(s => s.ID == id); if (task != null) { this.History.Add(task); } } } this.IsActive = data.IsActive; this.LastResult = data.LastResult; this.LastResults = data.LastResults; this.MMU = mmus.Find(s => s.ID == data.MMUID); this.Priority = data.Priority; this.CurrentTasks = new List <MotionTask>(); if (tasks != null) { foreach (string currentTaskId in data.CurrentTaskIDs) { MotionTask match = tasks.Find(s => s.ID == currentTaskId); this.CurrentTasks.Add(match); } } }
public SerializableMotionTask(MotionTask motionTask) { this.ID = motionTask.ID; this.IsRunning = motionTask.IsRunning; //Assign the id if a container is already assigned if (motionTask.MMUContainer != null) { this.ContainerID = motionTask.MMUContainer.ID; } this.Events = motionTask.Events; this.Instruction = motionTask.Instruction; this.BoundaryConstraints = motionTask.BoundaryConstraints; this.Timing = motionTask.Timing; }