diff --git a/Modules/CPU/main.swift b/Modules/CPU/main.swift index 47adcfb3..b066e295 100644 --- a/Modules/CPU/main.swift +++ b/Modules/CPU/main.swift @@ -66,9 +66,9 @@ public class CPU: Module { self.processReader = ProcessReader() self.limitReader = LimitReader(popup: true) self.averageReader = AverageReader(popup: true) + self.temperatureReader = TemperatureReader(popup: true) #if arch(x86_64) - self.temperatureReader = TemperatureReader(popup: true) self.frequencyReader = FrequencyReader(popup: true) #endif diff --git a/Modules/CPU/readers.swift b/Modules/CPU/readers.swift index f30ec6eb..57e8b6e5 100644 --- a/Modules/CPU/readers.swift +++ b/Modules/CPU/readers.swift @@ -244,6 +244,20 @@ public class TemperatureReader: Reader { temperature = value } else if let value = SMC.shared.getValue("TC0H"), value < 110 { temperature = value + } else { + #if arch(arm64) + var total: Double = 0 + var counter: Double = 0 + ["Tp09", "Tp0T", "Tp01", "Tp05", "Tp0D", "Tp0H", "Tp0L", "Tp0P", "Tp0X", "Tp0b", ].forEach { (key: String) in + if let value = SMC.shared.getValue(key) { + total += value + counter += 1 + } + } + if total != 0 && counter != 0 { + temperature = total / counter + } + #endif } self.callback(temperature)