SerialTerminal.cpp@0:f7f6e3220ea0, 2015-10-16 (annotated)
- Committer:
- madmonkeyman82
- Date:
- Fri Oct 16 15:39:16 2015 +0000
- Revision:
- 0:f7f6e3220ea0
- Child:
- 1:601254e70221
Serial class with baud speed options
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 | 0:f7f6e3220ea0 | 5 | SerialTerminal::SerialTerminal(PinName tx, PinName rx, int Baudrate) : Serial(tx, rx) {} |
madmonkeyman82 | 0:f7f6e3220ea0 | 6 | |
madmonkeyman82 | 0:f7f6e3220ea0 | 7 | void SerialTerminal::cls() { |
madmonkeyman82 | 0:f7f6e3220ea0 | 8 | this->printf("\033[2J"); |
madmonkeyman82 | 0:f7f6e3220ea0 | 9 | } |
madmonkeyman82 | 0:f7f6e3220ea0 | 10 | |
madmonkeyman82 | 0:f7f6e3220ea0 | 11 | void SerialTerminal::locate(int column, int row) { |
madmonkeyman82 | 0:f7f6e3220ea0 | 12 | // Cursor Home <ESC>[{ROW};{COLUMN}H |
madmonkeyman82 | 0:f7f6e3220ea0 | 13 | this->printf("\033[%d;%dH%c", row + 1, column + 1); |
madmonkeyman82 | 0:f7f6e3220ea0 | 14 | } |
madmonkeyman82 | 0:f7f6e3220ea0 | 15 | |
madmonkeyman82 | 0:f7f6e3220ea0 | 16 | static int rgb888tobgr111(int colour) { |
madmonkeyman82 | 0:f7f6e3220ea0 | 17 | int r = (colour >> 23) & 1; |
madmonkeyman82 | 0:f7f6e3220ea0 | 18 | int g = (colour >> 15) & 1; |
madmonkeyman82 | 0:f7f6e3220ea0 | 19 | int b = (colour >> 7) & 1; |
madmonkeyman82 | 0:f7f6e3220ea0 | 20 | return (b << 2) | (g << 1) | (r << 0); |
madmonkeyman82 | 0:f7f6e3220ea0 | 21 | } |
madmonkeyman82 | 0:f7f6e3220ea0 | 22 | |
madmonkeyman82 | 0:f7f6e3220ea0 | 23 | void SerialTerminal::foreground(int colour) { |
madmonkeyman82 | 0:f7f6e3220ea0 | 24 | // Set Attribute Mode <ESC>[{n}m |
madmonkeyman82 | 0:f7f6e3220ea0 | 25 | // Foreground Colours : 30 + bgr |
madmonkeyman82 | 0:f7f6e3220ea0 | 26 | int c = 30 + rgb888tobgr111(colour); |
madmonkeyman82 | 0:f7f6e3220ea0 | 27 | this->printf("\033[%dm", c); |
madmonkeyman82 | 0:f7f6e3220ea0 | 28 | } |
madmonkeyman82 | 0:f7f6e3220ea0 | 29 | |
madmonkeyman82 | 0:f7f6e3220ea0 | 30 | void SerialTerminal::background(int colour) { |
madmonkeyman82 | 0:f7f6e3220ea0 | 31 | // Set Attribute Mode <ESC>[{n}m |
madmonkeyman82 | 0:f7f6e3220ea0 | 32 | // Background Colours : 40 + bgr |
madmonkeyman82 | 0:f7f6e3220ea0 | 33 | int c = 40 + rgb888tobgr111(colour); |
madmonkeyman82 | 0:f7f6e3220ea0 | 34 | this->printf("\033[%dm", c); |
madmonkeyman82 | 0:f7f6e3220ea0 | 35 | } |
madmonkeyman82 | 0:f7f6e3220ea0 | 36 | |
madmonkeyman82 | 0:f7f6e3220ea0 | 37 | void SerialTerminal::hideCursor() { |
madmonkeyman82 | 0:f7f6e3220ea0 | 38 | //Hide cursor from terminal |
madmonkeyman82 | 0:f7f6e3220ea0 | 39 | this->printf("\033[?25l"); |
madmonkeyman82 | 0:f7f6e3220ea0 | 40 | } |
madmonkeyman82 | 0:f7f6e3220ea0 | 41 | |
madmonkeyman82 | 0:f7f6e3220ea0 | 42 | void SerialTerminal::showCursor() { |
madmonkeyman82 | 0:f7f6e3220ea0 | 43 | //Hide cursor from terminal |
madmonkeyman82 | 0:f7f6e3220ea0 | 44 | this->printf("\33[[?25h"); |
madmonkeyman82 | 0:f7f6e3220ea0 | 45 | } |