Ejemplo n.º 1
0
        public void CurrentTemperatureDisplay()
        {
            WeatherMeasurements subject  = new WeatherMeasurements();
            CurrentObserver     observer = new CurrentObserver(subject);

            String expected = "Temperature:\t0,Humidity:\t\t0,Pressure:\t\t0";
            String actual   = observer.Display();

            subject.NotifyObservers();

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 2
0
        public WeatherMeasurements GetWeatherMeasurements(string deviceId, string measuredDate, string sensorType)
        {
            try
            {
                CreateStorageAccountFromConnectionString();

                // Create file path from deviceId, sensorType and measuredDate
                var prefix   = string.Join("/", deviceId, sensorType);
                var fileName = string.Join(".", measuredDate, "csv");
                var path     = string.Join("/", prefix, fileName);

                // Create a blob client for interacting with the blob service.
                CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

                // Create a container for organizing blobs within the storage account.
                CloudBlobContainer container = blobClient.GetContainerReference(CONTAINER);

                CloudAppendBlob appendBlob = container.GetAppendBlobReference(path);

                if (appendBlob.Exists())
                {
                    WeatherMeasurements weatherMeasurements = new WeatherMeasurements(deviceId, measuredDate, sensorType);
                    using (var memoryStream = new MemoryStream())
                    {
                        appendBlob.DownloadToStream(memoryStream);
                        memoryStream.Position = 0;
                        var text = Encoding.ASCII.GetString(memoryStream.ToArray());
                        using (var reader = new StreamReader(memoryStream, Encoding.ASCII))
                        {
                            string line = String.Empty;
                            while ((line = reader.ReadLine()) != null)
                            {
                                string[]           val    = line.Split(';');
                                AtomicMeasurements atomic = new AtomicMeasurements(val[0], val[1]);
                                weatherMeasurements.Measurements.Add(atomic);
                            }
                        }
                    }
                    return(weatherMeasurements);
                }
                else
                {
                    throw new FileNotFoundException();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 3
0
        public void ForcastDisplay()
        {
            WeatherMeasurements subject  = new WeatherMeasurements();
            ForecastObserver    observer = new ForecastObserver(subject);

            subject.Measurements.UpdateMeasurements(30, 85, 992);
            subject.NotifyObservers();

            String expected = "Warm temperatures, high humidity, low pressure.";
            String actual   = observer.Display();

            subject.NotifyObservers();

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 4
0
        public void AverageTemperatureDisplay()
        {
            WeatherMeasurements subject  = new WeatherMeasurements();
            AveragesObserver    observer = new AveragesObserver(subject);

            subject.Measurements.UpdateMeasurements(5, 5, 5);
            subject.NotifyObservers();
            subject.Measurements.UpdateMeasurements(7, 7, 7);
            subject.NotifyObservers();

            String expected = "Temperature:\t6,Humidity:\t\t6,Pressure:\t\t6";
            String actual   = observer.Display();

            Assert.AreEqual(expected, actual);
        }
        public void Update(WeatherMeasurements measurment)
        {
            _numberOfReadings++;

            // If we add celcius support we can do conversion here.  For now assume farenheit
            double normalizedTemperatureValue = measurment.Temperature.Value;

            _temperatureSum += normalizedTemperatureValue;


            if (normalizedTemperatureValue > _maxTemperatureOccurance)
            {
                _maxTemperatureOccurance = normalizedTemperatureValue;
            }
            if (normalizedTemperatureValue < _minTemperatureOccurance)
            {
                _minTemperatureOccurance = normalizedTemperatureValue;
            }

            Display();
        }
        public void Update(WeatherMeasurements measurment)
        {
            double t  = measurment.Temperature.Value;
            double rh = measurment.Humidty;

            _heatIndex = (double)
                         (
                (16.923 + (0.185212 * t)) +
                (5.37941 * rh) -
                (0.100254 * t * rh) +
                (0.00941695 * (t * t)) +
                (0.00728898 * (rh * rh)) +
                (0.000345372 * (t * t * rh)) -
                (0.000814971 * (t * rh * rh)) +
                (0.0000102102 * (t * t * rh * rh)) -
                (0.000038646 * (t * t * t)) +
                (0.0000291583 * (rh * rh * rh)) +
                (0.00000142721 * (t * t * t * rh)) +
                (0.000000197483 * (t * rh * rh * rh)) -
                (0.0000000218429 * (t * t * t * rh * rh)) +
                (0.000000000843296 * (t * t * rh * rh * rh)) -
                (0.0000000000481975 * (t * t * t * rh * rh * rh)));
            Display();
        }
Ejemplo n.º 7
0
 public void Update(WeatherMeasurements measurment)
 {
     _currentWeatherMeasurements = measurment;
     Display();
 }
Ejemplo n.º 8
0
 public void Update(WeatherMeasurements measurment)
 {
     lastPressure    = currentPressure;
     currentPressure = measurment.Pressure;
     Display();
 }