Adding diagnostics
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#include "diagnostics_task.h"
|
||||
|
||||
DiagnosticsTask::DiagnosticsTask(
|
||||
DiagnosticsState& state
|
||||
)
|
||||
:
|
||||
diagnostics(state)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void DiagnosticsTask::start()
|
||||
{
|
||||
|
||||
xTaskCreatePinnedToCore(
|
||||
taskEntry,
|
||||
"DiagnosticsTask",
|
||||
4096,
|
||||
this,
|
||||
1,
|
||||
&taskHandle,
|
||||
1
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
void DiagnosticsTask::taskEntry(void* parameter)
|
||||
{
|
||||
|
||||
DiagnosticsTask* task =
|
||||
static_cast<DiagnosticsTask*>(parameter);
|
||||
|
||||
|
||||
task->run();
|
||||
}
|
||||
|
||||
|
||||
void DiagnosticsTask::run()
|
||||
{
|
||||
|
||||
TickType_t lastWake =
|
||||
xTaskGetTickCount();
|
||||
|
||||
while(true)
|
||||
{
|
||||
diagnostics.update();
|
||||
|
||||
vTaskDelayUntil(
|
||||
&lastWake,
|
||||
pdMS_TO_TICKS(1000)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
#include "../core/diagnostics_state.h"
|
||||
|
||||
|
||||
class DiagnosticsTask
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
DiagnosticsTask(
|
||||
DiagnosticsState& state
|
||||
);
|
||||
|
||||
void start();
|
||||
|
||||
private:
|
||||
|
||||
static void taskEntry(void* parameter);
|
||||
void run();
|
||||
|
||||
DiagnosticsState& diagnostics;
|
||||
|
||||
TaskHandle_t taskHandle = nullptr;
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user