Exemple #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            Double    temp      = Double.Parse(this.tempTextBox.Text);
            TempUnits original  = (TempUnits)Enum.Parse(typeof(TempUnits), this.originalDropDown.Text, true);
            TempUnits converted = (TempUnits)Enum.Parse(typeof(TempUnits), this.convertedDropDown.Text, true);

            this.answerLabel.Text = Utilities.universalConverter(original, converted, temp).ToString();
        }
Exemple #2
0
        public SensorData(string data)
        {
            try
            {
                date = Convert.ToDateTime(data.Substring(0, 22));
                age  = DateTime.Now.Subtract(date).TotalSeconds;
                switch (data.Substring(23, 1))
                {
                case "C":
                    tempUnits = TempUnits.tempCelsius;
                    break;

                case "F":
                    tempUnits = TempUnits.tempFahrenheit;
                    break;
                }
                switch (data.Substring(25, 1))
                {
                case "K":
                    windUnits = WindUnits.windKmPerHour;
                    break;

                case "M":
                    windUnits = WindUnits.windMilesPerHour;
                    break;

                case "m":
                    windUnits = WindUnits.windMeterPerSecond;
                    break;
                }
                skyAmbientTemp = Convert.ToDouble(data.Substring(27, 6));
                ambientTemp    = Convert.ToDouble(data.Substring(34, 6));
                sensorTemp     = Convert.ToDouble(data.Substring(40, 6));
                windSpeed      = Convert.ToDouble(data.Substring(48, 6));
                humidity       = Convert.ToInt32(data.Substring(55, 3));
                dewPoint       = Convert.ToDouble(data.Substring(59, 6));
                heaterSetting  = Convert.ToInt32(data.Substring(66, 3));
                rainFlag       = (WetFlagValue)Convert.ToInt32(data.Substring(70, 1));
                wetFlag        = (WetFlagValue)Convert.ToInt32(data.Substring(72, 1));
                sinceSeeconds  = Convert.ToInt32(data.Substring(74, 5));
                //lastWriten = Convert.ToDateTime(data.Substring(80, 12));
                cloudCondition = (CloudCondition)Convert.ToInt32(data.Substring(93, 1));
                windCondition  = (WindCondition)Convert.ToInt32(data.Substring(95, 1));
                rainCondition  = (RainCondition)Convert.ToInt32(data.Substring(97, 1));
                dayCondition   = (DayCondition)Convert.ToInt32(data.Substring(99, 1));
                var x = Convert.ToInt32(data.Substring(101, 1));
                roofCloseRequested = (x == 1) ? true : false;
            }
            catch (Exception e)
            {
                throw new InvalidValueException(string.Format("Could not parse sensor data, caught: {0}", e.Message));
            }
        }
        public static double universalConverter(TempUnits initial, TempUnits final, double temp)
        {
            if (initial == TempUnits.Celsius)
            {
                if (final == TempUnits.Celsius)
                {
                    return(temp);
                }
                if (final == TempUnits.Fahrenheit)
                {
                    return(CelsiusToFahrenheit(temp));
                }
                if (final == TempUnits.Kelvin)
                {
                    return(CelsiusToKelvin(temp));
                }
            }
            if (initial == TempUnits.Fahrenheit)
            {
                if (final == TempUnits.Celsius)
                {
                    return(FahrenheitToCelsius(temp));
                }
                if (final == TempUnits.Fahrenheit)
                {
                    return(temp);
                }
                if (final == TempUnits.Kelvin)
                {
                    return(FahrenheitToKelvin(temp));
                }
            }
            if (initial == TempUnits.Kelvin)
            {
                if (final == TempUnits.Celsius)
                {
                    return(KelvinToCelsius(temp));
                }
                if (final == TempUnits.Fahrenheit)
                {
                    return(KelvinToFahrenheit(temp));
                }
                if (final == TempUnits.Kelvin)
                {
                    return(temp);
                }
            }

            return(2);
        }
 public void SetTempUnit(char t)
 {
     if (t == 'f' || t == 'F')
     {
         tempUnits = TempUnits.Farenheight;
     }
     else if (t == 'c' || t == 'C')
     {
         tempUnits = TempUnits.Celsius;
     }
     else
     {
         Console.WriteLine("Enter either F or C for the temperature unit");
     }
 }
 void Start()
 {
     tempUnits           = TempUnits.Farenheight;
     InternalTemperature = 75;
     ExternalTemperature = 82;
 }
        public WeatherData GetWeatherData(Location location, TempUnits units)
        {
            try
            {
                var    currentWeather = PreUrl + "/data/2.5/weather?";
                var    query          = "q=";
                string unit;
                Log.Info("User request location: " + location.Name);
                switch (location.GetLocationType())
                {
                case LocationType.Name:
                    query += location.Name;
                    break;

                case LocationType.ZipCode:
                    query += location.ZipCode;
                    break;

                case LocationType.Coord:
                    query += location.Lon + "," + location.Lat;
                    break;
                }
                switch (units)
                {
                case TempUnits.Kelvin:
                    unit = null;
                    break;

                case TempUnits.Fahrenheit:
                    unit = "&units=imperial";
                    break;

                default:
                    unit = "&units=metric";
                    break;
                }
                var request  = currentWeather + query + PostUrl + Key + unit;
                var client   = new WebClient();
                var document = XDocument.Parse(client.DownloadString(request));
                Log.Info("Data downloaded successfully for location: " + location.Name);
                return(ParseXml(document));
            }
            //network exception
            catch (WebException e)
            {
                Log.Error("network exception or bad key");
                throw new WeatherDataServiceException("network exception or bad key");
            }
            //data exception or bad location request
            catch (XmlException e)
            {
                //if the user request a bad location - write to log file, and continue
                if (e.Data.Count == 0)
                {
                    Log.Warn("bad location: " + location.Name);
                    return(null);
                }
                Log.Error(e.Message);
                throw new WeatherDataServiceException(e.Message);
            }
        }