summaryrefslogtreecommitdiffstats
path: root/monitor/fan.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'monitor/fan.cpp')
-rw-r--r--monitor/fan.cpp48
1 files changed, 25 insertions, 23 deletions
diff --git a/monitor/fan.cpp b/monitor/fan.cpp
index 9d2593f..b1aa233 100644
--- a/monitor/fan.cpp
+++ b/monitor/fan.cpp
@@ -40,34 +40,36 @@ Fan::Fan(Mode mode,
_numSensorFailsForNonFunc(std::get<numSensorFailsForNonfuncField>(def)),
_trustManager(trust)
{
+ // Setup tach sensors for monitoring
+ auto& sensors = std::get<sensorListField>(def);
+ for (auto& s : sensors)
+ {
+ try
+ {
+ _sensors.emplace_back(
+ std::make_unique<TachSensor>(
+ mode,
+ bus,
+ *this,
+ std::get<sensorNameField>(s),
+ std::get<hasTargetField>(s),
+ std::get<timeoutField>(def),
+ events));
+
+ _trustManager->registerSensor(_sensors.back());
+ }
+ catch (InvalidSensorError& e)
+ {
+
+ }
+ }
+
//Start from a known state of functional
updateInventory(true);
- // Setup tach sensors for monitoring when in monitor mode
+ // Check current tach state when entering monitor mode
if (mode != Mode::init)
{
- auto& sensors = std::get<sensorListField>(def);
- for (auto& s : sensors)
- {
- try
- {
- _sensors.emplace_back(
- std::make_unique<TachSensor>(
- bus,
- *this,
- std::get<sensorNameField>(s),
- std::get<hasTargetField>(s),
- std::get<timeoutField>(def),
- events));
-
- _trustManager->registerSensor(_sensors.back());
- }
- catch (InvalidSensorError& e)
- {
-
- }
- }
-
//The TachSensors will now have already read the input
//and target values, so check them.
tachChanged();
OpenPOWER on IntegriCloud