Ejemplo n.º 1
0
        /// <summary>
        /// Constructor of the class - performs initialization
        /// </summary>
        public TempHumAvgEngine()
        {
            TempHumEntity fakeValue = new TempHumEntity(0, 0, false);

            //Initialize value containers
            FullMinuteValues = new Dictionary<int, TempHumEntity>();
            for (int i = 1; i < 13; i++)
            {
                FullMinuteValues.Add(i, fakeValue);
            }
            FullHourValues = new Dictionary<int, TempHumEntity>();
            for (int i = 1; i < 61; i++)
            {
                FullHourValues.Add(i, fakeValue);
            }

            FullMinuteValuesPosition = 1;
            FullHourValuesPosition = 1;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Method to call every 5 seconds to record a value (temp and humidity)
        /// </summary>
        /// <param name="tempC">Temperature in Celcius</param>
        /// <param name="humidity">Humidity in percent</param>
        public void AddValue(double tempC, double humidity)
        {
            TempHumEntity newValue = new TempHumEntity(tempC, humidity, true);

            FullMinuteValues[FullMinuteValuesPosition] = newValue;
            FullMinuteValuesPosition += 1;

            if (FullMinuteValuesPosition == 13)
            {
                //Calculate average for the last 12 values (full minute) and put the result in the hour values container
                double totalTempC = 0;
                double totalHumidity = 0;
                for (int i = 1; i < 13; i++)
                {
                    totalTempC = totalTempC + FullMinuteValues[i].TempC;
                    totalHumidity = totalHumidity + FullMinuteValues[i].Humidity;
                }
                TempHumEntity newMinuteValue = new TempHumEntity(totalTempC / 12, totalHumidity / 12, true);
                FullHourValues[FullHourValuesPosition] = newMinuteValue;
                FullHourValuesPosition += 1;

                if (FullHourValuesPosition == 61)
                {
                    //Reset position
                    FullHourValuesPosition = 1;
                }

                //Reset position
                FullMinuteValuesPosition = 1;
            }
        }