You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.2 KiB
C++
62 lines
1.2 KiB
C++
#include "serialstream.h"
|
|
#include "../utils/string.h"
|
|
|
|
SerialStream::SerialStream(ComPort port, BaudRate baud_rate, DataBits data_bits,
|
|
StopBits stop_bits, Parity parity)
|
|
:Serial(port, baud_rate, data_bits, stop_bits, parity) {}
|
|
|
|
SerialStream kout = SerialStream();
|
|
|
|
void SerialStream::flush() {
|
|
print(kout.buffer, kout.pos);
|
|
kout.pos = 0;
|
|
}
|
|
|
|
void SerialStream::setForeground(Color c) {
|
|
write(0x1b);
|
|
write('[');
|
|
kout << 30+c;
|
|
flush();
|
|
write('m');
|
|
}
|
|
|
|
void SerialStream::setBackground(Color c) {
|
|
write(0x1b);
|
|
write('[');
|
|
write('4');
|
|
write(c + 0x30);
|
|
write('m');
|
|
}
|
|
|
|
void SerialStream::setAttribute(Attrib a) {
|
|
write(0x1b);
|
|
write('[');
|
|
write(a + 0x30);
|
|
write('m');
|
|
}
|
|
|
|
void SerialStream::reset() {
|
|
write(0x1b);
|
|
write('c');
|
|
}
|
|
|
|
void SerialStream::setPos(int x, int y) {
|
|
//char out[] = {0x1b, '[', 0, 0, ';', 0, 0, 'H', 0};
|
|
//*this << 0x1b;
|
|
write(0x1b);
|
|
kout << '[';
|
|
kout << dec << x;
|
|
kout << ';';
|
|
kout << dec << y;
|
|
kout << 'H';
|
|
flush();
|
|
//itoa(x, &out[2], 10);
|
|
//itoa(y, &out[5], 10);
|
|
//print( out , strlen(out));
|
|
}
|
|
|
|
void SerialStream::print(char* str, int length) {
|
|
for(int i=0; i < length; i++)
|
|
write(str[i]);
|
|
}
|