A TextDisplay driver that supports graphical displays using on of the SED133x conrtrolers. Allows stdout and stderr output to be redirected to the display.

Committer:
llagendijk
Date:
Sat Jan 15 16:02:56 2011 +0000
Revision:
1:18c56f038905
Parent:
0:9e72c57b16fd
Child:
2:8596e06f241f
first round of cleanups

Who changed what in which revision?

UserRevisionLine numberNew contents of line
llagendijk 0:9e72c57b16fd 1 /* mbed TextDisplay Library Base Class
llagendijk 0:9e72c57b16fd 2 * Copyright (c) 2007-2009 sford
llagendijk 0:9e72c57b16fd 3 * Released under the MIT License: http://mbed.org/license/mit
llagendijk 0:9e72c57b16fd 4 *
llagendijk 0:9e72c57b16fd 5 * A common base class for Text displays
llagendijk 0:9e72c57b16fd 6 * To port a new display, derive from this class and implement
llagendijk 0:9e72c57b16fd 7 * the constructor (setup the display), character (put a character
llagendijk 0:9e72c57b16fd 8 * at a location), rows and columns (number of rows/cols) functions.
llagendijk 0:9e72c57b16fd 9 * Everything else (locate, printf, putc, cls) will come for free
llagendijk 0:9e72c57b16fd 10 *
llagendijk 0:9e72c57b16fd 11 * The model is the display will wrap at the right and bottom, so you can
llagendijk 0:9e72c57b16fd 12 * keep writing and will always get valid characters. The location is
llagendijk 0:9e72c57b16fd 13 * maintained internally to the class to make this easy
llagendijk 0:9e72c57b16fd 14 */
llagendijk 0:9e72c57b16fd 15
llagendijk 0:9e72c57b16fd 16 #ifndef MBED_TEXTDISPLAY_H
llagendijk 0:9e72c57b16fd 17 #define MBED_TEXTDISPLAY_H
llagendijk 0:9e72c57b16fd 18
llagendijk 0:9e72c57b16fd 19 #include "mbed.h"
llagendijk 0:9e72c57b16fd 20
llagendijk 0:9e72c57b16fd 21 class TextDisplay : public Stream {
llagendijk 0:9e72c57b16fd 22 public:
llagendijk 0:9e72c57b16fd 23
llagendijk 0:9e72c57b16fd 24 // functions needing implementation in derived implementation class
llagendijk 1:18c56f038905 25 TextDisplay(const char *name = NULL);
llagendijk 0:9e72c57b16fd 26 virtual void character(uint16_t column, uint16_t row, int c) = 0;
llagendijk 0:9e72c57b16fd 27 virtual uint16_t rows() = 0;
llagendijk 0:9e72c57b16fd 28 virtual uint16_t columns() = 0;
llagendijk 0:9e72c57b16fd 29
llagendijk 0:9e72c57b16fd 30 // functions that come for free, but can be overwritten
llagendijk 0:9e72c57b16fd 31 virtual void cls();
llagendijk 0:9e72c57b16fd 32 virtual void locate(uint16_t column, uint16_t row);
llagendijk 0:9e72c57b16fd 33 virtual void foreground(uint32_t colour);
llagendijk 0:9e72c57b16fd 34 virtual void background(uint32_t colour);
llagendijk 0:9e72c57b16fd 35 // putc (from Stream)
llagendijk 0:9e72c57b16fd 36 // printf (from Stream)
llagendijk 0:9e72c57b16fd 37
llagendijk 0:9e72c57b16fd 38 protected:
llagendijk 0:9e72c57b16fd 39
llagendijk 0:9e72c57b16fd 40 virtual int _putc(int value);
llagendijk 0:9e72c57b16fd 41 virtual int _getc();
llagendijk 0:9e72c57b16fd 42
llagendijk 0:9e72c57b16fd 43 // character location
llagendijk 0:9e72c57b16fd 44 uint16_t _column;
llagendijk 0:9e72c57b16fd 45 uint16_t _row;
llagendijk 0:9e72c57b16fd 46
llagendijk 0:9e72c57b16fd 47 // colours
llagendijk 0:9e72c57b16fd 48 uint32_t _foreground;
llagendijk 0:9e72c57b16fd 49 uint32_t _background;
llagendijk 0:9e72c57b16fd 50 };
llagendijk 0:9e72c57b16fd 51
llagendijk 0:9e72c57b16fd 52 #endif