예제 #1
0
 public Nozzle(int id, int f_cod, int ff_cod, string fuelName, PumpStateEnum state, double price)
 {
     Id       = id;
     F_Cod    = f_cod;
     FF_Cod   = ff_cod;
     FuelName = fuelName;
     State    = state;
     Price    = price;
 }
예제 #2
0
 /// <summary>
 /// Установка статуса
 /// </summary>
 /// <param name="status">Статус</param>
 internal void SetStatus(PumpStateEnum status)
 {
     if (status == PumpStateEnum.PUMP_STATE_FREE)
     {
         return;
     }
     if (status == PumpStateEnum.PUMP_STATE_ACTIVATED)
     {
         if (State == PumpStateEnum.PUMP_STATE_FREE)
         {
             State = status;
             return;
         }
     }
     State = status;
 }
예제 #3
0
        public void Activate(int activate)
        {
            _duration = TimeSpan.Zero;
            _forcePump = activate == 1;

            if (_forcePump)
            {
                _pumpState = PumpControl.PumpStateEnum.Running;
                _outPump.Write(true);
            }
            else if (_forcePump)
            {
                _pumpState = PumpControl.PumpStateEnum.Stopped;
                _outPump.Write(false);
            }
        }
        public void OnUpdateRelativeHumidityData(double relativeHumidity, double targetRelativeHumidity, FanStateEnum fanState,
                                                 TrapStateEnum trapState, PumpStateEnum pumpState, String pumpDuration, 
                                                 int pumpIntervalTarget, int pumpDurationTarget)
        {
            try
              {
            if (relativeHumidity != double.MaxValue)
            {
                relativeHumidityValue.Content = relativeHumidity.ToString("F2") + " %";
            }

            if (targetRelativeHumidity != double.MaxValue)
            {
                TargetRelativeHumidity = targetRelativeHumidity;

                if (targetRelativeHumidityValue.Text == "???.??")
                {
                    targetRelativeHumidityValue.Text = targetRelativeHumidity.ToString("F2");
                }
            }

            if (pumpIntervalTarget != double.MaxValue)
            {
              if (pumpIntervalTxtBox.Text == "????")
              {
                pumpIntervalTxtBox.Text = pumpIntervalTarget.ToString();
              }
            }

            if (pumpDurationTarget != double.MaxValue)
            {
              if (pumpDurationTxtBox.Text == "????")
              {
                pumpDurationTxtBox.Text = pumpDurationTarget.ToString();
              }
            }

            if (trapState == TrapStateEnum.Closed)
            {
                trapOnOff.Content = "Cheminée: Fermé";
                trapOnOff.Foreground = Brushes.Black;
            }
            else if (trapState == TrapStateEnum.Opened)
            {
                trapOnOff.Content = "Cheminée: Ouverte";
                trapOnOff.Foreground = Brushes.Green;
            }

            if (fanState == FanStateEnum.Stopped)
            {
                fanOnOff.Content = "Fan: OFF";
                fanOnOff.Foreground = Brushes.Black;
            }
            else if (fanState == FanStateEnum.Running)
            {
                fanOnOff.Content = "Fan: ON";
                fanOnOff.Foreground = Brushes.Green;
            }

            if (pumpState == PumpStateEnum.Stopped)
            {
                pumpOnOff.Content = "Pompe: OFF";

                if (pumpDuration == "00:00:00")
                {
                    pumpOnOff.Foreground = Brushes.Black;
                }
                else
                {
                    pumpOnOff.Foreground = Brushes.OrangeRed;
                }
            }
            else if (pumpState == PumpStateEnum.Running)
            {
                pumpOnOff.Content = "Pompe: ON";
                pumpOnOff.Foreground = Brushes.Green;
            }

            pumpOnOff.Content += " [ " + pumpDuration + " ] ";
              }
              catch (Exception ex)
              {
            MessageBox.Show(ex.ToString());
              }
        }
예제 #5
0
 public PumpState(PumpTypeEnum type, int no, PumpStateEnum state)
 {
     this.PumpTypeEnum  = type;
     this.PumpNO        = no;
     this.PumpStateEnum = state;
 }
예제 #6
0
        public void ManageState()
        {
            if (_forcePump == false)
            {
                if (_duration > TimeSpan.Zero)
                {
                    _duration = _duration.Subtract(new TimeSpan(0, 0, 1));
                }

                if ((ProcessControl.Instance.RelativeHumidity > 0) &&
                    (ProcessControl.Instance.RelativeHumidity < ProcessControl.Instance.TargetRelativeHumidity))
                {
                    if (_duration == TimeSpan.Zero)
                    {
                        if (_pumpState == PumpStateEnum.Stopped && IsValidDelay())
                        {
                            _pumpState = PumpStateEnum.Running;
                            _duration = new TimeSpan(0, 0, _durationTargetSeconds);
                        }
                        else if (_pumpState == PumpStateEnum.Running && IsValidDelay())
                        {
                            _pumpState = PumpStateEnum.Stopped;
                            _duration = new TimeSpan(0, _intervalTargetMinutes, 0);
                        }
                    }
                }
                else
                {
                    _pumpState = PumpStateEnum.Stopped;
                    _duration = TimeSpan.Zero;
                }

                SetOutputState();
            }
        }
예제 #7
0
 public void Pause()
 {
     _pumpState = PumpStateEnum.Stopped;
     SetOutputState();
 }