Auto determine failsafe duty according sensor fail
- Auto determine the failsafe duty when sensor failed
example:
If PID config as follows, when "Die CPU0" sensor failed, fans in zone 0
will be set to 80%, when "DIMM0" sensor failed, since there is no
"FailSafePercent" setting in config, so set to zone's FailSafePercent
100%.
```
{
"Class": "temp",
...
...
...
"Inputs": [
"Die CPU0"
],
"Name": "CPU0 PID",
"FailSafePercent": 80.0,
...
...
...
"Type": "Pid",
"Zones": [
"Zone 0"
]
},
{
"Class": "temp",
...
...
...
"Inputs": [
"DIMM[0-9]",
"DIMM1[0-5]"
],
"Name": "DIMM CPU0 PID",
...
...
...
"Type": "Pid",
"Zones": [
"Zone 0"
]
},
{
"FailSafePercent": 100.0,
"MinThermalOutput": 0.0,
"Name": "Zone 0",
"Type": "Pid.Zone",
"ZoneIndex": 0
},
```
Tested:
If zone1 and zone2 into failsafe duty 40% =>
fan0_pwm | 1Dh | ok | 29.0 | 24.70 unspecifi
fan1_pwm | 1Eh | ok | 29.1 | 24.70 unspecifi
fan2_pwm | 1Fh | ok | 29.2 | 39.98 unspecifi
fan3_pwm | 20h | ok | 29.3 | 39.98 unspecifi
fan4_pwm | 21h | ok | 29.4 | 39.98 unspecifi
fan5_pwm | 22h | ok | 29.5 | 39.98 unspecifi
cpu0_nbm | 48h | ok | 7.79 | 36 degrees C
Let cpu0_nbm(zone0 and zone2) into failsafe which set failsafe duty as
100% =>
fan0_pwm | 1Dh | ok | 29.0 | 99.96 unspecifi
fan1_pwm | 1Eh | ok | 29.1 | 99.96 unspecifi
fan2_pwm | 1Fh | ok | 29.2 | 39.98 unspecifi
fan3_pwm | 20h | ok | 29.3 | 39.98 unspecifi
fan4_pwm | 21h | ok | 29.4 | 99.96 unspecifi
fan5_pwm | 22h | ok | 29.5 | 99.96 unspecifi
cpu0_nbm | 48h | ns | 7.79 | No Reading
Signed-off-by: Harvey Wu <Harvey.Wu@quantatw.com>
Change-Id: Iaf5ffd1853e5cd110a1ef66c7a1fd073bc894dda
diff --git a/test/zone_mock.hpp b/test/zone_mock.hpp
index 4e34890..a5f105b 100644
--- a/test/zone_mock.hpp
+++ b/test/zone_mock.hpp
@@ -41,7 +41,7 @@
MOCK_CONST_METHOD0(getManualMode, bool());
MOCK_CONST_METHOD0(getFailSafeMode, bool());
- MOCK_CONST_METHOD0(getFailSafePercent, double());
+ MOCK_METHOD0(getFailSafePercent, double());
MOCK_CONST_METHOD0(getZoneID, int64_t());
MOCK_CONST_METHOD0(getCycleIntervalTime, uint64_t());