Пример #1
0
        public void Voltage_convert_between_int_and_decimal(int voltageInt, int val)
        {
            decimal voltage = voltageInt / 100m;

            Assert.Equal(voltage, SMUCommand.ToVoltageDecimal(val));
            Assert.Equal(val, SMUCommand.ToVoltageInteger(voltage));
        }
Пример #2
0
 public SMUUnitTest()
 {
     mMockOls.Setup(mock => mock.WritePciConfigDwordEx(
                        It.IsAny <uint>(),
                        It.IsAny <uint>(),
                        It.IsAny <uint>()))
     .Returns(1);
     mMockOls.Setup(mock => mock.ReadPciConfigDwordEx(
                        It.IsAny <uint>(),
                        It.IsAny <uint>(),
                        ref It.Ref <uint> .IsAny))
     .Callback((ReadPciConfigCallbackType)((uint _, uint __, ref uint value) => { value = kReadDword; }))
     .Returns(1);
     mSubject = new SMUCommand(mMockOls.Object, false, mMockLogger.Object);
 }
Пример #3
0
        public MainForm()
        {
            InitializeComponent();

            try
            {
                mSmuCmd = new SMUCommand(false, (string msg) =>
                {
                    SetStatus(msg);
                });
            }
            catch (ApplicationException ex)
            {
                MessageBox.Show(ex.Message, @"Error");
                Dispose();
                Application.Exit();
            }

            mSettings = new SettingManager(kSettingsFileName);

            mainFormBindingSource.DataSource = this;
            settingsBindingSource.DataSource = mSettings.OnGoingSettings;

#if !DEBUG
            var CPUID = mSmuCmd.CPUID;
            if (CPUID != 0x00830F00 && CPUID != 0x00830F10) // EPYC Rome ES
            {
                MessageBox.Show(@"CPU not supported!", @"Error");
                Dispose();
                Application.Exit();
                return;
            }
#endif
#if DEBUG
            var res = MessageBox.Show(
                @"This is an experimental version of this software. Keep in mind that it is possible to encounter bugs.",
                @"Warning", MessageBoxButtons.OKCancel);
            if (res != DialogResult.OK)
            {
                Dispose();
                Application.Exit();
            }
#endif

            var mg = new ManagementObjectSearcher("Select * from Win32_Processor").Get()
                     .Cast <ManagementBaseObject>();
            _coreCount = Convert.ToUInt32(mg.Sum(item => int.Parse(item["NumberOfCores"].ToString())));
            _cpuName   = (string)mg.First()["Name"];
            _cpuName   = _cpuName.Replace("AMD Eng Sample: ", "").Trim();

            InitDefaultForm();

            FrequencyListItem findFreqItemByFreq(int freq)
            {
                return(AC_freqSelect.Items.Cast <FrequencyListItem>().SingleOrDefault(i => i.Frequency == freq));
            }

            // TODO: refactoring preset list use data binding
            var settings = mSettings.OnGoingSettings;
            _presetFunctions = new Dictionary <string, Dictionary <string, Action> >
            {
                { "64", new Dictionary <string, Action>
                  {
                      { "High Multi-core", () =>
                        {
                            settings.FreqLock     = false;
                            settings.VoltageReal  = 1.05m;
                            SelectedFrequencyItem = findFreqItemByFreq(3800);

                            settings.EDC = 30;
                            settings.TDC = 0;
                            settings.PPT = 0;
                        } },
                      { "Best of both", () =>
                        {
                            settings.FreqLock = true;
                            if (_cpuName.StartsWith("2S1"))
                            {
                                settings.VoltageReal = 1.05m;
                            }
                            else
                            {
                                settings.Voltage = -1;
                            }
                            SelectedFrequencyItem = findFreqItemByFreq(3200);

                            settings.EDC = 600;
                            settings.TDC = 0;
                            settings.PPT = 0;
                        } },
                      { "High Single-core", () =>
                        {
                            settings.FreqLock = true;
                            if (_cpuName.StartsWith("2S1"))
                            {
                                settings.VoltageReal = 1.1m;
                            }
                            else
                            {
                                settings.Voltage = -1;
                            }
                            SelectedFrequencyItem = findFreqItemByFreq(3400);

                            settings.EDC = 700;
                            settings.TDC = 700;
                            settings.PPT = 1500;
                        } }
                  } },
                { "48", new Dictionary <string, Action>
                  {
                      { "High Multi-core", () =>
                        {
                            settings.FreqLock     = true;
                            settings.VoltageReal  = 1.05m;
                            SelectedFrequencyItem = findFreqItemByFreq(3800);

                            settings.EDC = 45;
                            settings.TDC = 0;
                            settings.PPT = 0;
                        } },
                      { "Best of both", () =>
                        {
                            settings.FreqLock = false;
                            if (_cpuName.StartsWith("2S1"))
                            {
                                settings.VoltageReal = 1.05m;
                            }
                            else
                            {
                                settings.Voltage = -1;
                            }
                            SelectedFrequencyItem = findFreqItemByFreq(3300);

                            settings.EDC = 600;
                            settings.TDC = 0;
                            settings.PPT = 0;
                        } },
                      { "High Single-core", () =>
                        {
                            settings.FreqLock = false;
                            if (_cpuName.StartsWith("2S1"))
                            {
                                settings.VoltageReal = 1.1m;
                            }
                            else
                            {
                                settings.Voltage = -1;
                            }
                            SelectedFrequencyItem = findFreqItemByFreq(3500);

                            settings.EDC = 700;
                            settings.TDC = 700;
                            settings.PPT = 1500;
                        } }
                  } },
                { "32", new Dictionary <string, Action>
                  {
                      { "High Multi-core", () =>
                        {
                            settings.FreqLock = true;
                            if (_cpuName.StartsWith("2S1"))
                            {
                                settings.VoltageReal = 1.05m;
                            }
                            else
                            {
                                settings.Voltage = -1;
                            }
                            SelectedFrequencyItem = findFreqItemByFreq(3450);

                            settings.EDC = 600;
                            settings.TDC = 600;
                            settings.PPT = 1500;
                        } },
                      { "Best of both", () =>
                        {
                            settings.FreqLock = false;
                            if (_cpuName.StartsWith("2S1"))
                            {
                                settings.VoltageReal = 1.05m;
                            }
                            else
                            {
                                settings.Voltage = -1;
                            }
                            SelectedFrequencyItem = findFreqItemByFreq(3300);

                            settings.EDC = 600;
                            settings.TDC = 0;
                            settings.PPT = 0;
                        } },
                      { "High Single-core", () =>
                        {
                            settings.FreqLock = false;
                            if (_cpuName.StartsWith("2S1"))
                            {
                                settings.VoltageReal = 1.1m;
                            }
                            else
                            {
                                settings.Voltage = -1;
                            }
                            SelectedFrequencyItem = findFreqItemByFreq(3500);

                            settings.EDC = 700;
                            settings.TDC = 700;
                            settings.PPT = 1500;
                        } }
                  } }
            };
        }