feat: changed Sensor type to the Fan for the Fastest Fan. That allows showing RPM or percentage for the Fastest Fan based on the Fan value setting (#1335)

This commit is contained in:
Serhiy Mytrovtsiy
2023-03-07 20:54:35 +01:00
parent eb3b6eb681
commit 938554f738
3 changed files with 12 additions and 7 deletions

View File

@@ -33,7 +33,7 @@ internal class Popup: NSStackView, Popup_p {
}
internal func setup(_ values: [Sensor_p]?) {
guard let fans = values?.filter({ $0.type == .fan }),
guard let fans = values?.filter({ $0.type == .fan && !$0.isComputed }),
var sensors = values?.filter({ $0.type != .fan }) else {
return
}

View File

@@ -191,7 +191,12 @@ internal class SensorsReader: Reader<[Sensor_p]> {
if !fanSensors.isEmpty && fanSensors.count > 1 {
if let f = fanSensors.max(by: { $0.value < $1.value }) as? Fan {
if let idx = self.list.firstIndex(where: { $0.key == "Fastest Fan" }) {
self.list[idx].value = (f.value*100)/f.maxSpeed
if var fan = self.list[idx] as? Fan {
fan.value = f.value
fan.minSpeed = f.minSpeed
fan.maxSpeed = f.maxSpeed
self.list[idx] = fan
}
}
}
}
@@ -244,7 +249,7 @@ internal class SensorsReader: Reader<[Sensor_p]> {
}
if !fanSensors.isEmpty && fanSensors.count > 1 {
if let f = fanSensors.max(by: { $0.value < $1.value }) as? Fan {
list.append(Sensor(key: "Fastest Fan", name: "Fastest Fan", value: (f.value*100)/f.maxSpeed, group: .sensor, type: .fan, platforms: Platform.all, isComputed: true))
list.append(Fan(id: -1, key: "Fastest Fan", name: "Fastest Fan", minSpeed: f.minSpeed, maxSpeed: f.maxSpeed, value: f.value, mode: .automatic, isComputed: true))
}
}

View File

@@ -74,7 +74,7 @@ internal struct Sensor: Sensor_p {
case .current:
return "A"
case .fan:
return "%"
return "RPM"
}
}
}
@@ -126,7 +126,7 @@ internal struct Sensor: Sensor_p {
let val = value >= 9.95 ? "\(Int(round(value)))" : String(format: "%.1f", value)
return "\(val)\(unit)"
case .fan:
return "\(Int(value))\(unit)"
return "\(Int(value))"
}
}
}
@@ -154,8 +154,8 @@ internal struct Fan: Sensor_p {
let id: Int
var key: String
var name: String
let minSpeed: Double
let maxSpeed: Double
var minSpeed: Double
var maxSpeed: Double
var value: Double
var mode: FanMode