Exemple #1
0
        /// <summary>
        /// Gets current and forcast data from NOAA
        /// </summary>
        protected override void GetWeather()
        {
            var wc = new WebClient();

            wc.Headers.Add(HttpRequestHeader.UserAgent, "OpenWeather Client");
            var doc = XDocument.Parse(wc.DownloadString(LookupUrl));

            #region CURRENT_CONDITIONS

            var current  = XmlTools.TruncateXDocument(doc, "data", "type", "current observations");
            var temp     = (Convert.ToDouble(XmlTools.GetElementContent("value", current, "parameters", "temperature")) - 32) * .555555;
            var dewpoint =
                Convert.ToDouble(((XElement)XmlTools.GetNode(current, "parameters", "temperature").NextNode).Value);
            var visibility =
                Convert.ToDouble(
                    ((XElement)XmlTools.GetNode(current, "parameters", "weather", "weather-conditions").NextNode).Value);
            var windHeading = Convert.ToInt32(XmlTools.GetElementContent("value", current, "parameters", "direction"));
            var windSpeed   =
                Convert.ToDouble(((XElement)XmlTools.GetNode(current, "parameters", "wind-speed").NextNode).Value);
            var pressure = Convert.ToDouble(XmlTools.GetElementContent("value", current, "parameters", "pressure")) /
                           0.0393700732914;

            temp       = Temperature.From(temp, TemperatureUnit.DegreeCelsius).As(Units.TemperatureUnit);
            windSpeed  = Speed.From(windSpeed, SpeedUnit.Knot).As(Units.WindSpeedUnit);
            pressure   = Pressure.From(pressure, PressureUnit.Torr).As(Units.PressureUnit);
            visibility = Length.From(visibility, LengthUnit.Mile).As(Units.VisibilityUnit);

            Weather = new Weather(temp, dewpoint, windSpeed, windHeading, pressure, visibility);

            #endregion CURRENT_CONDITIONS

            wc.Dispose();
        }
 public void FromValueAndUnit()
 {
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.Atmosphere).Atmospheres, AtmospheresTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.Bar).Bars, BarsTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.KilogramForcePerSquareCentimeter).KilogramsForcePerSquareCentimeter, KilogramsForcePerSquareCentimeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.KilogramForcePerSquareMeter).KilogramsForcePerSquareMeter, KilogramsForcePerSquareMeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.KilogramForcePerSquareMillimeter).KilogramsForcePerSquareMillimeter, KilogramsForcePerSquareMillimeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.KilonewtonPerSquareCentimeter).KilonewtonsPerSquareCentimeter, KilonewtonsPerSquareCentimeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.KilonewtonPerSquareMeter).KilonewtonsPerSquareMeter, KilonewtonsPerSquareMeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.KilonewtonPerSquareMillimeter).KilonewtonsPerSquareMillimeter, KilonewtonsPerSquareMillimeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.Kilopascal).Kilopascals, KilopascalsTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.KilopoundForcePerSquareFoot).KilopoundsForcePerSquareFoot, KilopoundsForcePerSquareFootTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.KilopoundForcePerSquareInch).KilopoundsForcePerSquareInch, KilopoundsForcePerSquareInchTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.Megapascal).Megapascals, MegapascalsTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.NewtonPerSquareCentimeter).NewtonsPerSquareCentimeter, NewtonsPerSquareCentimeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.NewtonPerSquareMeter).NewtonsPerSquareMeter, NewtonsPerSquareMeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.NewtonPerSquareMillimeter).NewtonsPerSquareMillimeter, NewtonsPerSquareMillimeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.Pascal).Pascals, PascalsTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.PoundForcePerSquareFoot).PoundsForcePerSquareFoot, PoundsForcePerSquareFootTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.PoundForcePerSquareInch).PoundsForcePerSquareInch, PoundsForcePerSquareInchTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.Psi).Psi, PsiTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.TechnicalAtmosphere).TechnicalAtmospheres, TechnicalAtmospheresTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.TonneForcePerSquareCentimeter).TonnesForcePerSquareCentimeter, TonnesForcePerSquareCentimeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.TonneForcePerSquareMeter).TonnesForcePerSquareMeter, TonnesForcePerSquareMeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.TonneForcePerSquareMillimeter).TonnesForcePerSquareMillimeter, TonnesForcePerSquareMillimeterTolerance);
     Assert.AreEqual(1, Pressure.From(1, PressureUnit.Torr).Torrs, TorrsTolerance);
 }
 protected override void OnValueChanged(EventArgs e)
 {
     UnitValue = Pressure.From((double)Value, unit);
     AdjustControlSize();
     Label = string.Format("{0:a}", UnitValue.ToUnit(unit));
     base.OnValueChanged(e);
 }
Exemple #4
0
 public void FromValueAndUnit()
 {
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Atmosphere).Atmospheres, AtmospheresTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Bar).Bars, BarsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Centibar).Centibars, CentibarsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Decapascal).Decapascals, DecapascalsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Decibar).Decibars, DecibarsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.DynePerSquareCentimeter).DynesPerSquareCentimeter, DynesPerSquareCentimeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.FootOfHead).FeetOfHead, FeetOfHeadTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Gigapascal).Gigapascals, GigapascalsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Hectopascal).Hectopascals, HectopascalsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.InchOfMercury).InchesOfMercury, InchesOfMercuryTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Kilobar).Kilobars, KilobarsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.KilogramForcePerSquareCentimeter).KilogramsForcePerSquareCentimeter, KilogramsForcePerSquareCentimeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.KilogramForcePerSquareMeter).KilogramsForcePerSquareMeter, KilogramsForcePerSquareMeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.KilogramForcePerSquareMillimeter).KilogramsForcePerSquareMillimeter, KilogramsForcePerSquareMillimeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.KilonewtonPerSquareCentimeter).KilonewtonsPerSquareCentimeter, KilonewtonsPerSquareCentimeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.KilonewtonPerSquareMeter).KilonewtonsPerSquareMeter, KilonewtonsPerSquareMeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.KilonewtonPerSquareMillimeter).KilonewtonsPerSquareMillimeter, KilonewtonsPerSquareMillimeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Kilopascal).Kilopascals, KilopascalsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.KilopoundForcePerSquareFoot).KilopoundsForcePerSquareFoot, KilopoundsForcePerSquareFootTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.KilopoundForcePerSquareInch).KilopoundsForcePerSquareInch, KilopoundsForcePerSquareInchTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Megabar).Megabars, MegabarsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.MeganewtonPerSquareMeter).MeganewtonsPerSquareMeter, MeganewtonsPerSquareMeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Megapascal).Megapascals, MegapascalsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.MeterOfHead).MetersOfHead, MetersOfHeadTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Microbar).Microbars, MicrobarsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Micropascal).Micropascals, MicropascalsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Millibar).Millibars, MillibarsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.MillimeterOfMercury).MillimetersOfMercury, MillimetersOfMercuryTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Millipascal).Millipascals, MillipascalsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.NewtonPerSquareCentimeter).NewtonsPerSquareCentimeter, NewtonsPerSquareCentimeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.NewtonPerSquareMeter).NewtonsPerSquareMeter, NewtonsPerSquareMeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.NewtonPerSquareMillimeter).NewtonsPerSquareMillimeter, NewtonsPerSquareMillimeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Pascal).Pascals, PascalsTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.PoundForcePerSquareFoot).PoundsForcePerSquareFoot, PoundsForcePerSquareFootTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.PoundForcePerSquareInch).PoundsForcePerSquareInch, PoundsForcePerSquareInchTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.PoundPerInchSecondSquared).PoundsPerInchSecondSquared, PoundsPerInchSecondSquaredTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Psi).Psi, PsiTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.TechnicalAtmosphere).TechnicalAtmospheres, TechnicalAtmospheresTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.TonneForcePerSquareCentimeter).TonnesForcePerSquareCentimeter, TonnesForcePerSquareCentimeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.TonneForcePerSquareMeter).TonnesForcePerSquareMeter, TonnesForcePerSquareMeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.TonneForcePerSquareMillimeter).TonnesForcePerSquareMillimeter, TonnesForcePerSquareMillimeterTolerance);
     AssertEx.EqualTolerance(1, Pressure.From(1, PressureUnit.Torr).Torrs, TorrsTolerance);
 }
Exemple #5
0
        /// <summary>
        /// Gets current data from NOAA
        /// </summary>
        protected override void GetWeather()
        {
            var wc = new WebClient();

            wc.Headers.Add(HttpRequestHeader.UserAgent, "OpenWeather Client");
            var doc = XDocument.Parse(wc.DownloadString(LookupUrl));

            double result_count = 0;

            try
            {
                result_count = Convert.ToDouble(XmlTools.GetElementContent("result_count", doc, "data"));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            if (result_count != 0)
            {
                var temp      = Convert.ToDouble(XmlTools.GetElementContent("temp_c", doc, "data", "METAR") + 0);
                var windSpeed = Convert.ToDouble(XmlTools.GetElementContent("wind_speed_kt", doc, "data", "METAR") + 0);
                var pressure  =
                    Convert.ToDouble(XmlTools.GetElementContent("altim_in_hg", doc, "data", "METAR") + 0) / 0.0393700732914;
                var windHeading = Convert.ToInt32(XmlTools.GetElementContent("wind_dir_degrees", doc, "data", "METAR") + 0);
                var dewpoint    = Convert.ToDouble(XmlTools.GetElementContent("dewpoint_c", doc, "data", "METAR") + 0);
                var visibility  =
                    Convert.ToDouble(XmlTools.GetElementContent("visibility_statute_mi", doc, "data", "METAR") + 0);

                temp       = Temperature.From(temp, TemperatureUnit.DegreeCelsius).As(Units.TemperatureUnit);
                windSpeed  = Speed.From(windSpeed, SpeedUnit.Knot).As(Units.WindSpeedUnit);
                pressure   = Pressure.From(pressure, PressureUnit.Torr).As(Units.PressureUnit);
                visibility = Length.From(visibility, LengthUnit.Mile).As(Units.VisibilityUnit);

                Weather = new Weather(temp, dewpoint, windSpeed, windHeading, pressure, visibility);
            }
            else
            {
                Console.WriteLine("No resluts found.");
            }

            wc.Dispose();
        }
Exemple #6
0
 /// <summary>
 /// Converts from one unit profile to another unit.
 /// </summary>
 /// <param name="originalUnits">Original unit profile</param>
 /// <param name="toUnit">Unit to convert to</param>
 /// <param name="value">Pressure value to convert</param>
 /// <returns>Converted pressure</returns>
 public static double ConvertPressure(Units originalUnits, PressureUnit toUnit, double value) =>
 Pressure.From(value, originalUnits.PressureUnit).As(toUnit);