cpu data speed, ... numeric

This commit is contained in:
Sebastian Hildebrandt 2021-01-08 14:56:25 +01:00
parent 8d01889ac2
commit b118beb04d
2 changed files with 36 additions and 39 deletions

View File

@ -29,7 +29,7 @@ const _openbsd = (_platform === 'openbsd');
const _netbsd = (_platform === 'netbsd'); const _netbsd = (_platform === 'netbsd');
const _sunos = (_platform === 'sunos'); const _sunos = (_platform === 'sunos');
let _cpu_speed = '0.00'; let _cpu_speed = 0;
let _current_cpu = { let _current_cpu = {
user: 0, user: 0,
nice: 0, nice: 0,
@ -500,7 +500,7 @@ function cpuBrandManufacturer(res) {
} }
function getAMDSpeed(brand) { function getAMDSpeed(brand) {
let result = '0.00'; let result = '0';
for (let key in AMDBaseFrequencies) { for (let key in AMDBaseFrequencies) {
if ({}.hasOwnProperty.call(AMDBaseFrequencies, key)) { if ({}.hasOwnProperty.call(AMDBaseFrequencies, key)) {
let parts = key.split('|'); let parts = key.split('|');
@ -515,7 +515,7 @@ function getAMDSpeed(brand) {
} }
} }
} }
return result; return parseFloat(result);
} }
// -------------------------- // --------------------------
@ -535,9 +535,9 @@ function getCpu() {
stepping: '', stepping: '',
revision: '', revision: '',
voltage: '', voltage: '',
speed: '0.00', speed: 0,
speedmin: '', speedMin: 0,
speedmax: '', speedMax: 0,
governor: '', governor: '',
cores: util.cores(), cores: util.cores(),
physicalCores: util.cores(), physicalCores: util.cores(),
@ -556,16 +556,16 @@ function getCpu() {
const modelline = util.getValue(lines, 'machdep.cpu.brand_string'); const modelline = util.getValue(lines, 'machdep.cpu.brand_string');
const modellineParts = modelline.split('@'); const modellineParts = modelline.split('@');
result.brand = modellineParts[0].trim(); result.brand = modellineParts[0].trim();
result.speed = modellineParts[1] ? modellineParts[1].trim() : '0'; const speed = modellineParts[1] ? modellineParts[1].trim() : '0';
result.speed = parseFloat(result.speed.replace(/GHz+/g, '')).toFixed(2); result.speed = parseFloat(speed.replace(/GHz+/g, ''));
let tbFrequency = util.getValue(lines, 'hw.tbfrequency') / 1000000000.0; let tbFrequency = util.getValue(lines, 'hw.tbfrequency') / 1000000000.0;
tbFrequency = tbFrequency < 0.1 ? tbFrequency * 100 : tbFrequency; tbFrequency = tbFrequency < 0.1 ? tbFrequency * 100 : tbFrequency;
result.speed = result.speed === '0.00' ? tbFrequency.toFixed(2) : result.speed; result.speed = result.speed === 0 ? tbFrequency : result.speed;
_cpu_speed = result.speed; _cpu_speed = result.speed;
result = cpuBrandManufacturer(result); result = cpuBrandManufacturer(result);
result.speedmin = util.getValue(lines, 'hw.cpufrequency_min') ? (util.getValue(lines, 'hw.cpufrequency_min') / 1000000000.0).toFixed(2) : result.speed; result.speedMin = util.getValue(lines, 'hw.cpufrequency_min') ? (util.getValue(lines, 'hw.cpufrequency_min') / 1000000000.0) : result.speed;
result.speedmax = util.getValue(lines, 'hw.cpufrequency_max') ? (util.getValue(lines, 'hw.cpufrequency_max') / 1000000000.0).toFixed(2) : result.speed; result.speedMax = util.getValue(lines, 'hw.cpufrequency_max') ? (util.getValue(lines, 'hw.cpufrequency_max') / 1000000000.0) : result.speed;
result.vendor = util.getValue(lines, 'machdep.cpu.vendor') || 'Apple'; result.vendor = util.getValue(lines, 'machdep.cpu.vendor') || 'Apple';
result.family = util.getValue(lines, 'machdep.cpu.family') || util.getValue(lines, 'hw.cpufamily'); result.family = util.getValue(lines, 'machdep.cpu.family') || util.getValue(lines, 'hw.cpufamily');
result.model = util.getValue(lines, 'machdep.cpu.model'); result.model = util.getValue(lines, 'machdep.cpu.model');
@ -605,19 +605,17 @@ function getCpu() {
modelline = util.getValue(lines, 'model name') || modelline; modelline = util.getValue(lines, 'model name') || modelline;
const modellineParts = modelline.split('@'); const modellineParts = modelline.split('@');
result.brand = modellineParts[0].trim(); result.brand = modellineParts[0].trim();
result.speed = modellineParts[1] ? parseFloat(modellineParts[1].trim()).toFixed(2) : '0.00'; result.speed = modellineParts[1] ? parseFloat(modellineParts[1].trim()) : 0;
if (result.speed === '0.00' && (result.brand.indexOf('AMD') > -1 || result.brand.toLowerCase().indexOf('ryzen') > -1)) { if (result.speed === 0 && (result.brand.indexOf('AMD') > -1 || result.brand.toLowerCase().indexOf('ryzen') > -1)) {
result.speed = getAMDSpeed(result.brand); result.speed = getAMDSpeed(result.brand);
} }
if (result.speed === '0.00') { if (result.speed === 0) {
let current = getCpuCurrentSpeedSync(); const current = getCpuCurrentSpeedSync();
if (current.avg !== 0) result.speed = current.avg.toFixed(2); if (current.avg !== 0) result.speed = current.avg;
} }
_cpu_speed = result.speed; _cpu_speed = result.speed;
result.speedmin = Math.round(parseFloat(util.getValue(lines, 'cpu min mhz').replace(/,/g, '.')) / 10.0) / 100; result.speedMin = Math.round(parseFloat(util.getValue(lines, 'cpu min mhz').replace(/,/g, '.')) / 10.0) / 100;
result.speedmin = result.speedmin ? parseFloat(result.speedmin).toFixed(2) : ''; result.speedMax = Math.round(parseFloat(util.getValue(lines, 'cpu max mhz').replace(/,/g, '.')) / 10.0) / 100;
result.speedmax = Math.round(parseFloat(util.getValue(lines, 'cpu max mhz').replace(/,/g, '.')) / 10.0) / 100;
result.speedmax = result.speedmax ? parseFloat(result.speedmax).toFixed(2) : '';
result = cpuBrandManufacturer(result); result = cpuBrandManufacturer(result);
result.vendor = util.getValue(lines, 'vendor id'); result.vendor = util.getValue(lines, 'vendor id');
@ -685,18 +683,17 @@ function getCpu() {
lines = processor.split('\n'); lines = processor.split('\n');
} }
result.brand = modelline.split('@')[0].trim(); result.brand = modelline.split('@')[0].trim();
result.speed = modelline.split('@')[1] ? parseFloat(modelline.split('@')[1].trim()).toFixed(2) : '0.00'; result.speed = modelline.split('@')[1] ? parseFloat(modelline.split('@')[1].trim()) : 0;
if (result.speed === '0.00' && (result.brand.indexOf('AMD') > -1 || result.brand.toLowerCase().indexOf('ryzen') > -1)) { if (result.speed === 0 && (result.brand.indexOf('AMD') > -1 || result.brand.toLowerCase().indexOf('ryzen') > -1)) {
result.speed = getAMDSpeed(result.brand); result.speed = getAMDSpeed(result.brand);
} }
if (result.speed === '0.00') { if (result.speed === 0) {
let current = getCpuCurrentSpeedSync(); const current = getCpuCurrentSpeedSync();
if (current.avg !== 0) result.speed = current.avg.toFixed(2); if (current.avg !== 0) result.speed = current.avg;
} }
_cpu_speed = result.speed; _cpu_speed = result.speed;
result.speedmin = ''; result.speedMin = result.speed;
result.speedmax = Math.round(parseFloat(util.getValue(lines, 'max speed').replace(/Mhz/g, '')) / 10.0) / 100; result.speedMax = Math.round(parseFloat(util.getValue(lines, 'max speed').replace(/Mhz/g, '')) / 10.0) / 100;
result.speedmax = result.speedmax ? parseFloat(result.speedmax).toFixed(2) : '';
result = cpuBrandManufacturer(result); result = cpuBrandManufacturer(result);
result.vendor = util.getValue(lines, 'manufacturer'); result.vendor = util.getValue(lines, 'manufacturer');
@ -751,11 +748,11 @@ function getCpu() {
let name = util.getValue(lines, 'name', '=') || ''; let name = util.getValue(lines, 'name', '=') || '';
if (name.indexOf('@') >= 0) { if (name.indexOf('@') >= 0) {
result.brand = name.split('@')[0].trim(); result.brand = name.split('@')[0].trim();
result.speed = name.split('@')[1] ? parseFloat(name.split('@')[1].trim()).toFixed(2) : '0.00'; result.speed = name.split('@')[1] ? parseFloat(name.split('@')[1].trim()) : 0;
_cpu_speed = result.speed; _cpu_speed = result.speed;
} else { } else {
result.brand = name.trim(); result.brand = name.trim();
result.speed = '0.00'; result.speed = 0;
} }
result = cpuBrandManufacturer(result); result = cpuBrandManufacturer(result);
result.revision = util.getValue(lines, 'revision', '='); result.revision = util.getValue(lines, 'revision', '=');
@ -766,14 +763,14 @@ function getCpu() {
if (result.cache.l2) { result.cache.l2 = parseInt(result.cache.l2, 10) * 1024; } if (result.cache.l2) { result.cache.l2 = parseInt(result.cache.l2, 10) * 1024; }
if (result.cache.l3) { result.cache.l3 = parseInt(result.cache.l3, 10) * 1024; } if (result.cache.l3) { result.cache.l3 = parseInt(result.cache.l3, 10) * 1024; }
result.vendor = util.getValue(lines, 'manufacturer', '='); result.vendor = util.getValue(lines, 'manufacturer', '=');
result.speedmax = Math.round(parseFloat(util.getValue(lines, 'maxclockspeed', '=').replace(/,/g, '.')) / 10.0) / 100; result.speedMax = Math.round(parseFloat(util.getValue(lines, 'maxclockspeed', '=').replace(/,/g, '.')) / 10.0) / 100;
result.speedmax = result.speedmax ? parseFloat(result.speedmax).toFixed(2) : ''; if (result.speed === 0 && (result.brand.indexOf('AMD') > -1 || result.brand.toLowerCase().indexOf('ryzen') > -1)) {
if (result.speed === '0.00' && (result.brand.indexOf('AMD') > -1 || result.brand.toLowerCase().indexOf('ryzen') > -1)) {
result.speed = getAMDSpeed(result.brand); result.speed = getAMDSpeed(result.brand);
} }
if (result.speed === '0.00') { if (result.speed === 0) {
result.speed = result.speedmax; result.speed = result.speedMax;
} }
result.speedMin = result.speed;
let description = util.getValue(lines, 'description', '=').split(' '); let description = util.getValue(lines, 'description', '=').split(' ');
for (let i = 0; i < description.length; i++) { for (let i = 0; i < description.length; i++) {
@ -897,7 +894,7 @@ function cpuCurrentspeed(callback) {
return new Promise((resolve) => { return new Promise((resolve) => {
process.nextTick(() => { process.nextTick(() => {
let result = getCpuCurrentSpeedSync(); let result = getCpuCurrentSpeedSync();
if (result.avg === 0 && _cpu_speed !== '0.00') { if (result.avg === 0 && _cpu_speed !== 0) {
const currCpuSpeed = parseFloat(_cpu_speed); const currCpuSpeed = parseFloat(_cpu_speed);
result = { result = {
min: currCpuSpeed, min: currCpuSpeed,

6
lib/index.d.ts vendored
View File

@ -69,9 +69,9 @@ export namespace Systeminformation {
stepping: string; stepping: string;
revision: string; revision: string;
voltage: string; voltage: string;
speed: string; speed: number;
speedmin: string; speedMin: number;
speedmax: string; speedMax: number;
governor: string; governor: string;
cores: number; cores: number;
physicalCores: number; physicalCores: number;