示例#1
0
        private void AdjustFan(Enum.TempertureMeasure measure)
        {
            var temperture = GetTemperture(measure);

            if (temperture == null)
            {
                SetAutoFan();
            }

            var level = _fanLevels.Levels.Where(o => o.Low <= temperture.Temp && temperture.Temp <= o.High).FirstOrDefault();

            if (level == null)
            {
                SetAutoFan();
            }
            else
            {
                if (!_fanManual)
                {
                    _iMPIInteraction.SetMannualFanControl();
                }
                if (CanAdjustFanSpeed(_currentFanSpeed, level.Speed, _fanLevels.MinimumTimeBeforeDropping))
                {
                    AdjustFan(level.Speed);
                }
            }
        }
示例#2
0
        private Models.Temperture GetTemperture(Enum.TempertureMeasure measure)
        {
            var tempertures = _iMPIInteraction.GetTemperture();

            switch (measure)
            {
            case Enum.TempertureMeasure.Highest:
                return(tempertures.OrderByDescending(s => s.Temp).FirstOrDefault());

            case Enum.TempertureMeasure.Average:
                var averageTemp = (int)tempertures.Average(s => s.Temp);
                return(new Models.Temperture(averageTemp));

            default:
                return(new Models.Temperture(500));
            }
        }