Display text on LCD displays (even on multiple ones). Allow to create windows (frames) on display, and to combine them (split, add, duplicate, scroll). See http://mbed.org/users/hlipka/notebook/lcdwindow/ for more information.
Revision 4:aa08e82834dc, committed 2010-12-16
- Comitter:
- hlipka
- Date:
- Thu Dec 16 21:25:56 2010 +0000
- Parent:
- 3:e5d5e2fe4bf6
- Child:
- 5:3ff30ca33efc
- Commit message:
- added adapter for TextLCD
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Thu Dec 16 21:25:56 2010 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/simon/code/TextLCD/#44f34c09bd37
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textlcdadapter.cpp Thu Dec 16 21:25:56 2010 +0000 @@ -0,0 +1,59 @@ +/* + * mbed LCDWindow library +* Copyright (c) 2010 Hendrik Lipka +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ + +#include "textlcdadapter.h" +#include <stdarg.h> + + +TextLCDAdapter::TextLCDAdapter(TextLCD *lcd) { + _lcd=lcd; +} +void TextLCDAdapter::clear() { + _lcd->cls(); +} + +int TextLCDAdapter::getRows() { + return _lcd->rows(); +} +int TextLCDAdapter::getColumns() { + return _lcd->columns(); +} +void TextLCDAdapter::character(int column, int row, int c) { +} + +int TextLCDAdapter::putc(int c) { + return _lcd->putc(c); +} +int TextLCDAdapter::printf(const char* format, ...) { + // create and start the va_list + va_list listPointer ; + va_start( listPointer, format ) ; + + // vsprintf is an example of + // a function that works with + // an "already started" va_list + static char buf[ 1024 ] ; + vsprintf( buf, format, listPointer ) ; + + return _lcd->printf(buf); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textlcdadapter.h Thu Dec 16 21:25:56 2010 +0000 @@ -0,0 +1,49 @@ +/* mbed TextLCD Library, for a 4-bit LCD based on HD44780 + * Copyright (c) 2007-2010, sford + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef MBED_TEXTLCDADAPTER_H +#define MBED_TEXTLCDADAPTER_H + +#include "TextLCD.h" +#include "window.h" + +/** + * adapter class to wrap a TextLCD instance as Window + */ +class TextLCDAdapter : public Window { +public: + + TextLCDAdapter(TextLCD* lcd); + virtual void clear(); + + virtual int getRows(); + virtual int getColumns(); + virtual void character(int column, int row, int c); + int putc(int c); + int printf(const char* format, ...); + + private: + TextLCD *_lcd; + +}; + +#endif