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@0:53ff82c87c14, 2014-12-01 (annotated)
- Committer:
- Rhyme
- Date:
- Mon Dec 01 12:59:29 2014 +0000
- Revision:
- 0:53ff82c87c14
- Child:
- 1:21fe79ead178
commit before publishing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhyme | 0:53ff82c87c14 | 1 | #include "mbed.h" |
Rhyme | 0:53ff82c87c14 | 2 | #include "vt100.h" |
Rhyme | 0:53ff82c87c14 | 3 | |
Rhyme | 0:53ff82c87c14 | 4 | vt100 tty ; |
Rhyme | 0:53ff82c87c14 | 5 | |
Rhyme | 0:53ff82c87c14 | 6 | int left = 2 ; |
Rhyme | 0:53ff82c87c14 | 7 | int top = 2 ; |
Rhyme | 0:53ff82c87c14 | 8 | int right = 78 ; |
Rhyme | 0:53ff82c87c14 | 9 | int bottom = 23 ; |
Rhyme | 0:53ff82c87c14 | 10 | int h_center = 40 ; |
Rhyme | 0:53ff82c87c14 | 11 | int v_center = 12 ; |
Rhyme | 0:53ff82c87c14 | 12 | |
Rhyme | 0:53ff82c87c14 | 13 | void drawFrame(void) |
Rhyme | 0:53ff82c87c14 | 14 | { |
Rhyme | 0:53ff82c87c14 | 15 | tty.frame(left, top, right, bottom) ; |
Rhyme | 0:53ff82c87c14 | 16 | tty.line(left+1, v_center, right-1, v_center, '-') ; |
Rhyme | 0:53ff82c87c14 | 17 | tty.line(h_center, top+1, h_center, bottom-1, '|') ; |
Rhyme | 0:53ff82c87c14 | 18 | tty.putChar(h_center, v_center, '+') ; |
Rhyme | 0:53ff82c87c14 | 19 | } |
Rhyme | 0:53ff82c87c14 | 20 | |
Rhyme | 0:53ff82c87c14 | 21 | int clip(int y) |
Rhyme | 0:53ff82c87c14 | 22 | { |
Rhyme | 0:53ff82c87c14 | 23 | if (y > bottom) { |
Rhyme | 0:53ff82c87c14 | 24 | y = bottom ; |
Rhyme | 0:53ff82c87c14 | 25 | } else if (y < top) { |
Rhyme | 0:53ff82c87c14 | 26 | y = top ; |
Rhyme | 0:53ff82c87c14 | 27 | } |
Rhyme | 0:53ff82c87c14 | 28 | return( y ) ; |
Rhyme | 0:53ff82c87c14 | 29 | } |
Rhyme | 0:53ff82c87c14 | 30 | |
Rhyme | 0:53ff82c87c14 | 31 | void drawYeqX(void) |
Rhyme | 0:53ff82c87c14 | 32 | { |
Rhyme | 0:53ff82c87c14 | 33 | int x, y ; |
Rhyme | 0:53ff82c87c14 | 34 | drawFrame() ; |
Rhyme | 0:53ff82c87c14 | 35 | for (x = left+1 ; x < right ; x++ ) { |
Rhyme | 0:53ff82c87c14 | 36 | y = v_center - (x - h_center) / 4 ; |
Rhyme | 0:53ff82c87c14 | 37 | tty.putChar(x, y, '*') ; |
Rhyme | 0:53ff82c87c14 | 38 | } |
Rhyme | 0:53ff82c87c14 | 39 | tty.locate(left + 2, top + 2) ; |
Rhyme | 0:53ff82c87c14 | 40 | printf("Y = X\n\r") ; |
Rhyme | 0:53ff82c87c14 | 41 | } |
Rhyme | 0:53ff82c87c14 | 42 | |
Rhyme | 0:53ff82c87c14 | 43 | void drawYeqXX(void) |
Rhyme | 0:53ff82c87c14 | 44 | { |
Rhyme | 0:53ff82c87c14 | 45 | int x, y ; |
Rhyme | 0:53ff82c87c14 | 46 | drawFrame() ; |
Rhyme | 0:53ff82c87c14 | 47 | for (x = left+1 ; x < right ; x++ ) { |
Rhyme | 0:53ff82c87c14 | 48 | y = clip( bottom - 1 - ((x - h_center)*(x - h_center) / 80)) ; |
Rhyme | 0:53ff82c87c14 | 49 | tty.putChar(x, y, '*') ; |
Rhyme | 0:53ff82c87c14 | 50 | } |
Rhyme | 0:53ff82c87c14 | 51 | tty.locate(left + 2, top + 2) ; |
Rhyme | 0:53ff82c87c14 | 52 | printf("Y = X^2 - 1\n\r") ; |
Rhyme | 0:53ff82c87c14 | 53 | } |
Rhyme | 0:53ff82c87c14 | 54 | |
Rhyme | 0:53ff82c87c14 | 55 | void drawYeqXXX(void) |
Rhyme | 0:53ff82c87c14 | 56 | { |
Rhyme | 0:53ff82c87c14 | 57 | int x, y ; |
Rhyme | 0:53ff82c87c14 | 58 | drawFrame() ; |
Rhyme | 0:53ff82c87c14 | 59 | for (x = left+1 ; x < right ; x++ ) { |
Rhyme | 0:53ff82c87c14 | 60 | y = clip(v_center - ((x - h_center)*(x - h_center)*(x - h_center) / 3200)) ; |
Rhyme | 0:53ff82c87c14 | 61 | tty.putChar(x, y, '*') ; |
Rhyme | 0:53ff82c87c14 | 62 | } |
Rhyme | 0:53ff82c87c14 | 63 | tty.locate(left + 2, top + 2) ; |
Rhyme | 0:53ff82c87c14 | 64 | printf("Y = X^3\n\r") ; |
Rhyme | 0:53ff82c87c14 | 65 | } |
Rhyme | 0:53ff82c87c14 | 66 | |
Rhyme | 0:53ff82c87c14 | 67 | void drawCircle(void) |
Rhyme | 0:53ff82c87c14 | 68 | { |
Rhyme | 0:53ff82c87c14 | 69 | drawFrame() ; |
Rhyme | 0:53ff82c87c14 | 70 | tty.circle(h_center, v_center, 8) ; |
Rhyme | 0:53ff82c87c14 | 71 | tty.locate(left + 2, top + 2) ; |
Rhyme | 0:53ff82c87c14 | 72 | printf("Y^2 + X^2 = 1\n\r") ; |
Rhyme | 0:53ff82c87c14 | 73 | } |
Rhyme | 0:53ff82c87c14 | 74 | |
Rhyme | 0:53ff82c87c14 | 75 | int main() { |
Rhyme | 0:53ff82c87c14 | 76 | int count = 0 ; |
Rhyme | 0:53ff82c87c14 | 77 | while(1) { |
Rhyme | 0:53ff82c87c14 | 78 | tty.cls() ; |
Rhyme | 0:53ff82c87c14 | 79 | drawFrame() ; |
Rhyme | 0:53ff82c87c14 | 80 | switch(count++) { |
Rhyme | 0:53ff82c87c14 | 81 | case 0: drawYeqX() ; break ; |
Rhyme | 0:53ff82c87c14 | 82 | case 1: drawYeqXX() ; break ; |
Rhyme | 0:53ff82c87c14 | 83 | case 2: drawYeqXXX() ; break ; |
Rhyme | 0:53ff82c87c14 | 84 | case 3: drawCircle() ; break ; |
Rhyme | 0:53ff82c87c14 | 85 | default: count = 0 ; continue ; |
Rhyme | 0:53ff82c87c14 | 86 | } |
Rhyme | 0:53ff82c87c14 | 87 | wait(4.0) ; |
Rhyme | 0:53ff82c87c14 | 88 | } |
Rhyme | 0:53ff82c87c14 | 89 | } |