yuhang zhu / Mbed 2 deprecated ADAM_menu

Dependencies:   mbed

Committer:
yuhangzhu
Date:
Fri Jul 12 22:55:02 2013 +0000
Revision:
5:50ea1502a949
Parent:
4:e8142db2bbfd
Child:
6:e510aab8f2ce
seems good!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yuhangzhu 0:249f6f78cd05 1 #include "mbed.h"
yuhangzhu 0:249f6f78cd05 2 #include "menu.h"
yuhangzhu 0:249f6f78cd05 3 #include "parameters.h"
yuhangzhu 3:32e67d121c7f 4 #include "handlers.h"
yuhangzhu 0:249f6f78cd05 5
yuhangzhu 0:249f6f78cd05 6 Serial pc(USBTX, USBRX);
yuhangzhu 2:45db4f4ca70d 7
yuhangzhu 3:32e67d121c7f 8 char recv;
yuhangzhu 2:45db4f4ca70d 9 int state;
yuhangzhu 3:32e67d121c7f 10 unsigned char cha1_pha, cha2_pha;
yuhangzhu 3:32e67d121c7f 11 unsigned char cha1_amp, cha2_amp;
yuhangzhu 3:32e67d121c7f 12 short spi_data;
yuhangzhu 3:32e67d121c7f 13 char line_buf[4]; //line_buf[3] is used to indicate if it's empty 0 empty 1 not
yuhangzhu 4:e8142db2bbfd 14 int line_pt; //line buffer pointer points to next buffer location it's going to write
yuhangzhu 4:e8142db2bbfd 15 int line_length; //store the current line length
yuhangzhu 2:45db4f4ca70d 16
yuhangzhu 0:249f6f78cd05 17 int main() {
yuhangzhu 0:249f6f78cd05 18
yuhangzhu 0:249f6f78cd05 19 pc.baud(115200); //config buad rate
yuhangzhu 1:cb6811ef87de 20 state = MODE_IDLE;
yuhangzhu 3:32e67d121c7f 21 line_buf[3] = 0;
yuhangzhu 3:32e67d121c7f 22 line_buf[2] = 255;
yuhangzhu 3:32e67d121c7f 23 line_buf[1] = 255;
yuhangzhu 3:32e67d121c7f 24 line_buf[0] = 255;
yuhangzhu 0:249f6f78cd05 25
yuhangzhu 0:249f6f78cd05 26 while(1)
yuhangzhu 0:249f6f78cd05 27 {
yuhangzhu 1:cb6811ef87de 28 switch(state)
yuhangzhu 0:249f6f78cd05 29 {
yuhangzhu 1:cb6811ef87de 30 case MODE_IDLE:
yuhangzhu 1:cb6811ef87de 31 pc.printf("%s", main_menu);
yuhangzhu 3:32e67d121c7f 32 recv = pc.getc();
yuhangzhu 3:32e67d121c7f 33 mode_idle_handler(&state, recv);
yuhangzhu 3:32e67d121c7f 34 //pc.printf("%d", state);
yuhangzhu 3:32e67d121c7f 35 break;
yuhangzhu 3:32e67d121c7f 36 case MODE_CHA1PHA:
yuhangzhu 5:50ea1502a949 37 case MODE_CHA1AMP:
yuhangzhu 5:50ea1502a949 38 case MODE_CHA2PHA:
yuhangzhu 5:50ea1502a949 39 case MODE_CHA2AMP:
yuhangzhu 5:50ea1502a949 40 if(state == MODE_CHA1PHA)
yuhangzhu 5:50ea1502a949 41 pc.printf("%s", cmd1);
yuhangzhu 5:50ea1502a949 42 else if(state == MODE_CHA1AMP)
yuhangzhu 5:50ea1502a949 43 pc.printf("%s", cmd2);
yuhangzhu 5:50ea1502a949 44 else if(state == MODE_CHA2PHA)
yuhangzhu 5:50ea1502a949 45 pc.printf("%s", cmd3);
yuhangzhu 5:50ea1502a949 46 else
yuhangzhu 5:50ea1502a949 47 pc.printf("%s", cmd4);
yuhangzhu 5:50ea1502a949 48
yuhangzhu 3:32e67d121c7f 49 line_buf[3] = 0;
yuhangzhu 5:50ea1502a949 50 line_buf[2] = 255;
yuhangzhu 5:50ea1502a949 51 line_buf[1] = 255;
yuhangzhu 5:50ea1502a949 52 line_buf[0] = 255;
yuhangzhu 3:32e67d121c7f 53 line_pt = 0;
yuhangzhu 4:e8142db2bbfd 54 line_length = 0;
yuhangzhu 3:32e67d121c7f 55
yuhangzhu 3:32e67d121c7f 56 while(1)
yuhangzhu 3:32e67d121c7f 57 {
yuhangzhu 3:32e67d121c7f 58 recv = pc.getc();
yuhangzhu 4:e8142db2bbfd 59 if(recv == 13) //enter is pressed
yuhangzhu 3:32e67d121c7f 60 {
yuhangzhu 4:e8142db2bbfd 61 if(line_length == 0)
yuhangzhu 3:32e67d121c7f 62 line_buf[3] = 0;
yuhangzhu 3:32e67d121c7f 63 else
yuhangzhu 3:32e67d121c7f 64 line_buf[3] = 1;
yuhangzhu 4:e8142db2bbfd 65 pc.printf("decimal output : %d %d %d %d", line_buf[3], line_buf[2], line_buf[1], line_buf[0]);
yuhangzhu 4:e8142db2bbfd 66 pc.printf("char output: %c %c %c %c", line_buf[3], line_buf[2], line_buf[1], line_buf[0]);
yuhangzhu 4:e8142db2bbfd 67 break;
yuhangzhu 3:32e67d121c7f 68 }
yuhangzhu 4:e8142db2bbfd 69 else if(recv == 8) //backspace is pressed
yuhangzhu 3:32e67d121c7f 70 {
yuhangzhu 3:32e67d121c7f 71 pc.putc(8);
yuhangzhu 3:32e67d121c7f 72 pc.putc(32);
yuhangzhu 3:32e67d121c7f 73 pc.putc(8);
yuhangzhu 4:e8142db2bbfd 74
yuhangzhu 4:e8142db2bbfd 75 if(line_length <= 3 && line_length>=1)
yuhangzhu 3:32e67d121c7f 76 {
yuhangzhu 4:e8142db2bbfd 77 line_pt --;
yuhangzhu 3:32e67d121c7f 78 line_buf[line_pt] = 255;
yuhangzhu 3:32e67d121c7f 79 }
yuhangzhu 4:e8142db2bbfd 80 if(line_length > 0)
yuhangzhu 4:e8142db2bbfd 81 line_length --;
yuhangzhu 3:32e67d121c7f 82 }
yuhangzhu 3:32e67d121c7f 83 else
yuhangzhu 3:32e67d121c7f 84 {
yuhangzhu 3:32e67d121c7f 85 pc.putc(recv);
yuhangzhu 4:e8142db2bbfd 86 line_length ++;
yuhangzhu 4:e8142db2bbfd 87
yuhangzhu 4:e8142db2bbfd 88 if(line_length <= 3)
yuhangzhu 4:e8142db2bbfd 89 {
yuhangzhu 4:e8142db2bbfd 90 line_buf[line_pt] = recv;
yuhangzhu 3:32e67d121c7f 91 line_pt ++;
yuhangzhu 4:e8142db2bbfd 92 }
yuhangzhu 3:32e67d121c7f 93 }
yuhangzhu 3:32e67d121c7f 94 }
yuhangzhu 3:32e67d121c7f 95
yuhangzhu 3:32e67d121c7f 96 state = MODE_IDLE;
yuhangzhu 3:32e67d121c7f 97 break;
yuhangzhu 5:50ea1502a949 98
yuhangzhu 1:cb6811ef87de 99 }
yuhangzhu 0:249f6f78cd05 100
yuhangzhu 0:249f6f78cd05 101
yuhangzhu 0:249f6f78cd05 102 }
yuhangzhu 0:249f6f78cd05 103
yuhangzhu 0:249f6f78cd05 104
yuhangzhu 0:249f6f78cd05 105 return 0;
yuhangzhu 0:249f6f78cd05 106 }