public override async Task HandleRequest(ActionParams param, Operate lastOperate, CancellationToken token)
        {
            token.ThrowIfCancellationRequested();
            var span = param.TopInterval - lastOperate.CalctimeBeforePause();

            lastOperate.ActionChange(ActionEnum.StandingAfterIn);

            await Task.Delay(((int)(span > 0 ?span : 0) * 1000), token);

            var handleRequest = next?.HandleRequest(param, lastOperate, token);;

            if (handleRequest != null)
            {
                await handleRequest;
            }
        }
        public override async Task HandleRequest(ActionParams param, Operate lastOperate, CancellationToken token)
        {
            token.ThrowIfCancellationRequested();
            var span = lastOperate.CalctimeBeforePause();

            var volume = param.Volume - span * param.Flowrate / 60;

            lastOperate.ActionChange(ActionEnum.PumpOut);
            await Logic.Instance.pump1.SetParams(param.Flowrate, volume > 0?volume : 0, DirectionEnum.Out).StartAsync();

            var handleRequest = next?.HandleRequest(param, lastOperate, token);;

            if (handleRequest != null)
            {
                await handleRequest;
            }
        }