diff --git a/index.html b/index.html index 460aca3..77a01b3 100644 --- a/index.html +++ b/index.html @@ -21,7 +21,7 @@
  • -
    + +
  • diff --git a/js/settings.js b/js/settings.js index 7453264..3f577fd 100644 --- a/js/settings.js +++ b/js/settings.js @@ -17,10 +17,64 @@ ready(function(){ } } }); -/* -stapm_limit_w_range -ppt_fast_limit_w_range -ppt_slow_limit_w_range -temperature_limit_c_range -vrm_current_m_a_range -*/ + +function getCurrentWorkingDirectory() { + return require('electron').remote.app.getAppPath(); +} + +function decimalToHexString(number) { + if (number < 0) + { + number = 0xFFFFFFFF + number + 1; + } + + return number.toString(16).toUpperCase(); +} + +function applyRyzenSettings(e) { + const settings = { + "--stapm-limit=": document.getElementById('stapm_limit_w').value, + "--fast-limit=": document.getElementById('ppt_fast_limit_w').value, + "--slow-limit=": document.getElementById('ppt_slow_limit_w').value, + "--tctl-temp=": document.getElementById('temperature_limit_c').value, + "--vrmmax-current=": document.getElementById('vrm_current_m_a').value, + }; + console.log(settings); + + const child = require('child_process').execFile; + const executablePath = getCurrentWorkingDirectory() + "\\bin\\ryzenadj.exe"; + + var parameters = []; + for (const option in settings) { + if (settings.hasOwnProperty(option)) { + let value = settings[option]; + + switch (option) { + case "--stapm-limit=": + case "--fast-limit=": + case "--slow-limit=": + value = value * 1000; + break; + + case "--tctl-temp=": + value = value; + break; + + case "--vrmmax-current=": + value = '0x' + decimalToHexString(value * 1000); + break; + + default: + break; + } + + parameters.push('' + option + value); + } + } + + child(executablePath, parameters, function(err, data) { + console.log(err) + console.log(data.toString()); + }); + +}