diff --git a/SensorsKit/SensorHistoryData.swift b/SensorsKit/SensorHistoryData.swift index f1b5f27..170e9df 100644 --- a/SensorsKit/SensorHistoryData.swift +++ b/SensorsKit/SensorHistoryData.swift @@ -34,12 +34,14 @@ public class SensorHistoryData: NSObject, Synchronizable case voltage case current case ambiantLight + case rpm public var description: String { switch self { case .thermal: return "thermal" + case .rpm: return "rpm" case .voltage: return "voltage" case .current: return "current" case .ambiantLight: return "ambiantLight" diff --git a/SensorsKit/Sensors.swift b/SensorsKit/Sensors.swift index 08811a0..db0f2a1 100644 --- a/SensorsKit/Sensors.swift +++ b/SensorsKit/Sensors.swift @@ -35,10 +35,13 @@ public class Sensors: NSObject private var shouldRun = true private var completion: ( () -> Void )? + private var regexFanRPM: NSRegularExpression @objc public override init() { + self.regexFanRPM = try! NSRegularExpression( pattern: "F[0-9]Ac" ) + super.init() DispatchQueue.global( qos: .background ).async @@ -114,6 +117,7 @@ public class Sensors: NSObject let all = SMC.shared.readAllKeys() all.filter { $0.keyName.hasPrefix( "T" ) }.forEach { self.addSensorHistoryData( data: $0, kind: .thermal ) } + all.filter { self.regexFanRPM.firstMatch(in: $0.keyName, range: NSMakeRange(0, $0.keyName.count)) != nil }.forEach { self.addSensorHistoryData( data: $0, kind: .rpm ) } all.filter { $0.keyName.hasPrefix( "V" ) }.forEach { self.addSensorHistoryData( data: $0, kind: .voltage ) } all.filter { $0.keyName.hasPrefix( "I" ) }.forEach { self.addSensorHistoryData( data: $0, kind: .current ) } }