29 lines
832 B
C++
29 lines
832 B
C++
#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
|
|
|