This program opens a socket and wait connection through Wi-Fi. When the socket is connected, print out received characters to LCD.
LcdScreen.h@0:ac3682c7c208, 2012-04-23 (annotated)
- Committer:
- nakata
- Date:
- Mon Apr 23 08:56:58 2012 +0000
- Revision:
- 0:ac3682c7c208
- Child:
- 1:e87727c8979d
telnet works now.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nakata | 0:ac3682c7c208 | 1 | #include "TextLCD.h" |
nakata | 0:ac3682c7c208 | 2 | |
nakata | 0:ac3682c7c208 | 3 | #define SCREEN_WIDTH 16 |
nakata | 0:ac3682c7c208 | 4 | #define SCREEN_HEIGHT 2 |
nakata | 0:ac3682c7c208 | 5 | #define CR 13 |
nakata | 0:ac3682c7c208 | 6 | #define LF 10 |
nakata | 0:ac3682c7c208 | 7 | |
nakata | 0:ac3682c7c208 | 8 | TextLCD lcd(p24, p26, p27, p28, p29, p30); // rs, e, d4-d7 |
nakata | 0:ac3682c7c208 | 9 | |
nakata | 0:ac3682c7c208 | 10 | class LcdScreen { |
nakata | 0:ac3682c7c208 | 11 | protected: |
nakata | 0:ac3682c7c208 | 12 | unsigned char cram[SCREEN_HEIGHT][SCREEN_WIDTH]; |
nakata | 0:ac3682c7c208 | 13 | int cursor_x; |
nakata | 0:ac3682c7c208 | 14 | int cursor_y; |
nakata | 0:ac3682c7c208 | 15 | public: |
nakata | 0:ac3682c7c208 | 16 | LcdScreen() |
nakata | 0:ac3682c7c208 | 17 | { |
nakata | 0:ac3682c7c208 | 18 | cursor_x = 0; |
nakata | 0:ac3682c7c208 | 19 | cursor_y = 0; |
nakata | 0:ac3682c7c208 | 20 | |
nakata | 0:ac3682c7c208 | 21 | int x, y; |
nakata | 0:ac3682c7c208 | 22 | for ( y = 0; y < SCREEN_HEIGHT; y++ ) { |
nakata | 0:ac3682c7c208 | 23 | for ( x = 0; x < SCREEN_WIDTH; x++ ) { |
nakata | 0:ac3682c7c208 | 24 | cram[y][x] = ' '; |
nakata | 0:ac3682c7c208 | 25 | } |
nakata | 0:ac3682c7c208 | 26 | } |
nakata | 0:ac3682c7c208 | 27 | |
nakata | 0:ac3682c7c208 | 28 | syncScreen(); |
nakata | 0:ac3682c7c208 | 29 | } |
nakata | 0:ac3682c7c208 | 30 | |
nakata | 0:ac3682c7c208 | 31 | void syncScreen() |
nakata | 0:ac3682c7c208 | 32 | { |
nakata | 0:ac3682c7c208 | 33 | int x, y; |
nakata | 0:ac3682c7c208 | 34 | |
nakata | 0:ac3682c7c208 | 35 | for ( y = 0; y < SCREEN_HEIGHT; y++ ) { |
nakata | 0:ac3682c7c208 | 36 | lcd.locate(0,y); |
nakata | 0:ac3682c7c208 | 37 | for ( x = 0; x < SCREEN_WIDTH; x++ ) { |
nakata | 0:ac3682c7c208 | 38 | lcd.putc(cram[y][x]); |
nakata | 0:ac3682c7c208 | 39 | } |
nakata | 0:ac3682c7c208 | 40 | } |
nakata | 0:ac3682c7c208 | 41 | } |
nakata | 0:ac3682c7c208 | 42 | |
nakata | 0:ac3682c7c208 | 43 | void scroll() |
nakata | 0:ac3682c7c208 | 44 | { |
nakata | 0:ac3682c7c208 | 45 | int x; |
nakata | 0:ac3682c7c208 | 46 | for ( x = 0; x < SCREEN_WIDTH; x++ ) { |
nakata | 0:ac3682c7c208 | 47 | cram[0][x] = cram[1][x]; |
nakata | 0:ac3682c7c208 | 48 | cram[1][x] = ' '; |
nakata | 0:ac3682c7c208 | 49 | } |
nakata | 0:ac3682c7c208 | 50 | } |
nakata | 0:ac3682c7c208 | 51 | |
nakata | 0:ac3682c7c208 | 52 | void print(const unsigned char *data) |
nakata | 0:ac3682c7c208 | 53 | { |
nakata | 0:ac3682c7c208 | 54 | const unsigned char *p; |
nakata | 0:ac3682c7c208 | 55 | for ( p = data; *p != '\0'; p++ ) { |
nakata | 0:ac3682c7c208 | 56 | if ( *p == CR ) { |
nakata | 0:ac3682c7c208 | 57 | cursor_x = 0; |
nakata | 0:ac3682c7c208 | 58 | } else if ( *p == LF ) { |
nakata | 0:ac3682c7c208 | 59 | cursor_y++; |
nakata | 0:ac3682c7c208 | 60 | } else if ( 0x20 <= *p && *p <= 0x7f ) { |
nakata | 0:ac3682c7c208 | 61 | if ( cursor_x >= SCREEN_WIDTH ) { |
nakata | 0:ac3682c7c208 | 62 | cursor_x = 0; |
nakata | 0:ac3682c7c208 | 63 | cursor_y++; |
nakata | 0:ac3682c7c208 | 64 | } |
nakata | 0:ac3682c7c208 | 65 | if ( cursor_y >= SCREEN_HEIGHT ) { |
nakata | 0:ac3682c7c208 | 66 | scroll(); |
nakata | 0:ac3682c7c208 | 67 | cursor_y = SCREEN_HEIGHT - 1; |
nakata | 0:ac3682c7c208 | 68 | } |
nakata | 0:ac3682c7c208 | 69 | cram[cursor_y][cursor_x++] = *p; |
nakata | 0:ac3682c7c208 | 70 | } |
nakata | 0:ac3682c7c208 | 71 | } |
nakata | 0:ac3682c7c208 | 72 | if ( cursor_x >= SCREEN_WIDTH ) { |
nakata | 0:ac3682c7c208 | 73 | cursor_x = 0; |
nakata | 0:ac3682c7c208 | 74 | ++cursor_y; |
nakata | 0:ac3682c7c208 | 75 | } |
nakata | 0:ac3682c7c208 | 76 | syncScreen(); |
nakata | 0:ac3682c7c208 | 77 | } |
nakata | 0:ac3682c7c208 | 78 | }; |