Fork of SerialTerminal
SerialTerminal.cpp@3:e171212939f3, 2019-12-13 (annotated)
- 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?
User | Revision | Line number | New 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 | } |