public AntoinesCoefficientsExt(double c1, double c2, double c3, double c4, double c5, double c6, double c7, double c8, double c9, PressureUnits pu, TemperatureUnits tu)
 {
     m_pu = pu;
     m_tu = tu;
     m_c1 = c1;
     m_c2 = c2;
     if (!double.IsNaN(c3))
     {
         m_c3 = c3;
     }
     if (!double.IsNaN(c4))
     {
         m_c4 = c4;
     }
     if (!double.IsNaN(c5))
     {
         m_c5 = c5;
     }
     if (!double.IsNaN(c6))
     {
         m_c6 = c6;
     }
     if (!double.IsNaN(c7))
     {
         m_c7 = c7;
     }
     if (!double.IsNaN(c8))
     {
         m_c8 = c8;
     }
     if (!double.IsNaN(c9))
     {
         m_c9 = c9;
     }
 }
 public AntoinesCoefficientsExt()
 {
     m_pu = PressureUnits.mmHg;
     m_tu = TemperatureUnits.Celsius;
     m_c1 = Double.NaN;
     m_c2 = Double.NaN;
 }
 public PressureSensor(PressureConsumer consumer, string UniqueName) : base(UniqueName)
 {
     this.consumer = consumer;
     this.Title = "Pressure";
     this.consumer.SessionLost += Consumer_SessionLost;
     this.Units = PressureUnits.kPa;
 }
        public double GetPressure(double temperature, TemperatureUnits tu, PressureUnits resultUnits)
        {
            temperature = ConvertTemperature(temperature, tu, m_tu);
            double pressure = Math.Pow(10, (A - (B / (temperature + C))));

            return(ConvertPressure(pressure, m_pu, resultUnits));
        }
 public AntoinesCoefficientsExt(double c1, double c2, PressureUnits pu, TemperatureUnits tu)
 {
     m_pu = pu;
     m_tu = tu;
     m_c1 = c1;
     m_c2 = c2;
 }
        public double GetTemperature(double pressure, PressureUnits pu, TemperatureUnits resultUnits)
        {
            pressure = ConvertPressure(pressure, pu, m_pu);
            double temperature = B / (A - Math.Log10(pressure)) - C;

            return(ConvertTemperature(temperature, m_tu, resultUnits));
        }
 public AntoinesCoefficients3Impl(double a, double b, double c, PressureUnits spu, TemperatureUnits stu)
 {
     m_a  = a;
     m_b  = b;
     m_c  = c;
     m_pu = PressureUnits.mmHg;
     m_tu = TemperatureUnits.Celsius;
 }
 public AntoinesCoefficients3Impl()
 {
     m_a  = Double.NaN;
     m_b  = Double.NaN;
     m_c  = Double.NaN;
     m_pu = PressureUnits.mmHg;
     m_tu = TemperatureUnits.Celsius;
 }
Exemplo n.º 9
0
		public static List<WeatherDetail> GetDetails (WuLocation location, TemperatureUnits temp, SpeedUnits speed, LengthUnits length, DistanceUnits distance, PressureUnits pressure)
		{
			var list = new List<WeatherDetail> ();

			for (int i = 0; i < Count; i++) list.Add (GetDetail (i, location, temp, speed, length, distance, pressure));

			return list;
		}
Exemplo n.º 10
0
		public static WeatherDetail GetDetail (int row, WuLocation location, TemperatureUnits temp, SpeedUnits speed, LengthUnits length, DistanceUnits distance, PressureUnits pressure)
		{
			return new WeatherDetail {
				DetailLabel = GetLabel (row),
				DetailValue = GetValue (row, location, temp, speed, length, distance, pressure),
				IsSectionTop = IsSectionTop (row)
			};
		}
Exemplo n.º 11
0
 private string GetPressureText(Pressure pressure, PressureUnits units)
 {
     if (pressure == null)
     {
         return(String.Empty);
     }
     return(units == PressureUnits.PN ? pressure.Pn : pressure.Pclass);
 }
Exemplo n.º 12
0
        private void tscombUnits_TextChanged(object sender, EventArgs e)
        {
            // останавливаем таймер для предотвращения скачков на графике из-за смены едениц давления
            ticker.Stop();

            Cursor.Current = Cursors.WaitCursor;

            PressureUnits oldUnits = progState.CurrentPUnits;

            // меняем текущие единицы давления
            progState.CurrentPUnits = PUnitConverter.StringToPUnit(tscombUnits.Text);
            // обновляем количество знаков для округления
            progState.RoundDefine();

            // меняем единицы давления на форме
            CurrentP        = PUnitConverter.ConvertP(CurrentP, oldUnits, progState.CurrentPUnits);
            tbCurrentP.Text = Math.Round(CurrentP, progState.RoundToDigits).ToString();
            CurrentSetpt    = PUnitConverter.ConvertP(CurrentSetpt, oldUnits, progState.CurrentPUnits);
            tbSetP.Text     = Math.Round(CurrentSetpt, progState.RoundToDigits).ToString();
            progState.CurrentBarometricP = PUnitConverter.ConvertP(progState.CurrentBarometricP, oldUnits, progState.CurrentPUnits);

            try
            {
                // меняем единицы задатчика давления
                if (CurrentDPI != null)
                {
                    CurrentDPI.SelectUnits(progState.CurrentPUnits);
                    // перечитываем строку параметров
                    tstbControllerParameters.Text = CurrentDPI.GetParameterString();
                }

                // меняем параметры графика
                zgGraph.GraphPane.YAxis.Title.Text = string.Format("P, {0}", PUnitConverter.PUnitToString(progState.CurrentPUnits));

                // преобразуем точки графика к новым единицам давления
                for (int i = 0; i < GraphPoints.Count; i++)
                {
                    GraphPoints[i].Y = PUnitConverter.ConvertP(GraphPoints[i].Y, oldUnits, progState.CurrentPUnits);
                }

                zgGraph.AxisChange();
                zgGraph.Invalidate();
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            // вызываем событие для других классов
            PUnitsChangedEventArgs pArgs = new PUnitsChangedEventArgs(oldUnits);

            OnPUnitsChanged?.Invoke(this, pArgs);

            Cursor.Current = Cursors.Default;

            ticker.Start();
        }
Exemplo n.º 13
0
 /// <summary>
 /// Конструктор копирования
 /// </summary>
 /// <param name="ps"></param>
 public ProgramState(ProgramState ps)
 {
     CurrentPUnits         = ps.CurrentPUnits;
     CurrentBarometricP    = ps.CurrentBarometricP;
     CurrentSetptPrecision = ps.CurrentSetptPrecision;
     SetptDelay            = ps.SetptDelay;
     ReadPInterval         = ps.ReadPInterval;
     CurrentMode           = ps.CurrentMode;
     TimeLength            = ps.TimeLength;
     PIsAbsolute           = ps.PIsAbsolute;
     RoundToDigits         = ps.RoundToDigits;
 }
Exemplo n.º 14
0
        public double GetPressure(double temperature, TemperatureUnits tu, PressureUnits resultUnits)
        {
            double retval = double.NaN;

            temperature = ConvertTemperature(temperature, tu, TemperatureUnits.Kelvin);
            if (IsSufficientlySpecified(temperature))
            {
                double pressure = Math.Exp(C1 + (C2 / (temperature + C3)) + (C4 * temperature)
                                           + (C5 * Math.Log(temperature, Math.E)) + (C6 * Math.Pow(temperature, C7)));

                retval = ConvertPressure(pressure, PressureUnits.Pascals, resultUnits);
            }
            return(retval);
        }
Exemplo n.º 15
0
        public static string GetUnitSymbol(PressureUnits units)
        {
            switch (units)
            {
            case PressureUnits.Kpa:
                return(" KPa");

            case PressureUnits.Atmosphere:
                return(" ATM");

            case PressureUnits.Bar:
                return("Bar");

            case PressureUnits.Psi:
                return("Psi");
            }
            throw new ArgumentException("Unable to return symbol fir" + units.ToString());
        }
Exemplo n.º 16
0
        public double GetValueInUnits(PressureUnits units)
        {
            switch (units)
            {
            case PressureUnits.Kpa:
                return(InKpa);

            case PressureUnits.Atmosphere:
                return(InAtmospheres);

            case PressureUnits.Bar:
                return(InBars);

            case PressureUnits.Psi:
                return(InPsi);
            }
            throw new ArgumentException("Unable to return value in" + units.ToString());
        }
Exemplo n.º 17
0
        public string GetValueInUnits(PressureUnits units, int decimalPlaces)
        {
            switch (units)
            {
            case PressureUnits.Kpa:
                return(InKpa.ToString($"F{decimalPlaces}"));

            case PressureUnits.Atmosphere:
                return(InAtmospheres.ToString($"F{decimalPlaces}"));

            case PressureUnits.Bar:
                return(InBars.ToString($"F{decimalPlaces}"));

            case PressureUnits.Psi:
                return(InPsi.ToString($"F{decimalPlaces}"));
            }
            throw new ArgumentException("Unable to return value in" + units.ToString());
        }
Exemplo n.º 18
0
        private double ConvertPressure(double pressure, PressureUnits srcUnits, PressureUnits resultUnits)
        {
            if (srcUnits != resultUnits)
            {
                switch (srcUnits)   // Convert it to mmHg : ref: http://physics.nist.gov/Pubs/SP811/appenB9.html#PRESSURE
                {
                case PressureUnits.Bar:
                    pressure *= (133.3224 /*mmHg-per-Pascal*/ / 100000 /*Bar-per-Pascal*/);
                    break;

                case PressureUnits.mmHg:
                    break;

                case PressureUnits.Atm:
                    pressure *= (101325 /*Atm-per-Pascal*/ / 133.3224 /*mmHg-per-Pascal*/);
                    break;

                case PressureUnits.Pascals:
                    pressure /= 133.3224 /*mmHg-per-Pascal*/;
                    break;
                }
                switch (resultUnits)  // Convert it from mmHg
                {
                case PressureUnits.Bar:
                    pressure /= (133.3224 /*mmHg-per-Pascal*/ / 100000 /*Bar-per-Pascal*/);
                    break;

                case PressureUnits.mmHg:
                    break;

                case PressureUnits.Atm:
                    pressure /= (101325 /*Atm-per-Pascal*/ / 133.3224 /*mmHg-per-Pascal*/);
                    break;

                case PressureUnits.Pascals:
                    pressure *= 133.3224 /*mmHg-per-Pascal*/;
                    break;
                }
            }
            return(pressure);
        }
Exemplo n.º 19
0
		public static string GetValue (int row, WuLocation location, TemperatureUnits temp, SpeedUnits speed, LengthUnits length, DistanceUnits distance, PressureUnits pressure)
		{
			var conditions = location?.Conditions;

			if (conditions == null) return string.Empty;

			switch (row) {
				case 0: return conditions.FeelsLikeString (temp, true, true);
				case 1: return location.SunriseString ();
				case 2: return location.SunsetString ();
				case 3: return location.ProbabilityPercipString ();
				case 4: return conditions.relative_humidity;
				case 5: return conditions.WindString (speed);
				case 6: return conditions.GustString (speed);
				case 7: return conditions.PrecipTodayString (length);
				case 8: return conditions.PressureString (pressure);
				case 9: return conditions.VisibilityString (distance);
				case 10: return location.Conditions.UV.ToString ();
				default: return string.Empty;
			}
		}
Exemplo n.º 20
0
    public static double Unit(
        [ExcelArgument("Value")] double value,
        [ExcelArgument("Previous unit", Name = "previous_Unit")] string _prevUnit,
        [ExcelArgument("New unit", Name = "new_Unit")] string _newUnit)
    {
        double prevUnit; double newUnit;

        if (ForceUnits.TryGetValue(_prevUnit, out prevUnit) &&
            ForceUnits.TryGetValue(_newUnit, out newUnit))
        {
            return(value * newUnit / prevUnit);
        }
        else if (LengthUnits.TryGetValue(_prevUnit, out prevUnit) &&
                 LengthUnits.TryGetValue(_newUnit, out newUnit))
        {
            return(value * newUnit / prevUnit);
        }
        else if (AreaUnits.TryGetValue(_prevUnit, out prevUnit) &&
                 AreaUnits.TryGetValue(_newUnit, out newUnit))
        {
            return(value * newUnit / prevUnit);
        }
        else if (MomentUnits.TryGetValue(_prevUnit, out prevUnit) &&
                 MomentUnits.TryGetValue(_newUnit, out newUnit))
        {
            return(value * newUnit / prevUnit);
        }
        else if (PressureUnits.TryGetValue(_prevUnit, out prevUnit) &&
                 PressureUnits.TryGetValue(_newUnit, out newUnit))
        {
            return(value * newUnit / prevUnit);
        }
        else
        {
            return(double.NaN);
        }
    }
Exemplo n.º 21
0
 static string getUnitString(this PressureUnits unit) => unit.IsImperial() ? "inHg" : "mb";
Exemplo n.º 22
0
 public double GetTemperature(double pressure, PressureUnits pu, TemperatureUnits resultUnits)
 {
     throw new NotImplementedException();
 }
		public static double Pressure (this CurrentObservation observation, PressureUnits units, bool round = false)
			=> getValueInUnits (units, observation?.pressure_in, observation?.pressure_mb, round);
		static double getValueInUnits (PressureUnits units, double? imperial, double? metric, bool round = false)
			=> getValueInUnits (units.IsImperial (), imperial, metric, round);
		public static string PressureString (this CurrentObservation observation, PressureUnits units, bool round = false)
			=> getValueStringInUnits (observation.Pressure (units, round), units);
Exemplo n.º 26
0
        /// <summary>
        /// Computes and returns the vapor pressure of the specified material type in the
        /// mixture at the given temperature and pressure. The returned value is expressed
        /// in millimeters of mercury.
        /// </summary>
        /// <param name="mt">The material type of interest.</param>
        /// <param name="temperature">The temperature of the mixture and free space, in degrees Kelvin.</param>
        /// <param name="srcUnits">The SRC units.</param>
        /// <param name="resultUnits">The result units.</param>
        /// <returns>
        /// Vapor Pressure in millimeters of Mercury.
        /// </returns>
        public static double ComputeVaporPressure(MaterialType mt, double temperature, TemperatureUnits srcUnits, PressureUnits resultUnits)
        {
            double vprl = mt.AntoinesLawCoefficientsExt.GetPressure(temperature, srcUnits, resultUnits);

            if (double.IsNaN(vprl))
            {
                vprl = mt.AntoinesLawCoefficients3.GetPressure(temperature, srcUnits, resultUnits);
            }

            return(vprl);
        }
		static string getValueStringInUnits (double value, PressureUnits unit)
			=> $"{value} {unit.getUnitString ()}";
Exemplo n.º 28
0
 protected Pressure(double value, PressureUnits units)
 {
     Value = value; Units = units;
 }
Exemplo n.º 29
0
 public Pressure ConvertToUnits(PressureUnits toUnits)
 {
     return(new Pressure(this, toUnits));
 }
Exemplo n.º 30
0
 public static double Pressure(this CurrentObservation observation, PressureUnits units, bool round = false)
 => getValueInUnits(units, observation?.pressure_in, observation?.pressure_mb, round);
Exemplo n.º 31
0
 protected Pressure(Pressure fromPressure, PressureUnits units) : this(fromPressure.Value.ConvertUnits(fromPressure.Units, units), units)
 {
 }
Exemplo n.º 32
0
 public PUnitsChangedEventArgs(PressureUnits pUnits)
 {
     oldUnits = pUnits;
 }
Exemplo n.º 33
0
 static bool IsImperial(this PressureUnits unit) => unit == PressureUnits.InchesOfMercury;
Exemplo n.º 34
0
 public static string PressureString(this CurrentObservation observation, PressureUnits units, bool round = false)
 => getValueStringInUnits(observation.Pressure(units, round), units);
Exemplo n.º 35
0
 static double getValueInUnits(PressureUnits units, double?imperial, double?metric, bool round = false)
 => getValueInUnits(units.IsImperial(), imperial, metric, round);
Exemplo n.º 36
0
        //Method for laoding units into combo boxes
        private void UnitsLoading(string SelectedOp)
        {
            try
            {
                if (units == null)
                {
                }
                else
                {
                    units.Clear();
                    if (unitsMults == null)
                    {
                    }
                    else
                    {
                        unitsMults.Clear();
                    }
                }
                units      = new List <string>();
                unitsMults = new List <string>();

                switch (SelectedOp)
                {
                case "Length":
                {
                    LengthUnits unit      = new LengthUnits();
                    MetersMults mults     = new MetersMults();
                    var         units2    = Enum.GetValues(unit.GetType());
                    var         multiples = Enum.GetValues(mults.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    foreach (var item in multiples)
                    {
                        unitsMults.Add(item.ToString());
                    }
                    break;
                }

                case "Mass and Weight":
                {
                    MassUnits  unit      = new MassUnits();
                    KilogMults mults     = new KilogMults();
                    var        multiples = Enum.GetValues(mults.GetType());
                    var        units2    = Enum.GetValues(unit.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    foreach (var item in multiples)
                    {
                        unitsMults.Add(item.ToString());
                    }
                    break;
                }

                case "Power":
                {
                    PowerUnits unit      = new PowerUnits();
                    WattMults  mults     = new WattMults();
                    var        multiples = Enum.GetValues(mults.GetType());
                    var        units2    = Enum.GetValues(unit.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    foreach (var item in multiples)
                    {
                        unitsMults.Add(item.ToString());
                    }
                    break;
                }

                case "Pressure":
                {
                    PressureUnits unit      = new PressureUnits();
                    PascaMults    mults     = new PascaMults();
                    var           multiples = Enum.GetValues(mults.GetType());
                    var           units2    = Enum.GetValues(unit.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    foreach (var item in multiples)
                    {
                        unitsMults.Add(item.ToString());
                    }
                    break;
                }

                case "Energy":
                {
                    EnergyUnits unit      = new EnergyUnits();
                    JouleMults  mults     = new JouleMults();
                    var         multiples = Enum.GetValues(mults.GetType());
                    var         units2    = Enum.GetValues(unit.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    foreach (var item in multiples)
                    {
                        unitsMults.Add(item.ToString());
                    }
                    break;
                }

                case "Temperature":
                {
                    TemperatureUnits unit = new TemperatureUnits();
                    var units2            = Enum.GetValues(unit.GetType());

                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    unitsMults.Add("Temperature doesn't have Multiples\n Please choose other option");
                    break;
                }

                case "Volume":
                {
                    VolumeUnits unit      = new VolumeUnits();
                    M3Mults     mults     = new M3Mults();
                    var         multiples = Enum.GetValues(mults.GetType());
                    var         units2    = Enum.GetValues(unit.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    foreach (var item in multiples)
                    {
                        unitsMults.Add(item.ToString());
                    }
                    break;
                }

                case "Angle":
                {
                    AngleUnits unit   = new AngleUnits();
                    var        units2 = Enum.GetValues(unit.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    unitsMults.Add("Angle doesn't have Multiples\n Please choose other option");
                    break;
                }

                case "Area":
                {
                    AreaUnits     unit      = new AreaUnits();
                    MetersqrMults mults     = new MetersqrMults();
                    var           multiples = Enum.GetValues(mults.GetType());
                    var           units2    = Enum.GetValues(unit.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    foreach (var item in multiples)
                    {
                        unitsMults.Add(item.ToString());
                    }
                    break;
                }

                case "Speed":
                {
                    SpeedUnits unit      = new SpeedUnits();
                    MPSMults   mults     = new MPSMults();
                    var        multiples = Enum.GetValues(mults.GetType());
                    var        units2    = Enum.GetValues(unit.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    foreach (var item in multiples)
                    {
                        unitsMults.Add(item.ToString());
                    }
                    break;
                }

                case "Time":
                {
                    TimeUnits unit   = new TimeUnits();
                    var       units2 = Enum.GetValues(unit.GetType());
                    foreach (var item in units2)
                    {
                        units.Add(item.ToString());
                    }
                    unitsMults.Add("Time doesn't have Multiples\n Please choose other option");
                    break;
                }
                }

                Fromcombo.Items.Clear();
                ToCombo.Items.Clear();
                MultsFromcombo.Items.Clear();
                MultsTocombo.Items.Clear();


                foreach (var v in units)
                {
                    ComboBoxItem boxItem = new ComboBoxItem();
                    boxItem.Background      = new SolidColorBrush(Color.FromArgb(System.Convert.ToByte(255), System.Convert.ToByte(40), System.Convert.ToByte(40), System.Convert.ToByte(40)));
                    boxItem.Foreground      = Brushes.Beige;
                    boxItem.Opacity         = 0.8;
                    boxItem.BorderThickness = new Thickness(0.0);
                    boxItem.Content         = v;
                    Fromcombo.Items.Add(boxItem);
                }

                foreach (var v in units)
                {
                    ComboBoxItem boxItem = new ComboBoxItem();
                    boxItem.Background      = new SolidColorBrush(Color.FromArgb(System.Convert.ToByte(255), System.Convert.ToByte(40), System.Convert.ToByte(40), System.Convert.ToByte(40)));
                    boxItem.Foreground      = Brushes.Beige;
                    boxItem.Opacity         = 0.8;
                    boxItem.BorderThickness = new Thickness(0.0);
                    boxItem.Content         = v;
                    ToCombo.Items.Add(boxItem);
                }

                foreach (var v in unitsMults)
                {
                    ComboBoxItem boxItem = new ComboBoxItem();
                    boxItem.Background      = new SolidColorBrush(Color.FromArgb(System.Convert.ToByte(255), System.Convert.ToByte(40), System.Convert.ToByte(40), System.Convert.ToByte(40)));
                    boxItem.Foreground      = Brushes.Beige;
                    boxItem.Opacity         = 0.8;
                    boxItem.BorderThickness = new Thickness(0.0);
                    boxItem.Content         = v;
                    MultsFromcombo.Items.Add(boxItem);
                }

                foreach (var v in unitsMults)
                {
                    ComboBoxItem boxItem = new ComboBoxItem();
                    boxItem.Background      = new SolidColorBrush(Color.FromArgb(System.Convert.ToByte(255), System.Convert.ToByte(40), System.Convert.ToByte(40), System.Convert.ToByte(40)));
                    boxItem.Foreground      = Brushes.Beige;
                    boxItem.Opacity         = 0.8;
                    boxItem.BorderThickness = new Thickness(0.0);
                    boxItem.Content         = v;
                    MultsTocombo.Items.Add(boxItem);
                }


                Fromcombo.SelectedIndex      = 0;
                ToCombo.SelectedIndex        = 0;
                MultsFromcombo.SelectedIndex = 0;
                MultsTocombo.SelectedIndex   = 0;
                SelectedFrom = Fromcombo.SelectedItem.ToString().Remove(0, 38);
                SelectedTo   = ToCombo.SelectedItem.ToString().Remove(0, 38);
                SelMultsFrom = MultsFromcombo.SelectedItem.ToString().Remove(0, 38);
                SelMultsTo   = MultsTocombo.SelectedItem.ToString().Remove(0, 38);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message + "\nPlease Retry", "Loading-Content-Error");
            }
        }
Exemplo n.º 37
0
 public static bool IsUndefinedOrNone(this PressureUnits value)
 {
     return(value == PressureUnits.Undefined || value == PressureUnits.None);
 }
Exemplo n.º 38
0
 static string getValueStringInUnits(double value, PressureUnits unit)
 => $"{value} {unit.getUnitString ()}";