using SHJX.Service.Control.Extends; using SHJX.Service.Control.Common.Assets; using SHJX.Service.Control.Disposables; namespace SHJX.Service.Control.Pipeline.Nodes.LiquidNode { public class AddLiquidDropperOpen : INode { public AddLiquidDropperOpen() { Name = nameof(AddLiquidDropperOpen); } public override INode Invoke() { bool locker; do { StateMachine state = DataManagerInstance.QueryStateMachine(StateMachineName.MOTOR_LOCK); locker = state.Status > 0; } while (locker); do { StateMachine state = DataManagerInstance.QueryStateMachine(StateMachineName.MOTOR_LOCKDROPPER); locker = state.Status > 0; } while (locker); DataManagerInstance.IncreaseLock(StateMachineName.MOTOR_LOCKDROPPER); bool res = true; do { char[] readData = EquipmentNames.AxisD.MotorRead(); if (readData is null or not { Length: 8 }) { continue; } res = readData[2].Equals('0'); Thread.Sleep(800); } while (!res); res = EquipmentNames.AxisD.LiquidMotorMove(Convert.ToInt32(-170* 4000)); return this; } } }