Esempio n. 1
0
        public void LoadDefaults()
        {
            Host     = Host ?? Environment.GetEnvironmentVariable("IPMI_HOST") ?? "127.0.0.1";
            Username = Username ?? Environment.GetEnvironmentVariable("IPMI_USERNAME");
            Password = Password ?? Environment.GetEnvironmentVariable("IPMI_PASSWORD");

            if (UpdateInterval == null)
            {
                UpdateInterval = int.TryParse(Environment.GetEnvironmentVariable("UPDATE_INTERVAL"), out var interval) ? interval : 5;
            }

            if (MaximumTemperature == null)
            {
                MaximumTemperature = int.TryParse(Environment.GetEnvironmentVariable("MAXIMUM_TEMPERATURE"), out var max) ? max : 70;
            }

            if (MaximumAllowableOverheatTime == null)
            {
                MaximumAllowableOverheatTime = int.TryParse(Environment.GetEnvironmentVariable("OVERHEAT_TIME"), out var overheatTime) ? overheatTime : 900;
            }

            if (IdleCurve == null || !IdleCurve.Any())
            {
                var env = Environment.GetEnvironmentVariable("FAN_CURVE");
                if (string.IsNullOrEmpty(env))
                {
                    throw new Exception("No idle fan curve specified.");
                }

                IdleCurve = env.Split(';');
            }

            if (OverheatTemperature == null)
            {
                if (int.TryParse(Environment.GetEnvironmentVariable("OVERHEAT_TEMPERATURE"), out var overheat))
                {
                    OverheatTemperature = overheat;
                }
                else
                {
                    var curveMax = IdleCurve.Select(Program.Parse).Max(x => x.temp);
                    OverheatTemperature = Math.Min(MaximumTemperature.Value, curveMax);
                }
            }

            if (SustainedLoadCurve == null || !SustainedLoadCurve.Any())
            {
                var env = Environment.GetEnvironmentVariable("SUSTAINED_FAN_CURVE");
                if (string.IsNullOrEmpty(env))
                {
                    SustainedLoadCurve = env.Split(';');
                }
                else
                {
                    SustainedLoadCurve = IdleCurve;
                }
            }
        }
Esempio n. 2
0
 public override string ToString()
 {
     return($"{nameof(Host)}: {Host}, {nameof(UpdateInterval)}: {UpdateInterval}, {nameof(OverheatTemperature)}: {OverheatTemperature}, {nameof(MaximumTemperature)}: {MaximumTemperature}, {nameof(MaximumAllowableOverheatTime)}: {MaximumAllowableOverheatTime}, {nameof(IdleCurve)}: {IdleCurve.Aggregate((a,b) => $"{a};{b}")}, {nameof(SustainedLoadCurve)}: {SustainedLoadCurve.Aggregate((a, b) => $"{a};{b}")}");
 }