freertos/Demo/Common/FreeRTOSStreamBuf.hpp

29 lines
832 B
C++
Raw Normal View History

2024-07-13 16:33:13 +00:00
#ifndef FREERTOSSTREAMBUF_HPP
#define FREERTOSSTREAMBUF_HPP
#include <iostream>
#include <streambuf>
#include "murax.h"
// Klasa dziedzicząca z std::streambuf, przesyłająca dane do putchar
class FreeRTOSStreamBuf : public std::streambuf {
protected:
// Ta funkcja jest wywoływana, gdy bufor jest pełny lub napotkano std::endl
virtual int overflow(int c) override {
if (c != EOF) {
//putchar(c); // Wysyłanie znaku do putchar
uart_write(UART,c);
}
return c;
}
};
// Funkcja konfiguracyjna przekierowująca std::cout do FreeRTOSStreamBuf
void redirectCoutToPutchar() {
static FreeRTOSStreamBuf freertos_streambuf; // Globalny obiekt bufora
std::cout.rdbuf(&freertos_streambuf); // Ustawienie bufora jako wyjściowego dla std::cout
}
#endif // FREERTOSSTREAMBUF_HPP