Fork of SerialTerminal
SerialTerminal.cpp@1:601254e70221, 2015-10-16 (annotated)
- Committer:
- madmonkeyman82
- Date:
- Fri Oct 16 15:59:39 2015 +0000
- Revision:
- 1:601254e70221
- Parent:
- 0:f7f6e3220ea0
- Child:
- 3:e171212939f3
Serial class med valgfri baudrate
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"); |
madmonkeyman82 | 0:f7f6e3220ea0 | 48 | } |