Ejemplo n.º 1
0
        private HardwareInformation GetMainFanSpeed()
        {
            HardwareInformation cpuFanSpeed = new HardwareInformation()
            {
                MainValue  = null,
                ShortName  = "FAN",
                UnitSymbol = "RPM"
            };

            foreach (var hardware in _localMachine.Hardware)
            {
                foreach (var subhardware in hardware.SubHardware)
                {
                    subhardware.Update();
                    if (subhardware.Sensors.Length > 0)
                    {
                        foreach (var sensor in subhardware.Sensors)
                        {
                            if (sensor.SensorType == OpenHardwareSensorType.Fan && sensor.Name.Equals("Fan #1", StringComparison.OrdinalIgnoreCase))
                            {
                                var test = sensor;
                                cpuFanSpeed.MainValue = ((double)(float)sensor.Value);
                            }
                        }
                    }
                }
            }

            return(cpuFanSpeed);
        }
Ejemplo n.º 2
0
        private HardwareInformation GetHardwareSensorValue <T>(string unitSymbol, string sensorRegionName, OpenHardwareSensorType sensorType)
        {
            HardwareInformation output = new HardwareInformation()
            {
                MainValue  = null,
                ShortName  = "GPU",
                UnitSymbol = unitSymbol
            };

            foreach (var hardware in _localMachine.Hardware)
            {
                hardware.Update();
                if (hardware.HardwareType == OpenHardwareType.GpuAti || hardware.HardwareType == OpenHardwareType.GpuNvidia)
                {
                    var reading = hardware.Sensors.Where(S => S.SensorType == sensorType && S.Name == sensorRegionName).SingleOrDefault().Value;
                    if (reading != null)
                    {
                        output.MainValue = Convert.ChangeType(Math.Round((double)reading, 2), typeof(T));
                    }
                    break;
                }
            }

            return(output);
        }
        private Mock <IFactory <ConnectorBase> > GivenConnectorFactoryMock()
        {
            Mock <IFactory <ConnectorBase> > factoryMock   = new Mock <IFactory <ConnectorBase> >();
            Mock <ConnectorBase>             connectorMock = new Mock <ConnectorBase>();
            HardwareInformation hardwareInfoGCpuLoad       = new HardwareInformation()
            {
                MainValue = 30.0, ShortName = "CPU", UnitSymbol = "%"
            };
            HardwareInformation hardwareInfoGpuTemp = new HardwareInformation()
            {
                MainValue = 30.0, ShortName = "GPU", UnitSymbol = "°C"
            };
            HardwareInformation hardwareInfoRamUsage = new HardwareInformation()
            {
                MainValue = 30.0, ShortName = "RAM", UnitSymbol = "%"
            };
            HardwareInformation hardwareInfoGpuLoad = new HardwareInformation()
            {
                MainValue = 30.0, ShortName = "GPU", UnitSymbol = "%"
            };
            HardwareInformation hardwareInfoMotherBoard = new HardwareInformation()
            {
                MainValue = "TEST_MOTHER_BOARD", ShortName = "MB"
            };

            factoryMock.Setup(fac => fac.CreateInstance(It.IsAny <string>())).Returns(connectorMock.Object);
            connectorMock.Setup(con => con.GetValue(MonitoringTarget.CPU_Load)).Returns(hardwareInfoGCpuLoad);
            connectorMock.Setup(con => con.GetValue(MonitoringTarget.RAM_Usage)).Returns(hardwareInfoRamUsage);
            connectorMock.Setup(con => con.GetValue(MonitoringTarget.GPU_Temp)).Returns(hardwareInfoGpuTemp);
            connectorMock.Setup(con => con.GetValue(MonitoringTarget.Mother_Board_Make)).Returns(hardwareInfoMotherBoard);
            connectorMock.Setup(con => con.GetValue(_notSupportedTarget))
            .Throws(new HardwareCommunicationException(_notSupportedTarget));

            return(factoryMock);
        }
Ejemplo n.º 4
0
        private HardwareInformation GetCpuThreadCount()
        {
            var threadCount    = wmiHelper.GetWmiValue <uint>("Win32_Processor", "ThreadCount");
            var cpuThreadCount = new HardwareInformation()
            {
                MainValue  = (double)threadCount,
                ShortName  = "CPU",
                UnitSymbol = (threadCount > 1) ? "Threads" : "Thread",
            };

            return(cpuThreadCount);
        }
Ejemplo n.º 5
0
        private HardwareInformation GetCpuTemperature()
        {
            var temp    = wmiHelper.GetWmiValue <double>("MSAcpi_ThermalZoneTemperature", "CurrentTemperature", scope: @"root\WMI");
            var cpuTemp = new HardwareInformation()
            {
                ShortName  = "CPU",
                MainValue  = (temp - 2732) / 10.0,
                UnitSymbol = "°C"
            };

            return(cpuTemp);
        }
Ejemplo n.º 6
0
        private HardwareInformation GetCpuMake()
        {
            var make    = wmiHelper.GetWmiValue <string>("Win32_Processor", "Name");
            var cpuMake = new HardwareInformation()
            {
                MainValue  = make,
                ShortName  = "CPU",
                UnitSymbol = ""
            };

            return(cpuMake);
        }
Ejemplo n.º 7
0
        private HardwareInformation GetCpuClockSpeed()
        {
            var clockSpeed    = wmiHelper.GetWmiValue <uint>("Win32_Processor", "CurrentClockSpeed");
            var cpuClockSpeed = new HardwareInformation()
            {
                MainValue  = (double)(clockSpeed * 001f) / 1000,
                ShortName  = "CPU",
                UnitSymbol = "kHz",
            };

            return(cpuClockSpeed);
        }
Ejemplo n.º 8
0
        private HardwareInformation GetCpuCoreCount()
        {
            var numOfCore    = wmiHelper.GetWmiValue <uint>("Win32_Processor", "NumberOfCores");
            var cpuCoreCount = new HardwareInformation()
            {
                MainValue  = (double)numOfCore,
                ShortName  = "CPU",
                UnitSymbol = (numOfCore > 1) ? "Cores" : "Core",
            };

            return(cpuCoreCount);
        }
Ejemplo n.º 9
0
        private HardwareInformation GetRamMemoryUsage()
        {
            var totalMemSize = wmiHelper.GetWmiValue <double>("Win32_OperatingSystem", "TotalVisibleMemorySize");
            var freeMemSize  = wmiHelper.GetWmiValue <double>("Win32_OperatingSystem", "FreePhysicalMemory");

            var ramUsage = new HardwareInformation()
            {
                MainValue  = 100 * Math.Round(((totalMemSize - freeMemSize) / totalMemSize), 2),
                ShortName  = "RAM",
                UnitSymbol = "%"
            };

            return(ramUsage);
        }
Ejemplo n.º 10
0
        private HardwareInformation GetGpuMake()
        {
            HardwareInformation output = new HardwareInformation()
            {
                MainValue  = null,
                ShortName  = "GPU",
                UnitSymbol = ""
            };

            foreach (var hardware in _localMachine.Hardware)
            {
                hardware.Update();
                if (hardware.HardwareType == OpenHardwareType.GpuAti || hardware.HardwareType == OpenHardwareType.GpuNvidia)
                {
                    output.MainValue = hardware.Name;
                    break;
                }
            }

            return(output);
        }
Ejemplo n.º 11
0
        private HardwareInformation GetMotherBoardMake()
        {
            HardwareInformation output = new HardwareInformation()
            {
                MainValue  = null,
                ShortName  = "MotherBoard",
                UnitSymbol = ""
            };

            foreach (var hardware in _localMachine.Hardware)
            {
                hardware.Update();
                if (hardware.HardwareType == OpenHardwareType.Mainboard)
                {
                    output.MainValue = hardware.Name;
                    break;
                }
            }

            return(output);
        }
        private static HardwareInformation GetHardwareInformation()
        {
            var result = new HardwareInformation
            {
                Screens = System.Windows.Forms.Screen.AllScreens.Select(x => new Screen
                {
                    IsPrimary    = x.Primary,
                    Resolution   = $"{x.Bounds.Width} x {x.Bounds.Height}",
                    BitsPerPixel = x.BitsPerPixel,
                    DeviceName   = x.DeviceName
                }).ToList()
            };

            ProcessorInfo processorInfo;

            result.ProcessorInfo = processorInfo = new ProcessorInfo
            {
                LogicalProcessors = Environment.ProcessorCount,
                ClockSpeed        = SetValue(() =>
                {
                    using (var regKey =
                               Registry.LocalMachine.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",
                                                                RegistryKeyPermissionCheck.ReadSubTree))
                    {
                        var clockSpeedMhz = regKey.GetValue("~MHz").ToString();
                        return(Math.Round(Convert.ToDecimal(clockSpeedMhz) / 1000) + " GHz (" +
                               clockSpeedMhz + " MHz)");
                    }
                }),
                ManufactureId = SetValue(() =>
                {
                    using (var regKey =
                               Registry.LocalMachine.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",
                                                                RegistryKeyPermissionCheck.ReadSubTree))
                        return(regKey.GetValue("VendorIdentifier").ToString());
                })
            };

            try
            {
                using (var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor"))
                    using (var processorManagementObject = searcher.Get().OfType <ManagementObject>().FirstOrDefault())
                    {
                        if (processorManagementObject != null)
                        {
                            processorInfo.Name        = SetValue(() => processorManagementObject["Name"].ToString());
                            processorInfo.Description =
                                SetValue(() => processorManagementObject["Description"].ToString());
                            processorInfo.Cores = SetValue(() => (uint)processorManagementObject["NumberOfCores"],
                                                           uint.MinValue);
                            processorInfo.Architecture =
                                SetValue(
                                    () =>
                                    ArchitectureToString(int.Parse(processorManagementObject["Architecture"].ToString())));
                            processorInfo.L2CacheSize   = SetValue(() => processorManagementObject["L2CacheSize"] + "KiB");
                            processorInfo.L3CacheSize   = SetValue(() => processorManagementObject["L3CacheSize"] + "KiB");
                            processorInfo.DeviceId      = SetValue(() => processorManagementObject["DeviceID"].ToString());
                            processorInfo.ProcessorId   = SetValue(() => processorManagementObject["ProcessorId"].ToString());
                            processorInfo.ProcessorType = SetValue(() =>
                                                                   ProcessorTypeToString(
                                                                       int.Parse(processorManagementObject["ProcessorType"].ToString())));
                            processorInfo.ExternalClockSpeed = SetValue(() => processorManagementObject["ExtClock"] + "MHz");
                            processorInfo.Revision           =
                                SetValue(() => int.Parse(processorManagementObject["Revision"].ToString()), 0);
                        }
                    }
            }
            catch (Exception)
            {
                // ignored
            }

            try
            {
                using (var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_VideoController")
                       )
                {
                    var videoCardManagementObject = searcher.Get().OfType <ManagementObject>().FirstOrDefault();
                    if (videoCardManagementObject != null)
                    {
                        result.VideoCardInfo = new VideoCardInfo
                        {
                            MaxRefreshRate    = int.Parse(videoCardManagementObject["MaxRefreshRate"].ToString()),
                            DeviceId          = videoCardManagementObject["DeviceID"].ToString(),
                            Name              = videoCardManagementObject["Caption"].ToString(),
                            VideoArchitecture =
                                VideoArchitectureToString(
                                    int.Parse(videoCardManagementObject["VideoArchitecture"].ToString())),
                            VideoMemoryType =
                                VideoMemoryTypeToString(
                                    int.Parse(videoCardManagementObject["VideoMemoryType"].ToString())),
                            VideoModeDescription = videoCardManagementObject["VideoModeDescription"].ToString(),
                            VideoProcessor       = videoCardManagementObject["VideoProcessor"].ToString()
                        }
                    }
                    ;
                }
            }
            catch (Exception)
            {
                result.VideoCardInfo = new VideoCardInfo
                {
                    MaxRefreshRate       = -1,
                    DeviceId             = "N/A",
                    Name                 = "N/A",
                    VideoArchitecture    = "N/A",
                    VideoMemoryType      = "N/A",
                    VideoModeDescription = "N/A",
                    VideoProcessor       = "N/A"
                };
            }

            return(result);
        }