Migrate MessageOutput to TaskScheduler
This commit is contained in:
parent
77779a1ed9
commit
ad1f1b690c
@ -4,18 +4,23 @@
|
||||
#include <AsyncWebSocket.h>
|
||||
#include <HardwareSerial.h>
|
||||
#include <Stream.h>
|
||||
#include <TaskSchedulerDeclarations.h>
|
||||
#include <mutex>
|
||||
|
||||
#define BUFFER_SIZE 500
|
||||
|
||||
class MessageOutputClass : public Print {
|
||||
public:
|
||||
void loop();
|
||||
void init(Scheduler* scheduler);
|
||||
size_t write(uint8_t c) override;
|
||||
size_t write(const uint8_t *buffer, size_t size) override;
|
||||
size_t write(const uint8_t* buffer, size_t size) override;
|
||||
void register_ws_output(AsyncWebSocket* output);
|
||||
|
||||
private:
|
||||
void loop();
|
||||
|
||||
Task _loopTask;
|
||||
|
||||
AsyncWebSocket* _ws = NULL;
|
||||
char _buffer[BUFFER_SIZE];
|
||||
uint16_t _buff_pos = 0;
|
||||
|
||||
@ -8,6 +8,14 @@
|
||||
|
||||
MessageOutputClass MessageOutput;
|
||||
|
||||
void MessageOutputClass::init(Scheduler* scheduler)
|
||||
{
|
||||
scheduler->addTask(_loopTask);
|
||||
_loopTask.setCallback(std::bind(&MessageOutputClass::loop, this));
|
||||
_loopTask.setIterations(TASK_FOREVER);
|
||||
_loopTask.enable();
|
||||
}
|
||||
|
||||
void MessageOutputClass::register_ws_output(AsyncWebSocket* output)
|
||||
{
|
||||
_ws = output;
|
||||
|
||||
@ -36,6 +36,7 @@ void setup()
|
||||
while (!Serial)
|
||||
yield();
|
||||
#endif
|
||||
MessageOutput.init(&scheduler);
|
||||
MessageOutput.println();
|
||||
MessageOutput.println("Starting OpenDTU");
|
||||
|
||||
@ -157,6 +158,4 @@ void loop()
|
||||
yield();
|
||||
Display.loop();
|
||||
yield();
|
||||
MessageOutput.loop();
|
||||
yield();
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user