Files
F411VE-ILI9341/Core/Src/Components/SSL_Display.hpp
2024-02-12 17:59:32 -03:00

52 lines
1.5 KiB
C++

/*
* SSL_Display.hpp
*
* Created on: Feb 11, 2024
* Author: Gabriel
*/
#ifndef SRC_COMPONENTS_SSL_DISPLAY_HPP_
#define SRC_COMPONENTS_SSL_DISPLAY_HPP_
#include <FreeRTOS.h>
#include <queue.h>
#include "ILI9341.hpp"
#include "SSL_GFX.hpp"
class SSL_Display {
public:
SSL_Display(ILI9341* hDisplay);
virtual ~SSL_Display();
int32_t init();
int32_t update(RobotStatus status);
private:
static void taskDisplayStatic(SSL_Display* obj);
void taskDisplay();
static constexpr size_t taskDisplayStackSize = 128;
static constexpr size_t queueDisplayLength = 12;
ILI9341* hDisplay;
SSL_GFX robots[12] = {
SSL_GFX(hDisplay, 0, 0, buffer, 19200),
SSL_GFX(hDisplay, 80, 0, buffer, 19200),
SSL_GFX(hDisplay, 160, 0, buffer, 19200),
SSL_GFX(hDisplay, 0, 80, buffer, 19200),
SSL_GFX(hDisplay, 80, 80, buffer, 19200),
SSL_GFX(hDisplay, 160, 80, buffer, 19200),
SSL_GFX(hDisplay, 0, 160, buffer, 19200),
SSL_GFX(hDisplay, 80, 160, buffer, 19200),
SSL_GFX(hDisplay, 160, 160, buffer, 19200),
SSL_GFX(hDisplay, 0, 240, buffer, 19200),
SSL_GFX(hDisplay, 80, 240, buffer, 19200),
SSL_GFX(hDisplay, 160, 240, buffer, 19200),
};
uint8_t buffer[80][80][3];
TaskHandle_t hTaskDisplay;
StackType_t taskDisplayStack[taskDisplayStackSize];
StaticTask_t taskDisplayTCB;
QueueHandle_t hQueueDisplay;
uint8_t queueDisplayStorage[queueDisplayLength*sizeof(RobotStatus)];
StaticQueue_t queueDisplayStructure;
};
#endif /* SRC_COMPONENTS_SSL_DISPLAY_HPP_ */