From 20e2d6a3119044e7662bd11bd38e8715234c1afa Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Fri, 10 Sep 2021 15:56:59 +0200 Subject: [PATCH] feat: added a new Apple Silicon sensor groups: Hottest CPU, GPU, and SOC (#610) --- Modules/Sensors/readers.swift | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/Modules/Sensors/readers.swift b/Modules/Sensors/readers.swift index 9956e3f6..7ca2d6a8 100644 --- a/Modules/Sensors/readers.swift +++ b/Modules/Sensors/readers.swift @@ -134,7 +134,7 @@ internal class AppleSilicon_SensorsReader: SensorsReader { } }).sorted { $0.key.lowercased() < $1.key.lowercased() } - self.calculateAverage() + self.calculateAverageAndHottest() } public override func read() { @@ -142,7 +142,7 @@ internal class AppleSilicon_SensorsReader: SensorsReader { self.fetch(type: type) } - self.calculateAverage() + self.calculateAverageAndHottest() self.callback(self.list) } @@ -235,7 +235,7 @@ internal class AppleSilicon_SensorsReader: SensorsReader { } } - private func calculateAverage() { + private func calculateAverageAndHottest() { let cpuSensors = self.list.filter({ $0.key.hasPrefix("pACC MTR Temp") || $0.key.hasPrefix("eACC MTR Temp") }).map{ $0.value } let gpuSensors = self.list.filter({ $0.key.hasPrefix("GPU MTR Temp") }).map{ $0.value } let socSensors = self.list.filter({ $0.key.hasPrefix("SOC MTR Temp") }).map{ $0.value } @@ -248,6 +248,15 @@ internal class AppleSilicon_SensorsReader: SensorsReader { group: .system, prepend: true ) + if let max = socSensors.max() { + self.upsert( + key: "Hottest SOC", + value: max, + type: .temperature, + group: .system, + prepend: true + ) + } } if !gpuSensors.isEmpty { self.upsert( @@ -257,6 +266,15 @@ internal class AppleSilicon_SensorsReader: SensorsReader { group: .GPU, prepend: true ) + if let max = gpuSensors.max() { + self.upsert( + key: "Hottest GPU", + value: max, + type: .temperature, + group: .system, + prepend: true + ) + } } if !cpuSensors.isEmpty { self.upsert( @@ -266,6 +284,15 @@ internal class AppleSilicon_SensorsReader: SensorsReader { group: .CPU, prepend: true ) + if let max = cpuSensors.max() { + self.upsert( + key: "Hottest CPU", + value: max, + type: .temperature, + group: .system, + prepend: true + ) + } } } }