Ejemplo n.º 1
0
        private void BufferEmpty(object sender, BufferEmptyEventArgs e)
        {
            int  i = Activities.IndexOf((Buffer)sender);
            bool upstream_running = false;

            //Set downstream speeds to line speed until buffer, continue if buffer empty
            for (int j = i + 1; j < Activities.Count; j++)
            {
                if (Activities[j].IsUnitOp())
                {
                    ((Unit_Op)Activities[j]).SetpointSpeed = line_speed;
                }
                else if (Activities[j].IsBuffer())
                {
                    Buffer buff = (Buffer)Activities[j];
                    buff.SetpointSpeed = line_speed;
                    if (buff.Buffer_Empty)
                    {
                        continue;
                    }
                    else
                    {
                        break;
                    }
                }
            }
            if (Activities[i - 1].IsUnitOp())
            {
                upstream_running = ((Unit_Op)Activities[i - 1]).Running;
            }
            //Pause all downstream ops if upstream not running until buffer
            if (!upstream_running)
            {
                for (int j = i + 1; j < Activities.Count; j++)
                {
                    if (Activities[j].IsUnitOp())
                    {
                        ((Unit_Op)Activities[j]).Paused = true;
                    }
                    else if (Activities[j].IsBuffer())
                    {
                        Buffer buff = (Buffer)Activities[j];
                        if (buff.Buffer_Empty)
                        {
                            continue;
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
 //Invoke Buffer Empty event that is handled within Process class
 protected virtual void OnBufferEmpty(BufferEmptyEventArgs e)
 {
     BufferEmpty?.Invoke(this, e);
 }