Dependencies:   mbed

Committer:
jigr69
Date:
Fri Jul 02 15:36:51 2010 +0000
Revision:
0:9b63dfb366dd

        

Who changed what in which revision?

UserRevisionLine numberNew 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 }