Пример #1
0
        public ObservableCollection <GPUSettings> ScanHardware()
        {
            ObservableCollection <GPUSettings> gpuSettingsList = new ObservableCollection <GPUSettings>();

            try
            {
                ManagementObjectSearcher objvide = new ManagementObjectSearcher("select * from Win32_VideoController");

                foreach (ManagementObject obj in objvide.Get())
                {
                    GPUSettings gpuSettings = new GPUSettings();

                    gpuSettings.AccountGuid      = (Guid)Application.Current.Properties["AccountID"];
                    gpuSettings.WorkerName       = Application.Current.Properties["WorkerName"].ToString();
                    gpuSettings.HardwareName     = obj["Name"].ToString();
                    gpuSettings.GPUID            = Int32.Parse(obj["DeviceID"].ToString());
                    gpuSettings.EnabledForMining = true;

                    gpuSettingsList.Add(gpuSettings);
                }
                return(gpuSettingsList);
            }
            catch (Exception e)
            {
                throw new ApplicationException(string.Format("Error scanning hardware"), e);
            }
        }
Пример #2
0
        public ObservableCollection <GPUSettings> ScanHardware(Guid accountId, string workerName)
        {
            ObservableCollection <GPUSettings> gpuSettingsList = new ObservableCollection <GPUSettings>();

            try
            {
                Computer myComputer = new Computer();
                myComputer.Open();
                myComputer.GPUEnabled = true;

                int amdCount    = 0;
                int nvidiaCount = 0;

                foreach (var hardwareItem in myComputer.Hardware)
                {
                    if (hardwareItem.HardwareType == HardwareType.GpuNvidia || hardwareItem.HardwareType == HardwareType.GpuAti)
                    {
                        GPUSettings gpuSettings = new GPUSettings();

                        gpuSettings.AccountGuid      = accountId;
                        gpuSettings.WorkerName       = workerName;
                        gpuSettings.HardwareName     = hardwareItem.Name;
                        gpuSettings.EnabledForMining = true;

                        try
                        {
                            gpuSettings.Fanspeed = Convert.ToInt16(hardwareItem.Sensors.Where(x => x.SensorType == SensorType.Control && x.Name == "GPU Fan").FirstOrDefault().Value);
                        }
                        catch
                        {
                            gpuSettings.Fanspeed = 0;
                        }

                        gpuSettings.EnabledForMining = true;

                        if (hardwareItem.HardwareType == HardwareType.GpuNvidia)
                        {
                            //gpuSettings.GPUID = Convert.ToUInt16(hardwareItem.Identifier.ToString().Replace("/nvidiagpu/", "").Replace("/atigpu/", "").Replace("}", ""));

                            gpuSettings.GPUID = nvidiaCount;
                            nvidiaCount++;

                            gpuSettings.HardwareType          = Enums.HardwareType.Nvidia;
                            gpuSettings.CoinSelectedForMining = Enums.CoinType.HUSH;
                            gpuSettings.MinerBaseType         = Enums.MinerBaseType.EWBF;
                        }
                        else if (hardwareItem.HardwareType == HardwareType.GpuAti)
                        {
                            //gpuSettings.GPUID = Convert.ToUInt16(hardwareItem.Identifier.ToString().Replace("/nvidiagpu/", "").Replace("/atigpu/", "").Replace("}", ""));

                            gpuSettings.GPUID = amdCount;
                            amdCount++;

                            gpuSettings.HardwareType          = Enums.HardwareType.AMD;
                            gpuSettings.CoinSelectedForMining = Enums.CoinType.EXP;
                            gpuSettings.MinerBaseType         = Enums.MinerBaseType.Claymore;
                        }

                        // Add GPU settings to list
                        gpuSettingsList.Add(gpuSettings);
                    }
                }

                return(gpuSettingsList);
            }
            catch (Exception e)
            {
                throw new ApplicationException(string.Format("Error scanning hardware"), e);
            }
        }