Add a class diagram. Still needs some details. Refactor to better respect SOLID principles. Housekeeping, move and rename classes/files.
72 lines
1.1 KiB
Plaintext
72 lines
1.1 KiB
Plaintext
@startuml
|
|
interface Sensor {
|
|
+ {abstract} int Value()
|
|
}
|
|
|
|
class LMSensor {
|
|
- Identifier: string
|
|
|
|
+ int Value()
|
|
}
|
|
|
|
class GPUSensor {
|
|
+ int Value()
|
|
}
|
|
|
|
class HWMONFan {
|
|
- Identifier: string
|
|
- RPMSensor: Sensor
|
|
- PWMControl: PWMControl
|
|
|
|
+ int RPM()
|
|
+ void PWM(value: int)
|
|
}
|
|
|
|
class PWMControl {
|
|
+ void PWM(value: int)
|
|
+ int PWM()
|
|
}
|
|
|
|
class LMSensorsFacade
|
|
{
|
|
+ List<Sensor> RPMSensors()
|
|
+ List<Sensor> TemperatureSensors()
|
|
}
|
|
|
|
class GPUSensorsFacade
|
|
{
|
|
+ List<Sensor> TemperatureSensors()
|
|
}
|
|
|
|
class SensorManager
|
|
{
|
|
- LMSensorsFacade
|
|
- GPUSensorsFacade
|
|
|
|
+ List<Sensor> RPMSensors()
|
|
+ List<Sensor> TemperatureSensors()
|
|
}
|
|
|
|
class FanGenerator
|
|
{
|
|
+ FanList FindFans(List<RPMSensor>, List<PWMControl>)
|
|
}
|
|
|
|
HWMONFan -- Sensor
|
|
HWMONFan -- PWMControl
|
|
|
|
Sensor <|-- LMSensor
|
|
Sensor <|-- GPUSensor
|
|
|
|
SensorManager - Sensor
|
|
|
|
LMSensor -- LMSensorsFacade
|
|
GPUSensor -- GPUSensorsFacade
|
|
LMSensorsFacade -- SensorManager
|
|
GPUSensorsFacade -- SensorManager
|
|
|
|
FanGenerator - HWMONFan
|
|
FanGenerator - SensorManager
|
|
FanGenerator - PWMControl
|
|
@enduml
|