abc

Dependents:   STMSchalter_TINF_25102018 STMSchalterUebenKraft_TINF_29102018

Committer:
Reichi19
Date:
Thu Oct 25 18:02:24 2018 +0000
Revision:
0:2b88769c0a06
ABC

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Reichi19 0:2b88769c0a06 1 /* mbed TextDisplay Library Base Class
Reichi19 0:2b88769c0a06 2 * Copyright (c) 2007-2009 sford
Reichi19 0:2b88769c0a06 3 * Released under the MIT License: http://mbed.org/license/mit
Reichi19 0:2b88769c0a06 4 *
Reichi19 0:2b88769c0a06 5 * A common base class for Text displays
Reichi19 0:2b88769c0a06 6 * To port a new display, derive from this class and implement
Reichi19 0:2b88769c0a06 7 * the constructor (setup the display), character (put a character
Reichi19 0:2b88769c0a06 8 * at a location), rows and columns (number of rows/cols) functions.
Reichi19 0:2b88769c0a06 9 * Everything else (locate, printf, putc, cls) will come for free
Reichi19 0:2b88769c0a06 10 *
Reichi19 0:2b88769c0a06 11 * The model is the display will wrap at the right and bottom, so you can
Reichi19 0:2b88769c0a06 12 * keep writing and will always get valid characters. The location is
Reichi19 0:2b88769c0a06 13 * maintained internally to the class to make this easy
Reichi19 0:2b88769c0a06 14 */
Reichi19 0:2b88769c0a06 15
Reichi19 0:2b88769c0a06 16 #ifndef MBED_TEXTDISPLAY_H
Reichi19 0:2b88769c0a06 17 #define MBED_TEXTDISPLAY_H
Reichi19 0:2b88769c0a06 18
Reichi19 0:2b88769c0a06 19 #include "mbed.h"
Reichi19 0:2b88769c0a06 20
Reichi19 0:2b88769c0a06 21 class TextDisplay : public Stream {
Reichi19 0:2b88769c0a06 22 public:
Reichi19 0:2b88769c0a06 23
Reichi19 0:2b88769c0a06 24 // functions needing implementation in derived implementation class
Reichi19 0:2b88769c0a06 25 /** Create a TextDisplay interface
Reichi19 0:2b88769c0a06 26 *
Reichi19 0:2b88769c0a06 27 * @param name The name used in the path to access the strean through the filesystem
Reichi19 0:2b88769c0a06 28 */
Reichi19 0:2b88769c0a06 29 TextDisplay(const char *name = NULL);
Reichi19 0:2b88769c0a06 30
Reichi19 0:2b88769c0a06 31 /** output a character at the given position
Reichi19 0:2b88769c0a06 32 *
Reichi19 0:2b88769c0a06 33 * @param column column where charater must be written
Reichi19 0:2b88769c0a06 34 * @param row where character must be written
Reichi19 0:2b88769c0a06 35 * @param c the character to be written to the TextDisplay
Reichi19 0:2b88769c0a06 36 */
Reichi19 0:2b88769c0a06 37 virtual void character(int column, int row, int c) = 0;
Reichi19 0:2b88769c0a06 38
Reichi19 0:2b88769c0a06 39 /** return number if rows on TextDisplay
Reichi19 0:2b88769c0a06 40 * @result number of rows
Reichi19 0:2b88769c0a06 41 */
Reichi19 0:2b88769c0a06 42 virtual int rows() = 0;
Reichi19 0:2b88769c0a06 43
Reichi19 0:2b88769c0a06 44 /** return number if columns on TextDisplay
Reichi19 0:2b88769c0a06 45 * @result number of rows
Reichi19 0:2b88769c0a06 46 */
Reichi19 0:2b88769c0a06 47 virtual int columns() = 0;
Reichi19 0:2b88769c0a06 48
Reichi19 0:2b88769c0a06 49 // functions that come for free, but can be overwritten
Reichi19 0:2b88769c0a06 50
Reichi19 0:2b88769c0a06 51 /** redirect output from a stream (stoud, sterr) to display
Reichi19 0:2b88769c0a06 52 * @param stream stream that shall be redirected to the TextDisplay
Reichi19 0:2b88769c0a06 53 */
Reichi19 0:2b88769c0a06 54 virtual bool claim (FILE *stream);
Reichi19 0:2b88769c0a06 55
Reichi19 0:2b88769c0a06 56 /** clear screen
Reichi19 0:2b88769c0a06 57 */
Reichi19 0:2b88769c0a06 58 virtual void cls();
Reichi19 0:2b88769c0a06 59 virtual void locate(int column, int row);
Reichi19 0:2b88769c0a06 60 virtual void foreground(uint16_t colour);
Reichi19 0:2b88769c0a06 61 virtual void background(uint16_t colour);
Reichi19 0:2b88769c0a06 62 // putc (from Stream)
Reichi19 0:2b88769c0a06 63 // printf (from Stream)
Reichi19 0:2b88769c0a06 64
Reichi19 0:2b88769c0a06 65 protected:
Reichi19 0:2b88769c0a06 66
Reichi19 0:2b88769c0a06 67 virtual int _putc(int value);
Reichi19 0:2b88769c0a06 68 virtual int _getc();
Reichi19 0:2b88769c0a06 69
Reichi19 0:2b88769c0a06 70 // character location
Reichi19 0:2b88769c0a06 71 uint16_t _column;
Reichi19 0:2b88769c0a06 72 uint16_t _row;
Reichi19 0:2b88769c0a06 73
Reichi19 0:2b88769c0a06 74 // colours
Reichi19 0:2b88769c0a06 75 uint16_t _foreground;
Reichi19 0:2b88769c0a06 76 uint16_t _background;
Reichi19 0:2b88769c0a06 77 char *_path;
Reichi19 0:2b88769c0a06 78 };
Reichi19 0:2b88769c0a06 79
Reichi19 0:2b88769c0a06 80 #endif