yuhang zhu / Mbed 2 deprecated ADAM_menu

Dependencies:   mbed

Committer:
yuhangzhu
Date:
Fri Jul 12 20:02:01 2013 +0000
Revision:
3:32e67d121c7f
Parent:
2:45db4f4ca70d
Child:
4:e8142db2bbfd
line buffer first trial 0.1

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 3:32e67d121c7f 14 int line_pt;
yuhangzhu 2:45db4f4ca70d 15
yuhangzhu 0:249f6f78cd05 16 int main() {
yuhangzhu 0:249f6f78cd05 17
yuhangzhu 0:249f6f78cd05 18 pc.baud(115200); //config buad rate
yuhangzhu 1:cb6811ef87de 19 state = MODE_IDLE;
yuhangzhu 3:32e67d121c7f 20 line_buf[3] = 0;
yuhangzhu 3:32e67d121c7f 21 line_buf[2] = 255;
yuhangzhu 3:32e67d121c7f 22 line_buf[1] = 255;
yuhangzhu 3:32e67d121c7f 23 line_buf[0] = 255;
yuhangzhu 0:249f6f78cd05 24
yuhangzhu 0:249f6f78cd05 25 while(1)
yuhangzhu 0:249f6f78cd05 26 {
yuhangzhu 1:cb6811ef87de 27 switch(state)
yuhangzhu 0:249f6f78cd05 28 {
yuhangzhu 1:cb6811ef87de 29 case MODE_IDLE:
yuhangzhu 1:cb6811ef87de 30 pc.printf("%s", main_menu);
yuhangzhu 3:32e67d121c7f 31 recv = pc.getc();
yuhangzhu 3:32e67d121c7f 32 mode_idle_handler(&state, recv);
yuhangzhu 3:32e67d121c7f 33 //pc.printf("%d", state);
yuhangzhu 3:32e67d121c7f 34 break;
yuhangzhu 3:32e67d121c7f 35 case MODE_CHA1PHA:
yuhangzhu 3:32e67d121c7f 36 pc.printf("%s", cmd1);
yuhangzhu 3:32e67d121c7f 37 line_buf[3] = 0;
yuhangzhu 3:32e67d121c7f 38 line_pt = 0;
yuhangzhu 3:32e67d121c7f 39
yuhangzhu 3:32e67d121c7f 40 while(1)
yuhangzhu 3:32e67d121c7f 41 {
yuhangzhu 3:32e67d121c7f 42 recv = pc.getc();
yuhangzhu 3:32e67d121c7f 43 if(recv == 13)
yuhangzhu 3:32e67d121c7f 44 {
yuhangzhu 3:32e67d121c7f 45 if(line_pt == 0)
yuhangzhu 3:32e67d121c7f 46 line_buf[3] = 0;
yuhangzhu 3:32e67d121c7f 47 else
yuhangzhu 3:32e67d121c7f 48 line_buf[3] = 1;
yuhangzhu 3:32e67d121c7f 49
yuhangzhu 3:32e67d121c7f 50 break; //enter pressed
yuhangzhu 3:32e67d121c7f 51 }
yuhangzhu 3:32e67d121c7f 52 else if(recv == 8)
yuhangzhu 3:32e67d121c7f 53 {
yuhangzhu 3:32e67d121c7f 54 pc.putc(8);
yuhangzhu 3:32e67d121c7f 55 pc.putc(32);
yuhangzhu 3:32e67d121c7f 56 pc.putc(8);
yuhangzhu 3:32e67d121c7f 57 if(line_pt == 0)
yuhangzhu 3:32e67d121c7f 58 line_buf[0] = 255;
yuhangzhu 3:32e67d121c7f 59 else if(line_pt > 0)
yuhangzhu 3:32e67d121c7f 60 {
yuhangzhu 3:32e67d121c7f 61 line_buf[line_pt] = 255;
yuhangzhu 3:32e67d121c7f 62 line_pt --;
yuhangzhu 3:32e67d121c7f 63 }
yuhangzhu 3:32e67d121c7f 64 }
yuhangzhu 3:32e67d121c7f 65 else
yuhangzhu 3:32e67d121c7f 66 {
yuhangzhu 3:32e67d121c7f 67 pc.putc(recv);
yuhangzhu 3:32e67d121c7f 68 line_buf[line_pt] = recv;
yuhangzhu 3:32e67d121c7f 69 if(line_pt < 2)
yuhangzhu 3:32e67d121c7f 70 line_pt ++;
yuhangzhu 3:32e67d121c7f 71 }
yuhangzhu 3:32e67d121c7f 72 }
yuhangzhu 3:32e67d121c7f 73
yuhangzhu 3:32e67d121c7f 74 state = MODE_IDLE;
yuhangzhu 3:32e67d121c7f 75 break;
yuhangzhu 3:32e67d121c7f 76 case MODE_CHA1AMP:
yuhangzhu 3:32e67d121c7f 77 pc.printf("%s", cmd2);
yuhangzhu 3:32e67d121c7f 78 state = MODE_IDLE;
yuhangzhu 0:249f6f78cd05 79 break;
yuhangzhu 1:cb6811ef87de 80 }
yuhangzhu 0:249f6f78cd05 81
yuhangzhu 0:249f6f78cd05 82
yuhangzhu 0:249f6f78cd05 83 }
yuhangzhu 0:249f6f78cd05 84
yuhangzhu 0:249f6f78cd05 85
yuhangzhu 0:249f6f78cd05 86 return 0;
yuhangzhu 0:249f6f78cd05 87 }