Fork of SerialTerminal

Dependents:   IMP_projekt

Committer:
lpiwowar
Date:
Fri Dec 13 10:10:41 2019 +0000
Revision:
3:e171212939f3
Parent:
1:601254e70221
Add functions for cleaning screen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
madmonkeyman82 0:f7f6e3220ea0 1 #include "SerialTerminal.h"
madmonkeyman82 0:f7f6e3220ea0 2
madmonkeyman82 0:f7f6e3220ea0 3 #include "mbed.h"
madmonkeyman82 0:f7f6e3220ea0 4
madmonkeyman82 1:601254e70221 5 SerialTerminal::SerialTerminal(PinName tx, PinName rx, int Baudrate) : Serial(tx, rx)
madmonkeyman82 1:601254e70221 6 {
madmonkeyman82 1:601254e70221 7 this->baud(Baudrate);
madmonkeyman82 1:601254e70221 8 }
madmonkeyman82 0:f7f6e3220ea0 9
madmonkeyman82 0:f7f6e3220ea0 10 void SerialTerminal::cls() {
madmonkeyman82 0:f7f6e3220ea0 11 this->printf("\033[2J");
madmonkeyman82 0:f7f6e3220ea0 12 }
madmonkeyman82 0:f7f6e3220ea0 13
madmonkeyman82 0:f7f6e3220ea0 14 void SerialTerminal::locate(int column, int row) {
madmonkeyman82 0:f7f6e3220ea0 15 // Cursor Home <ESC>[{ROW};{COLUMN}H
madmonkeyman82 0:f7f6e3220ea0 16 this->printf("\033[%d;%dH%c", row + 1, column + 1);
madmonkeyman82 0:f7f6e3220ea0 17 }
madmonkeyman82 0:f7f6e3220ea0 18
madmonkeyman82 0:f7f6e3220ea0 19 static int rgb888tobgr111(int colour) {
madmonkeyman82 0:f7f6e3220ea0 20 int r = (colour >> 23) & 1;
madmonkeyman82 0:f7f6e3220ea0 21 int g = (colour >> 15) & 1;
madmonkeyman82 0:f7f6e3220ea0 22 int b = (colour >> 7) & 1;
madmonkeyman82 0:f7f6e3220ea0 23 return (b << 2) | (g << 1) | (r << 0);
madmonkeyman82 0:f7f6e3220ea0 24 }
madmonkeyman82 0:f7f6e3220ea0 25
madmonkeyman82 0:f7f6e3220ea0 26 void SerialTerminal::foreground(int colour) {
madmonkeyman82 0:f7f6e3220ea0 27 // Set Attribute Mode <ESC>[{n}m
madmonkeyman82 0:f7f6e3220ea0 28 // Foreground Colours : 30 + bgr
madmonkeyman82 0:f7f6e3220ea0 29 int c = 30 + rgb888tobgr111(colour);
madmonkeyman82 0:f7f6e3220ea0 30 this->printf("\033[%dm", c);
madmonkeyman82 0:f7f6e3220ea0 31 }
madmonkeyman82 0:f7f6e3220ea0 32
madmonkeyman82 0:f7f6e3220ea0 33 void SerialTerminal::background(int colour) {
madmonkeyman82 0:f7f6e3220ea0 34 // Set Attribute Mode <ESC>[{n}m
madmonkeyman82 0:f7f6e3220ea0 35 // Background Colours : 40 + bgr
madmonkeyman82 0:f7f6e3220ea0 36 int c = 40 + rgb888tobgr111(colour);
madmonkeyman82 0:f7f6e3220ea0 37 this->printf("\033[%dm", c);
madmonkeyman82 0:f7f6e3220ea0 38 }
madmonkeyman82 0:f7f6e3220ea0 39
madmonkeyman82 0:f7f6e3220ea0 40 void SerialTerminal::hideCursor() {
madmonkeyman82 0:f7f6e3220ea0 41 //Hide cursor from terminal
madmonkeyman82 0:f7f6e3220ea0 42 this->printf("\033[?25l");
madmonkeyman82 0:f7f6e3220ea0 43 }
madmonkeyman82 0:f7f6e3220ea0 44
madmonkeyman82 0:f7f6e3220ea0 45 void SerialTerminal::showCursor() {
madmonkeyman82 0:f7f6e3220ea0 46 //Hide cursor from terminal
madmonkeyman82 0:f7f6e3220ea0 47 this->printf("\33[[?25h");
lpiwowar 3:e171212939f3 48 }
lpiwowar 3:e171212939f3 49
lpiwowar 3:e171212939f3 50 void SerialTerminal::move_cursor_up(int step_num) {
lpiwowar 3:e171212939f3 51 this->printf("\033[%dA", step_num);
lpiwowar 3:e171212939f3 52 }
lpiwowar 3:e171212939f3 53
lpiwowar 3:e171212939f3 54 void SerialTerminal::move_cursor_down(int step_num) {
lpiwowar 3:e171212939f3 55 this->printf("\033[%dB", step_num);
lpiwowar 3:e171212939f3 56 }
lpiwowar 3:e171212939f3 57
lpiwowar 3:e171212939f3 58 void SerialTerminal::move_cursor_right(int step_num) {
lpiwowar 3:e171212939f3 59 this->printf("\033[%dC", step_num);
lpiwowar 3:e171212939f3 60 }
lpiwowar 3:e171212939f3 61
lpiwowar 3:e171212939f3 62 void SerialTerminal::move_cursor_left(int step_num) {
lpiwowar 3:e171212939f3 63 this->printf("\033[%dD", step_num);
lpiwowar 3:e171212939f3 64 }
lpiwowar 3:e171212939f3 65
lpiwowar 3:e171212939f3 66 void SerialTerminal::hide_cursor() {
lpiwowar 3:e171212939f3 67 this->printf("\e[?25l");
lpiwowar 3:e171212939f3 68 }
lpiwowar 3:e171212939f3 69
lpiwowar 3:e171212939f3 70 void SerialTerminal::show_cursor() {
lpiwowar 3:e171212939f3 71 this->printf("\e[?25h");
madmonkeyman82 0:f7f6e3220ea0 72 }