To enable TextDisplays\' use as a lib I removed main.cpp

Dependents:   TextLCD_Serial

Committer:
giryan
Date:
Sun Sep 05 09:21:49 2010 +0000
Revision:
0:0e729fc7275a
Version of sford\s TextDisplays lib without main.cpp

Who changed what in which revision?

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