Adding diagnostics

This commit is contained in:
2026-08-09 09:20:38 -06:00
parent 5b6b810efd
commit e411c934d5
8 changed files with 216 additions and 10 deletions
+54
View File
@@ -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)
);
}
}
+28
View File
@@ -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;
};