Dependencies:   mbed

Committer:
simon
Date:
Tue Sep 15 10:02:04 2009 +0000
Revision:
0:cc002f2fad97

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:cc002f2fad97 1 /* mbed Terminal TextDisplay Library
simon 0:cc002f2fad97 2 * Copyright (c) 2007-2009 sford
simon 0:cc002f2fad97 3 * Released under the MIT License: http://mbed.org/license/mit
simon 0:cc002f2fad97 4 */
simon 0:cc002f2fad97 5
simon 0:cc002f2fad97 6 #include "Terminal.h"
simon 0:cc002f2fad97 7
simon 0:cc002f2fad97 8 #include "mbed.h"
simon 0:cc002f2fad97 9
simon 0:cc002f2fad97 10 Terminal::Terminal(PinName tx, PinName rx) : _serial(tx, rx) {
simon 0:cc002f2fad97 11 cls();
simon 0:cc002f2fad97 12 }
simon 0:cc002f2fad97 13
simon 0:cc002f2fad97 14 void Terminal::character(int column, int row, int c) {
simon 0:cc002f2fad97 15 // Cursor Home <ESC>[{ROW};{COLUMN}H
simon 0:cc002f2fad97 16 _serial.printf("\033[%d;%dH%c", row + 1, column + 1, c);
simon 0:cc002f2fad97 17 }
simon 0:cc002f2fad97 18
simon 0:cc002f2fad97 19 int Terminal::columns() {
simon 0:cc002f2fad97 20 return 80;
simon 0:cc002f2fad97 21 }
simon 0:cc002f2fad97 22
simon 0:cc002f2fad97 23 int Terminal::rows() {
simon 0:cc002f2fad97 24 return 35;
simon 0:cc002f2fad97 25 }
simon 0:cc002f2fad97 26
simon 0:cc002f2fad97 27 void Terminal::cls() {
simon 0:cc002f2fad97 28 _serial.printf("\033[2J");
simon 0:cc002f2fad97 29 }
simon 0:cc002f2fad97 30
simon 0:cc002f2fad97 31 void Terminal::foreground(int colour) {
simon 0:cc002f2fad97 32
simon 0:cc002f2fad97 33 /* Set Attribute Mode <ESC>[{n}m
simon 0:cc002f2fad97 34 * - Sets display attribute settings. The following lists standard attributes:
simon 0:cc002f2fad97 35 *
simon 0:cc002f2fad97 36 * Foreground Colours
simon 0:cc002f2fad97 37 * 30 Black
simon 0:cc002f2fad97 38 * 31 Red
simon 0:cc002f2fad97 39 * 32 Green
simon 0:cc002f2fad97 40 * 33 Yellow
simon 0:cc002f2fad97 41 * 34 Blue
simon 0:cc002f2fad97 42 * 35 Magenta
simon 0:cc002f2fad97 43 * 36 Cyan
simon 0:cc002f2fad97 44 * 37 White
simon 0:cc002f2fad97 45 */
simon 0:cc002f2fad97 46 int r = (colour >> 23) & 1;
simon 0:cc002f2fad97 47 int g = (colour >> 15) & 1;
simon 0:cc002f2fad97 48 int b = (colour >> 7) & 1;
simon 0:cc002f2fad97 49 int bgr = (b << 2) | (g << 1) | (r << 0);
simon 0:cc002f2fad97 50 int c = 30 + bgr;
simon 0:cc002f2fad97 51 _serial.printf("\033[%dm", c);
simon 0:cc002f2fad97 52 }
simon 0:cc002f2fad97 53
simon 0:cc002f2fad97 54 void Terminal::background(int colour) {
simon 0:cc002f2fad97 55
simon 0:cc002f2fad97 56 /* Background Colours
simon 0:cc002f2fad97 57 * 40 Black
simon 0:cc002f2fad97 58 * 41 Red
simon 0:cc002f2fad97 59 * 42 Green
simon 0:cc002f2fad97 60 * 43 Yellow
simon 0:cc002f2fad97 61 * 44 Blue
simon 0:cc002f2fad97 62 * 45 Magenta
simon 0:cc002f2fad97 63 * 46 Cyan
simon 0:cc002f2fad97 64 * 47 White
simon 0:cc002f2fad97 65 */
simon 0:cc002f2fad97 66 int r = (colour >> 23) & 1;
simon 0:cc002f2fad97 67 int g = (colour >> 15) & 1;
simon 0:cc002f2fad97 68 int b = (colour >> 7) & 1;
simon 0:cc002f2fad97 69 int bgr = (b << 2) | (g << 1) | (r << 0);
simon 0:cc002f2fad97 70 int c = 40 + bgr;
simon 0:cc002f2fad97 71 _serial.printf("\033[%dm", c);
simon 0:cc002f2fad97 72 }
simon 0:cc002f2fad97 73