Split InverterSettings into multiple tasks
This commit is contained in:
parent
80d534e045
commit
134fefa30e
@ -11,11 +11,11 @@ public:
|
||||
void init(Scheduler* scheduler);
|
||||
|
||||
private:
|
||||
void loop();
|
||||
void settingsLoop();
|
||||
void hoyLoop();
|
||||
|
||||
Task _loopTask;
|
||||
|
||||
uint32_t _lastUpdate = 0;
|
||||
Task _settingsTask;
|
||||
Task _hoyTask;
|
||||
};
|
||||
|
||||
extern InverterSettingsClass InverterSettings;
|
||||
|
||||
@ -88,15 +88,20 @@ void InverterSettingsClass::init(Scheduler* scheduler)
|
||||
MessageOutput.println("Invalid pin config");
|
||||
}
|
||||
|
||||
scheduler->addTask(_loopTask);
|
||||
_loopTask.setCallback(std::bind(&InverterSettingsClass::loop, this));
|
||||
_loopTask.setIterations(TASK_FOREVER);
|
||||
_loopTask.enable();
|
||||
scheduler->addTask(_hoyTask);
|
||||
_hoyTask.setCallback(std::bind(&InverterSettingsClass::hoyLoop, this));
|
||||
_hoyTask.setIterations(TASK_FOREVER);
|
||||
_hoyTask.enable();
|
||||
|
||||
scheduler->addTask(_settingsTask);
|
||||
_settingsTask.setCallback(std::bind(&InverterSettingsClass::settingsLoop, this));
|
||||
_settingsTask.setIterations(TASK_FOREVER);
|
||||
_settingsTask.setInterval(INVERTER_UPDATE_SETTINGS_INTERVAL);
|
||||
_settingsTask.enable();
|
||||
}
|
||||
|
||||
void InverterSettingsClass::loop()
|
||||
void InverterSettingsClass::settingsLoop()
|
||||
{
|
||||
if (millis() - _lastUpdate > INVERTER_UPDATE_SETTINGS_INTERVAL) {
|
||||
const CONFIG_T& config = Configuration.get();
|
||||
|
||||
for (uint8_t i = 0; i < INV_MAX_COUNT; i++) {
|
||||
@ -114,5 +119,7 @@ void InverterSettingsClass::loop()
|
||||
}
|
||||
}
|
||||
|
||||
void InverterSettingsClass::hoyLoop()
|
||||
{
|
||||
Hoymiles.loop();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user