From e8848c2baabfcddeae29e503d8f8d824b5995aa3 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Wed, 17 Nov 2021 14:10:36 +0100 Subject: [PATCH] sensorsUtil: read drivetemp sensors as disk temperature sensors (#217) --- .../extension.js | 10 +++--- .../sensorsUtil.js | 32 +++++++++++-------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/freon@UshakovVasilii_Github.yahoo.com/extension.js b/freon@UshakovVasilii_Github.yahoo.com/extension.js index 8555e0a..63ed5d8 100644 --- a/freon@UshakovVasilii_Github.yahoo.com/extension.js +++ b/freon@UshakovVasilii_Github.yahoo.com/extension.js @@ -358,9 +358,9 @@ const FreonMenuButton = GObject.registerClass(class Freon_FreonMenuButton extend if (this._settings.get_boolean('show-voltage')) voltageInfo = this._utils.sensors.volt; - let driveTempInfo = []; + let driveTempInfo = this._utils.sensors.disks; if(this._utils.disks && this._utils.disks.available) { - driveTempInfo = this._utils.disks.temp; + driveTempInfo = driveTempInfo.concat(this._utils.disks.temp); } if (this._utils.liquidctl && this._utils.liquidctl.available) { @@ -381,7 +381,7 @@ const FreonMenuButton = GObject.registerClass(class Freon_FreonMenuButton extend let sum = 0; let max = 0; for (let i of tempInfo){ - if(i.temp !== null && i.temp > 0){ + if(i.temp !== null && i.temp >= 0){ total++; sum += i.temp; if (i.temp > max) @@ -424,15 +424,13 @@ const FreonMenuButton = GObject.registerClass(class Freon_FreonMenuButton extend if(sensorsTempInfo.length > 0 && this._settings.get_boolean('group-temperature')){ sum = 0; - let sensorsTempLength = 0 for (let i of sensorsTempInfo){ sum += i.temp; - if(i.temp > 0) sensorsTempLength++; } sensors.push({ type:'temperature-group', label:'temperature-group', - value: this._formatTemp(sum / sensorsTempLength)}); + value: this._formatTemp(sum / sensorsTempInfo.length)}); } for (let fan of fanInfo){ diff --git a/freon@UshakovVasilii_Github.yahoo.com/sensorsUtil.js b/freon@UshakovVasilii_Github.yahoo.com/sensorsUtil.js index 62fa580..98c84df 100644 --- a/freon@UshakovVasilii_Github.yahoo.com/sensorsUtil.js +++ b/freon@UshakovVasilii_Github.yahoo.com/sensorsUtil.js @@ -37,30 +37,26 @@ var SensorsUtil = class extends CommandLineUtil.CommandLineUtil { } get temp() { - return this._parseGenericSensorsOutput(/^temp\d+_input/, 'temp'); + return this._parseSensorsOutput(/^temp\d+_input/, 'temp', 'generic'); } get gpu() { - return this._parseGpuSensorsOutput(/^temp\d+_input/, 'temp'); + return this._parseSensorsOutput(/^temp\d+_input/, 'temp', 'gpu'); + } + + get disks() { + return this._parseSensorsOutput(/^temp\d+_input/, 'temp', 'disk'); } get rpm() { - return this._parseGenericSensorsOutput(/^fan\d+_input/, 'rpm'); + return this._parseSensorsOutput(/^fan\d+_input/, 'rpm', 'generic'); } get volt() { - return this._parseGenericSensorsOutput(/^in\d+_input/, 'volt'); + return this._parseSensorsOutput(/^in\d+_input/, 'volt', 'generic'); } - _parseGenericSensorsOutput(sensorFilter, sensorType) { - return this._parseSensorsOutput(sensorFilter, sensorType, false); - } - - _parseGpuSensorsOutput(sensorFilter, sensorType) { - return this._parseSensorsOutput(sensorFilter, sensorType, true); - } - - _parseSensorsOutput(sensorFilter, sensorType, gpuFlag) { + _parseSensorsOutput(sensorFilter, sensorType, sensorFamily) { if(!this._data) return []; @@ -68,8 +64,16 @@ var SensorsUtil = class extends CommandLineUtil.CommandLineUtil { let sensors = []; for (var chipset in data) { + let tempType = (sensorType === 'temp') + let gpuFilter = /(radeon|amdgpu|nouveau)/; - if (!data.hasOwnProperty(chipset) || (gpuFlag != gpuFilter.test(chipset) && sensorType === 'temp')) + let gpuFamily = (sensorFamily === 'gpu') + if (!data.hasOwnProperty(chipset) || (gpuFamily != gpuFilter.test(chipset) && tempType)) + continue; + + let diskFilter = /(drivetemp)/; + let diskFamily = (sensorFamily === 'disk') + if (!data.hasOwnProperty(chipset) || (diskFamily != diskFilter.test(chipset) && tempType)) continue; let chipsetSensors = data[chipset]