James Grant
/
NewMobileLCD
Terminal.cpp@0:9b63dfb366dd, 2010-07-02 (annotated)
- Committer:
- jigr69
- Date:
- Fri Jul 02 15:36:51 2010 +0000
- Revision:
- 0:9b63dfb366dd
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jigr69 | 0:9b63dfb366dd | 1 | /* mbed ANSI/VT100 Terminal Library |
jigr69 | 0:9b63dfb366dd | 2 | * Copyright (c) 2007-2009 sford |
jigr69 | 0:9b63dfb366dd | 3 | * Released under the MIT License: http://mbed.org/license/mit |
jigr69 | 0:9b63dfb366dd | 4 | */ |
jigr69 | 0:9b63dfb366dd | 5 | |
jigr69 | 0:9b63dfb366dd | 6 | #include "Terminal.h" |
jigr69 | 0:9b63dfb366dd | 7 | |
jigr69 | 0:9b63dfb366dd | 8 | #include "mbed.h" |
jigr69 | 0:9b63dfb366dd | 9 | |
jigr69 | 0:9b63dfb366dd | 10 | Terminal::Terminal(PinName tx, PinName rx) : Serial(tx, rx) {} |
jigr69 | 0:9b63dfb366dd | 11 | |
jigr69 | 0:9b63dfb366dd | 12 | void Terminal::cls() { |
jigr69 | 0:9b63dfb366dd | 13 | this->printf("\033[2J"); |
jigr69 | 0:9b63dfb366dd | 14 | } |
jigr69 | 0:9b63dfb366dd | 15 | |
jigr69 | 0:9b63dfb366dd | 16 | void Terminal::locate(int column, int row) { |
jigr69 | 0:9b63dfb366dd | 17 | // Cursor Home <ESC>[{ROW};{COLUMN}H |
jigr69 | 0:9b63dfb366dd | 18 | this->printf("\033[%d;%dH%c", row + 1, column + 1); |
jigr69 | 0:9b63dfb366dd | 19 | } |
jigr69 | 0:9b63dfb366dd | 20 | |
jigr69 | 0:9b63dfb366dd | 21 | static int rgb888tobgr111(int colour) { |
jigr69 | 0:9b63dfb366dd | 22 | int r = (colour >> 23) & 1; |
jigr69 | 0:9b63dfb366dd | 23 | int g = (colour >> 15) & 1; |
jigr69 | 0:9b63dfb366dd | 24 | int b = (colour >> 7) & 1; |
jigr69 | 0:9b63dfb366dd | 25 | return (b << 2) | (g << 1) | (r << 0); |
jigr69 | 0:9b63dfb366dd | 26 | } |
jigr69 | 0:9b63dfb366dd | 27 | |
jigr69 | 0:9b63dfb366dd | 28 | void Terminal::foreground(int colour) { |
jigr69 | 0:9b63dfb366dd | 29 | // Set Attribute Mode <ESC>[{n}m |
jigr69 | 0:9b63dfb366dd | 30 | // Foreground Colours : 30 + bgr |
jigr69 | 0:9b63dfb366dd | 31 | int c = 30 + rgb888tobgr111(colour); |
jigr69 | 0:9b63dfb366dd | 32 | this->printf("\033[%dm", c); |
jigr69 | 0:9b63dfb366dd | 33 | } |
jigr69 | 0:9b63dfb366dd | 34 | |
jigr69 | 0:9b63dfb366dd | 35 | void Terminal::background(int colour) { |
jigr69 | 0:9b63dfb366dd | 36 | // Set Attribute Mode <ESC>[{n}m |
jigr69 | 0:9b63dfb366dd | 37 | // Background Colours : 40 + bgr |
jigr69 | 0:9b63dfb366dd | 38 | int c = 40 + rgb888tobgr111(colour); |
jigr69 | 0:9b63dfb366dd | 39 | this->printf("\033[%dm", c); |
jigr69 | 0:9b63dfb366dd | 40 | } |