test program for my vt100 library. tested on FRDM-KL25Z. this may work with other mbed platform with stdout.
A simple test program to test my vt100 library.
I have tested this with my FRDM-KL25Z. But hopefully it will work other platforms with "printf" function.
先にパブリッシュした vt100 ライブラリのテストプログラムです。 FRDM-KL25Z でテストしましたが、printf をサポートしている 他のmbed プラットフォームでも動くのではないかと思います。 (動くといいな~)
main.cpp
- Committer:
- Rhyme
- Date:
- 2014-12-01
- Revision:
- 1:21fe79ead178
- Parent:
- 0:53ff82c87c14
File content as of revision 1:21fe79ead178:
#include "mbed.h" #include "vt100.h" /** test_vt100 * test program for my vt100 library * * terminal program must be at least 80x25 * and needless to say, should supporting vt100 commands */ vt100 tty ; int left = 2 ; int top = 2 ; int right = 78 ; int bottom = 23 ; int h_center = 40 ; int v_center = 12 ; void drawFrame(void) { tty.frame(left, top, right, bottom) ; tty.line(left+1, v_center, right-1, v_center, '-') ; tty.line(h_center, top+1, h_center, bottom-1, '|') ; tty.putChar(h_center, v_center, '+') ; } int clip(int y) { if (y > bottom) { y = bottom ; } else if (y < top) { y = top ; } return( y ) ; } void drawYeqX(void) { int x, y ; drawFrame() ; for (x = left+1 ; x < right ; x++ ) { y = v_center - (x - h_center) / 4 ; tty.putChar(x, y, '*') ; } tty.locate(left + 2, top + 2) ; printf("Y = X\n\r") ; } void drawYeqXX(void) { int x, y ; drawFrame() ; for (x = left+1 ; x < right ; x++ ) { y = clip( bottom - 1 - ((x - h_center)*(x - h_center) / 80)) ; tty.putChar(x, y, '*') ; } tty.locate(left + 2, top + 2) ; printf("Y = X^2 - 1\n\r") ; } void drawYeqXXX(void) { int x, y ; drawFrame() ; for (x = left+1 ; x < right ; x++ ) { y = clip(v_center - ((x - h_center)*(x - h_center)*(x - h_center) / 3200)) ; tty.putChar(x, y, '*') ; } tty.locate(left + 2, top + 2) ; printf("Y = X^3\n\r") ; } void drawCircle(void) { drawFrame() ; tty.circle(h_center, v_center, 8) ; tty.locate(left + 2, top + 2) ; printf("Y^2 + X^2 = 1\n\r") ; } int main() { int count = 0 ; while(1) { tty.cls() ; tty.locate(10, 1) ; printf("<< vt100 library test program >>") ; drawFrame() ; switch(count++) { case 0: drawYeqX() ; break ; case 1: drawYeqXX() ; break ; case 2: drawYeqXXX() ; break ; case 3: drawCircle() ; break ; default: count = 0 ; continue ; } wait(4.0) ; } }