From 53615d468132616a1254950c67926df53bf2b7ba Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Wed, 12 Aug 2015 09:54:12 +0200 Subject: ucoo/dev/lcd: add dummy LCD --- ucoo/dev/lcd/Module | 2 +- ucoo/dev/lcd/lcd_dummy.cc | 80 +++++++++++++++++++++++++++++++++++++++++++++++ ucoo/dev/lcd/lcd_dummy.hh | 54 ++++++++++++++++++++++++++++++++ 3 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 ucoo/dev/lcd/lcd_dummy.cc create mode 100644 ucoo/dev/lcd/lcd_dummy.hh (limited to 'ucoo/dev') diff --git a/ucoo/dev/lcd/Module b/ucoo/dev/lcd/Module index 651bf85..87b9bf6 100644 --- a/ucoo/dev/lcd/Module +++ b/ucoo/dev/lcd/Module @@ -1 +1 @@ -ucoo_dev_lcd_SOURCES := lcd_spi.cc +ucoo_dev_lcd_SOURCES := lcd_spi.cc lcd_dummy.cc diff --git a/ucoo/dev/lcd/lcd_dummy.cc b/ucoo/dev/lcd/lcd_dummy.cc new file mode 100644 index 0000000..710a17e --- /dev/null +++ b/ucoo/dev/lcd/lcd_dummy.cc @@ -0,0 +1,80 @@ +// ucoolib - Microcontroller object oriented library. {{{ +// +// Copyright (C) 2015 Nicolas Schodet +// +// 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 "ucoo/dev/lcd/lcd_dummy.hh" +#include "ucoo/base/test/test.hh" + +#include +#include + +namespace ucoo { + +void +LcdDummy::enable () +{ + test_stream_setup (); +} + +void +LcdDummy::disable () +{ +} + +void +LcdDummy::puts (const char *str) +{ + std::puts (str); +} + +void +LcdDummy::go (int line, int column) +{ +} + +void +LcdDummy::clear () +{ +} + +int +LcdDummy::get_lines () const +{ + return 0; +} + +int +LcdDummy::get_columns () const +{ + return 0; +} + +void +LcdDummy::printf (const char *fmt, ...) +{ + std::va_list ap; + va_start (ap, fmt); + std::vprintf (fmt, ap); + va_end (ap); +} + +} // namespace ucoo diff --git a/ucoo/dev/lcd/lcd_dummy.hh b/ucoo/dev/lcd/lcd_dummy.hh new file mode 100644 index 0000000..ebb1096 --- /dev/null +++ b/ucoo/dev/lcd/lcd_dummy.hh @@ -0,0 +1,54 @@ +#ifndef ucoo_dev_lcd_lcd_dummy_hh +#define ucoo_dev_lcd_lcd_dummy_hh +// ucoolib - Microcontroller object oriented library. {{{ +// +// Copyright (C) 2015 Nicolas Schodet +// +// 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 "ucoo/intf/lcd.hh" + +namespace ucoo { + +/// Dummy LCD, drop any message. +class LcdDummy : public Lcd +{ + public: + /// Enable, initialise display. + void enable (); + /// Disable, clear display and shutdown if possible. + void disable (); + /// See Lcd::puts. + void puts (const char *str); + /// See Lcd::go. + void go (int line, int column); + /// See Lcd::clear. + void clear (); + /// See Lcd::get_lines. + int get_lines () const; + /// See Lcd::get_columns. + int get_columns () const; + /// See Lcd::printf. + void printf (const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); +}; + +} // namespace ucoo + +#endif // ucoo_dev_lcd_lcd_dummy_hh -- cgit v1.2.3