using SHJX.Service.Control.Common.Assets; namespace SHJX.Service.Control.Pipeline.Interface { public abstract class INode { public EquipmentTask CurrentTask { get; set; } public string Name { get; init; } public INode NextNode { get; set; } public INode SetTask(EquipmentTask task) { CurrentTask = task; return this; } public INode Record() { try { DataManagerInstance.Record(CurrentTask, Name); } catch { } return this; } public virtual void Next() { if (Name== "TargetInversion") { Thread.Sleep(1000); } //if (Name == "TitrationDropperOpen" || Name == "TitrationDropperClose") //{ Thread.Sleep(3000); //} NextNode?.SetTask(CurrentTask)?.Invoke()?.Record()?.Next(); } public abstract INode Invoke(); } }