feat: add mode to the fan (#152)

This commit is contained in:
Serhiy Mytrovtsiy
2021-03-18 18:52:25 +01:00
parent ad21440eb3
commit 5d0dc75b2f
2 changed files with 20 additions and 1 deletions

View File

@@ -19,6 +19,7 @@ public struct Fan {
public let minSpeed: Double
public let maxSpeed: Double
public var value: Double
public var mode: FanMode
var state: Bool {
get {

View File

@@ -33,7 +33,8 @@ internal class FansReader: Reader<[Fan]> {
name: smc.pointee.getStringValue("F\(i)ID") ?? "Fan #\(i)",
minSpeed: smc.pointee.getValue("F\(i)Mn") ?? 1,
maxSpeed: smc.pointee.getValue("F\(i)Mx") ?? 1,
value: smc.pointee.getValue("F\(i)Ac") ?? 0
value: smc.pointee.getValue("F\(i)Ac") ?? 0,
mode: self.getFanMode(i)
))
}
}
@@ -44,4 +45,21 @@ internal class FansReader: Reader<[Fan]> {
}
self.callback(self.list)
}
private func getFanMode(_ id: Int) -> FanMode {
let fansMode: Int = Int(self.smc.pointee.getValue("FS! ") ?? 0)
var mode: FanMode = .automatic
if fansMode == 0 {
mode = .automatic
} else if fansMode == 3 {
mode = .forced
} else if fansMode == 1 && id == 0 {
mode = .forced
} else if fansMode == 2 && id == 1 {
mode = .forced
}
return mode
}
}