示例#1
0
 private static void Init()
 {
     MediaController.Init();
     SerialController.Init();
     IrController.Init();
     SensorController.Init(Computer);
     FanController.Init(Computer);
     DisplayController.Init();
 }
示例#2
0
        public static void ChangeFan(FanOperation operation)
        {
            ISensor fanSensor;
            var     outputValue = string.Empty;

            if (DisplayController.CurrentScreen == Screen.FrontFans)
            {
                var mb = _computer.Hardware.First(x => x.HardwareType == HardwareType.Mainboard);
                mb.Update();
                var fans = mb.SubHardware[0].Sensors
                           .Where(x =>
                                  x.Identifier.ToString() == HardwareIdentifiers.FRONT1_FAN_PERCENTAGE ||
                                  x.Identifier.ToString() == HardwareIdentifiers.FRONT2_FAN_PERCENTAGE ||
                                  x.Identifier.ToString() == HardwareIdentifiers.FRONT3_FAN_PERCENTAGE)
                           .ToList();

                var minValue = fans.Min(x => x.Value) ?? 50;

                fans.ForEach(x => outputValue = ChangeFan(x, minValue, operation));

                DisplayController.Display("Fan control", $"{outputValue}", true);
                return;
            }

            FanType fan;

            try
            {
                fan = DisplayController.CurrentScreen.GetFanType();
            }
            catch (Exception e)
            {
                DisplayController.Display("Error", e.Message, true);
                return;
            }

            if (fan == FanType.GPU)
            {
                var gpu = _computer.Hardware.First(x => x.HardwareType == HardwareType.GpuNvidia);
                gpu.Update();

                fanSensor = gpu.Sensors.First(x => x.Identifier.ToString() == HardwareIdentifiers.GPU_FAN_PERCENTAGE);
            }
            else
            {
                var mb = _computer.Hardware.First(x => x.HardwareType == HardwareType.Mainboard);
                mb.Update();
                fanSensor = mb.SubHardware[0].Sensors.First(x => x.Identifier.ToString() == Fans[fan]);
            }

            var value = fanSensor.Value.GetValueOrDefault(50);

            outputValue = ChangeFan(fanSensor, value, operation);

            DisplayController.Display("Fan control", $"{outputValue}", true);
        }