clean up PeriodicTask so I can eventually use it with a scheduler

This commit is contained in:
geeksville
2020-04-25 10:59:40 -07:00
parent 2061706c11
commit 64f6c0f5c0
8 changed files with 114 additions and 63 deletions
+17 -17
View File
@@ -27,6 +27,7 @@
#include "NodeDB.h"
#include "Periodic.h"
#include "PowerFSM.h"
#include "Router.h"
#include "configuration.h"
#include "error.h"
#include "power.h"
@@ -225,7 +226,18 @@ const char *getDeviceName()
static MeshRadio *radio = NULL;
#include "Router.h"
static uint32_t ledBlinker()
{
static bool ledOn;
ledOn ^= 1;
setLed(ledOn);
// have a very sparse duty cycle of LED being on, unless charging, then blink 0.5Hz square wave rate to indicate that
return powerStatus.charging ? 1000 : (ledOn ? 2 : 1000);
}
Periodic ledPeriodic(ledBlinker);
void setup()
{
@@ -261,6 +273,8 @@ void setup()
digitalWrite(LED_PIN, 1 ^ LED_INVERTED); // turn on for now
#endif
ledPeriodic.setup();
// Hello
DEBUG_MSG("Meshtastic swver=%s, hwver=%s\n", xstr(APP_VERSION), xstr(HW_VERSION));
@@ -299,19 +313,6 @@ void setup()
setCPUFast(false); // 80MHz is fine for our slow peripherals
}
uint32_t ledBlinker()
{
static bool ledOn;
ledOn ^= 1;
setLed(ledOn);
// have a very sparse duty cycle of LED being on, unless charging, then blink 0.5Hz square wave rate to indicate that
return powerStatus.charging ? 1000 : (ledOn ? 2 : 1000);
}
Periodic ledPeriodic(ledBlinker);
#if 0
// Turn off for now
@@ -330,18 +331,18 @@ uint32_t axpDebugRead()
}
Periodic axpDebugOutput(axpDebugRead);
axpDebugOutput.setup();
#endif
void loop()
{
uint32_t msecstosleep = 1000 * 30; // How long can we sleep before we again need to service the main loop?
gps.loop();
router.loop();
powerFSM.run_machine();
service.loop();
ledPeriodic.loop();
periodicScheduler.loop();
// axpDebugOutput.loop();
#ifndef NO_ESP32
@@ -419,7 +420,6 @@ void loop()
screen.debug()->setPowerStatus(powerStatus);
// TODO(#4): use something based on hdop to show GPS "signal" strength.
screen.debug()->setGPSStatus(gps.hasLock() ? "ok" : ":(");
screen.loop();
// No GPS lock yet, let the OS put the main CPU in low power mode for 100ms (or until another interrupt comes in)
// i.e. don't just keep spinning in loop as fast as we can.