print zone failsafe reason when enter failsafe mode
Tested:
```
Jun 24 01:52:45 bmc sel-logger[640]: cpu0_nbm critical high threshold assert. Reading=49.000000 Threshold=45.000000.
Jun 24 01:52:46 bmc swampd[2944]: Zone 2 fans, entering failsafe mode, output pwm: 100
Jun 24 01:52:46 bmc swampd[2944]: Fail sensor: cpu0_nbm, reason: Sensor threshold asserted
Jun 24 01:52:46 bmc swampd[2944]: Zone 0 fans, entering failsafe mode, output pwm: 100
Jun 24 01:52:46 bmc swampd[2944]: Fail sensor: cpu0_nbm, reason: Sensor threshold asserted
```
Signed-off-by: Harvey Wu <Harvey.Wu@quantatw.com>
Change-Id: I607d01b6bed11b00a40153db6521a9c9d23da519
diff --git a/sensors/pluggable.cpp b/sensors/pluggable.cpp
index 530737d..da0b2f8 100644
--- a/sensors/pluggable.cpp
+++ b/sensors/pluggable.cpp
@@ -39,4 +39,9 @@
return _reader->getFailed();
}
+std::string PluggableSensor::getFailReason(void)
+{
+ return _reader->getFailReason();
+}
+
} // namespace pid_control
diff --git a/sensors/pluggable.hpp b/sensors/pluggable.hpp
index bd5bc1f..d139876 100644
--- a/sensors/pluggable.hpp
+++ b/sensors/pluggable.hpp
@@ -26,6 +26,7 @@
void write(double value) override;
void write(double value, bool force, int64_t* written) override;
bool getFailed(void) override;
+ std::string getFailReason(void) override;
private:
std::unique_ptr<ReadInterface> _reader;
diff --git a/sensors/sensor.hpp b/sensors/sensor.hpp
index a135c50..9bd39b9 100644
--- a/sensors/sensor.hpp
+++ b/sensors/sensor.hpp
@@ -48,6 +48,11 @@
return false;
};
+ virtual std::string getFailReason(void)
+ {
+ return "Unimplemented";
+ }
+
std::string getName(void) const
{
return _name;