diff --git a/app/Command/Daemon.php b/app/Command/Daemon.php index 00381a037cfe8c93fea1e05a9611d1bcb683812a..941973d8f3f9fea49abd98191cf6cfc2b7fc502b 100644 --- a/app/Command/Daemon.php +++ b/app/Command/Daemon.php @@ -51,11 +51,17 @@ class Daemon extends AbstractCommand $rules = $fanConfig->getRules(); $this->console->setLogger($this->app->logger); $this->info('Fan Control started'); + $last = 0; // main loop while (true) { + $showStatus = false; + if (microtime(true) > $last+5) { + $last = microtime(true); + $showStatus = true; + } foreach ($rules as $rule) { - $rule->apply($this->console); + $rule->apply($this->console, $showStatus); } usleep(self::UPDATE_INTERVAL); } diff --git a/app/Model/Rule.php b/app/Model/Rule.php index 41bcaff466928217eeae50dcb748d8351f720b3d..6a017d1ba0f1b3030971ca9baefd49fb1eed20f1 100644 --- a/app/Model/Rule.php +++ b/app/Model/Rule.php @@ -13,7 +13,7 @@ abstract class Rule extends Model /** @var Sensor */ public $sensor; - abstract public function apply(Console $console); + abstract public function apply(Console $console, bool $showStatus = false); abstract public function describe(): string; } diff --git a/app/Model/Rule/CurveRule.php b/app/Model/Rule/CurveRule.php index ddf2ef784a8608e7a973cde480780bf911c2c924..4c54a1e1a5b8f23349f772e85184fbb0aecae4c1 100644 --- a/app/Model/Rule/CurveRule.php +++ b/app/Model/Rule/CurveRule.php @@ -44,7 +44,7 @@ class CurveRule extends Rule } } - public function apply(Console $console) + public function apply(Console $console, bool $showStatus = false) { $temp = $this->sensor->getTemperature(); $lastPercentage = null; @@ -67,7 +67,7 @@ class CurveRule extends Rule $this->sensor->name, $temp, $percentage, - ), Console::WEIGHT_DEBUG); + ), $showStatus ? Console::WEIGHT_LOW : Console::WEIGHT_DEBUG); $this->setSpeed($percentage); } else { $factor = ($temp - $lastLimit) / ($limit - $lastLimit); @@ -84,7 +84,7 @@ class CurveRule extends Rule $percentage, $lastPercentage, $lastPercentage - ), $speed > 30 ? Console::WEIGHT_LOW : Console::WEIGHT_DEBUG); + ), $showStatus ? Console::WEIGHT_LOW : Console::WEIGHT_DEBUG); $this->setSpeed($speed); } break;