control module outline
This commit is contained in:
parent
1dbab68f1d
commit
ea9cd3cf63
@ -0,0 +1,52 @@
|
|||||||
|
#include "freertos/FreeRTOS.h"
|
||||||
|
#include "freertos/task.h"
|
||||||
|
#include "esp_log.h"
|
||||||
|
#include "control.h"
|
||||||
|
#include "outputs.h"
|
||||||
|
#include "inputs.h"
|
||||||
|
#include "safety.h"
|
||||||
|
|
||||||
|
#define PERIODIC_INTERVAL 1U // run safety checks every 1sec
|
||||||
|
|
||||||
|
static const char *TAG = "smart-oil-heater-control-system-control";
|
||||||
|
|
||||||
|
void taskControl(void *pvParameters);
|
||||||
|
|
||||||
|
void initControl(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
BaseType_t taskCreated = xTaskCreate(
|
||||||
|
taskControl, // Function to implement the task
|
||||||
|
"taskControl", // Task name
|
||||||
|
4096, // Stack size (in words, not bytes)
|
||||||
|
NULL, // Parameters to the task function (none in this case)
|
||||||
|
5, // Task priority (higher number = higher priority)
|
||||||
|
NULL // Task handle (optional)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (taskCreated == pdPASS)
|
||||||
|
{
|
||||||
|
ESP_LOGI(TAG, "Task created successfully!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "Failed to create task");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void taskControl(void *pvParameters)
|
||||||
|
{
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
vTaskDelay(PERIODIC_INTERVAL * 1000U / portTICK_PERIOD_MS);
|
||||||
|
|
||||||
|
if (getSafetyState() == SAFETY_NO_ERROR)
|
||||||
|
{
|
||||||
|
// TODO: control the burner based on timetable
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ESP_LOGW(TAG, "Control not possible due to safety fault!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
void initControl(void);
|
Loading…
Reference in New Issue
Block a user