From 1dd5de6e81b645e9765da1a3f00f3c399462837e Mon Sep 17 00:00:00 2001 From: Joel Bodenmann Date: Tue, 20 Nov 2012 23:37:50 +0100 Subject: added console demo --- demos/modules/console/main.c | 86 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 demos/modules/console/main.c (limited to 'demos/modules/console/main.c') diff --git a/demos/modules/console/main.c b/demos/modules/console/main.c new file mode 100644 index 00000000..f8ef6338 --- /dev/null +++ b/demos/modules/console/main.c @@ -0,0 +1,86 @@ +/* + ChibiOS/GFX - Copyright (C) 2012 + Joel Bodenmann aka Tectu + + This file is part of ChibiOS/GFX. + + ChibiOS/GFX is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/GFX is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * Make sure you have the following stuff enabled in your halconf.h: + * + * #define GFX_USE_GDISP TRUE + * #define GFX_USE_GWIN TRUE + * #define GDISP_NEED_SCROLL TRUE + * #define GDISP_NEED_CLIP TRUE (optional but recommended) + * #define GWIN_NEED_CONSOLE TRUE + */ + +#include "ch.h" +#include "hal.h" +#include "chprintf.h" +#include "gdisp.h" +#include "gwin.h" + +GHandle GW1, GW2, GW3; +BaseSequentialStream *S1, *S2, *S3; + +int main(void) { + uint8_t i; + + halInit(); + chSysInit(); + + gdispInit(); + //tsInit(&TSD1); + //gdispInit(); + gdispClear(Black); + + GW1 = gwinCreateConsole(NULL, 0, 0, gdispGetWidth(), gdispGetHeight()/2, &fontUI2Double); + GW2 = gwinCreateConsole(NULL, 0, gdispGetHeight()/2, gdispGetWidth()/2, gdispGetHeight(), &fontSmall); + GW3 = gwinCreateConsole(NULL, gdispGetWidth()/2, gdispGetHeight()/2, gdispGetWidth(), gdispGetHeight(), &fontSmall); + + gwinSetColor(GW1, Green); + gwinSetBgColor(GW1, Black); + gwinSetColor(GW2, White); + gwinSetBgColor(GW2, Blue); + gwinSetColor(GW3, Black); + gwinSetBgColor(GW3, Red); + + gwinClear(GW1); + gwinClear(GW2); + gwinClear(GW3); + + S1 = gwinGetConsoleStream(GW1); + S2 = gwinGetConsoleStream(GW2); + S3 = gwinGetConsoleStream(GW3); + + for(i = 0; i < 10; i++) { + chprintf(S1, "Hello ChibiOS/GFX!\r\n"); + } + + for(i = 0; i < 16; i++) { + chprintf(S2, "Message Nr.: %d\r\n", i+1); + } + + for(i = 0; i < 18; i++) { + chprintf(S3, "Message Nr.: %d\r\n", i+1); + } + + while(TRUE) { + chThdSleepMilliseconds(500); + } +} + -- cgit v1.2.3 From c0cf584c85d2a9ee31adccb23d307b1955e3d8fc Mon Sep 17 00:00:00 2001 From: Joel Bodenmann Date: Wed, 21 Nov 2012 09:54:23 +0100 Subject: console example doc --- demos/modules/console/main.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'demos/modules/console/main.c') diff --git a/demos/modules/console/main.c b/demos/modules/console/main.c index f8ef6338..fd329f95 100644 --- a/demos/modules/console/main.c +++ b/demos/modules/console/main.c @@ -34,7 +34,10 @@ #include "gdisp.h" #include "gwin.h" +/* The handles for our three consoles */ GHandle GW1, GW2, GW3; + +/* The streams for our three consoles */ BaseSequentialStream *S1, *S2, *S3; int main(void) { @@ -43,15 +46,16 @@ int main(void) { halInit(); chSysInit(); + /* initialize and clear the display */ gdispInit(); - //tsInit(&TSD1); - //gdispInit(); gdispClear(Black); + /* create the three console windows and set a font for each */ GW1 = gwinCreateConsole(NULL, 0, 0, gdispGetWidth(), gdispGetHeight()/2, &fontUI2Double); GW2 = gwinCreateConsole(NULL, 0, gdispGetHeight()/2, gdispGetWidth()/2, gdispGetHeight(), &fontSmall); GW3 = gwinCreateConsole(NULL, gdispGetWidth()/2, gdispGetHeight()/2, gdispGetWidth(), gdispGetHeight(), &fontSmall); + /* Set the fore- and background colors for each console */ gwinSetColor(GW1, Green); gwinSetBgColor(GW1, Black); gwinSetColor(GW2, White); @@ -59,22 +63,27 @@ int main(void) { gwinSetColor(GW3, Black); gwinSetBgColor(GW3, Red); + /* clear all console windows - to set background */ gwinClear(GW1); gwinClear(GW2); gwinClear(GW3); + /* receive the stream pointers of each console */ S1 = gwinGetConsoleStream(GW1); S2 = gwinGetConsoleStream(GW2); S3 = gwinGetConsoleStream(GW3); + /* Output some data on the first console */ for(i = 0; i < 10; i++) { chprintf(S1, "Hello ChibiOS/GFX!\r\n"); } + /* Output some data on the second console */ for(i = 0; i < 16; i++) { chprintf(S2, "Message Nr.: %d\r\n", i+1); } + /* Output some data on the third console */ for(i = 0; i < 18; i++) { chprintf(S3, "Message Nr.: %d\r\n", i+1); } -- cgit v1.2.3 From f262b7ad91c91ebed1990f74ec6b7a69ae36e359 Mon Sep 17 00:00:00 2001 From: Joel Bodenmann Date: Thu, 22 Nov 2012 07:29:55 +0100 Subject: console demo code doc --- demos/modules/console/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'demos/modules/console/main.c') diff --git a/demos/modules/console/main.c b/demos/modules/console/main.c index fd329f95..962969eb 100644 --- a/demos/modules/console/main.c +++ b/demos/modules/console/main.c @@ -23,7 +23,7 @@ * * #define GFX_USE_GDISP TRUE * #define GFX_USE_GWIN TRUE - * #define GDISP_NEED_SCROLL TRUE + * #define GDISP_NEED_SCROLL TRUE (optional but recommended) * #define GDISP_NEED_CLIP TRUE (optional but recommended) * #define GWIN_NEED_CONSOLE TRUE */ -- cgit v1.2.3