yuhang zhu / Mbed 2 deprecated ADAM_menu

Dependencies:   mbed

Committer:
yuhangzhu
Date:
Sat Jul 13 18:02:38 2013 +0000
Revision:
6:e510aab8f2ce
Parent:
3:32e67d121c7f
Child:
7:c268547fb6c8
menu works 0.2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yuhangzhu 2:45db4f4ca70d 1 #include "parameters.h"
yuhangzhu 2:45db4f4ca70d 2
yuhangzhu 2:45db4f4ca70d 3 void mode_idle_handler(int* state, char sel)
yuhangzhu 2:45db4f4ca70d 4 {
yuhangzhu 3:32e67d121c7f 5 if(sel>='1' && sel<='7')
yuhangzhu 2:45db4f4ca70d 6 *state = sel - '0'; //select a mode
yuhangzhu 2:45db4f4ca70d 7 else
yuhangzhu 2:45db4f4ca70d 8 *state = MODE_IDLE;
yuhangzhu 6:e510aab8f2ce 9 }
yuhangzhu 6:e510aab8f2ce 10
yuhangzhu 6:e510aab8f2ce 11
yuhangzhu 6:e510aab8f2ce 12 int parse_phase(char* line_buf, char* adam_pha)
yuhangzhu 6:e510aab8f2ce 13 {
yuhangzhu 6:e510aab8f2ce 14
yuhangzhu 6:e510aab8f2ce 15 char temp = 0;
yuhangzhu 6:e510aab8f2ce 16
yuhangzhu 6:e510aab8f2ce 17 if(line_buf[3] == LINEBUF_EMPTY)
yuhangzhu 6:e510aab8f2ce 18 return PARSE_EMPTY; //empty line
yuhangzhu 6:e510aab8f2ce 19 if(line_buf[3] == LINEBUF_TOOLONG)
yuhangzhu 6:e510aab8f2ce 20 return PARSE_LONG; //buffer too long
yuhangzhu 6:e510aab8f2ce 21
yuhangzhu 6:e510aab8f2ce 22 if(line_buf[0] == '0')
yuhangzhu 6:e510aab8f2ce 23 {
yuhangzhu 6:e510aab8f2ce 24 if(line_buf[1] == 255 && line_buf[2] == 255)
yuhangzhu 6:e510aab8f2ce 25 {
yuhangzhu 6:e510aab8f2ce 26 *adam_pha = 0;
yuhangzhu 6:e510aab8f2ce 27 return PARSE_OK;
yuhangzhu 6:e510aab8f2ce 28 }
yuhangzhu 6:e510aab8f2ce 29 else
yuhangzhu 6:e510aab8f2ce 30 return PARSE_ERR; //value is zero
yuhangzhu 6:e510aab8f2ce 31 }
yuhangzhu 6:e510aab8f2ce 32
yuhangzhu 6:e510aab8f2ce 33
yuhangzhu 6:e510aab8f2ce 34
yuhangzhu 6:e510aab8f2ce 35
yuhangzhu 6:e510aab8f2ce 36 if(line_buf[1]>='0' && line_buf[1]<='4' && line_buf[2]>='0'&& line_buf[2]<='9' && line_buf[0] == '-')
yuhangzhu 6:e510aab8f2ce 37 {
yuhangzhu 6:e510aab8f2ce 38 temp = (line_buf[1] - '0')*10;
yuhangzhu 6:e510aab8f2ce 39 temp += line_buf[2] - '0';
yuhangzhu 6:e510aab8f2ce 40 *adam_pha = temp/7;
yuhangzhu 6:e510aab8f2ce 41
yuhangzhu 6:e510aab8f2ce 42 if(temp % 7 == 0)
yuhangzhu 6:e510aab8f2ce 43 return PARSE_OK;
yuhangzhu 6:e510aab8f2ce 44 else
yuhangzhu 6:e510aab8f2ce 45 return PARSE_ROUNDED;
yuhangzhu 6:e510aab8f2ce 46 } //double digit input
yuhangzhu 6:e510aab8f2ce 47 else if(line_buf[2] == 255 && line_buf[1]>='0' && line_buf[1] <= '9' && line_buf[0] == '-')
yuhangzhu 6:e510aab8f2ce 48 {
yuhangzhu 6:e510aab8f2ce 49 temp = line_buf[1] - '0';
yuhangzhu 6:e510aab8f2ce 50 *adam_pha = temp/7;
yuhangzhu 6:e510aab8f2ce 51
yuhangzhu 6:e510aab8f2ce 52 if(temp % 7 == 0)
yuhangzhu 6:e510aab8f2ce 53 return PARSE_OK;
yuhangzhu 6:e510aab8f2ce 54 else
yuhangzhu 6:e510aab8f2ce 55 return PARSE_ROUNDED;
yuhangzhu 6:e510aab8f2ce 56 } //single digit input
yuhangzhu 6:e510aab8f2ce 57 else
yuhangzhu 6:e510aab8f2ce 58 return PARSE_ERR;
yuhangzhu 6:e510aab8f2ce 59 }
yuhangzhu 6:e510aab8f2ce 60
yuhangzhu 6:e510aab8f2ce 61 int parse_amp(char* line_buf, char* adam_amp)
yuhangzhu 6:e510aab8f2ce 62 {
yuhangzhu 6:e510aab8f2ce 63
yuhangzhu 6:e510aab8f2ce 64 char temp = 0;
yuhangzhu 6:e510aab8f2ce 65
yuhangzhu 6:e510aab8f2ce 66 if(line_buf[3] == LINEBUF_EMPTY)
yuhangzhu 6:e510aab8f2ce 67 return PARSE_EMPTY;
yuhangzhu 6:e510aab8f2ce 68 if(line_buf[3] == LINEBUF_TOOLONG)
yuhangzhu 6:e510aab8f2ce 69 return PARSE_LONG;
yuhangzhu 6:e510aab8f2ce 70
yuhangzhu 6:e510aab8f2ce 71 if(line_buf[0] == '0')
yuhangzhu 6:e510aab8f2ce 72 {
yuhangzhu 6:e510aab8f2ce 73 if((line_buf[1] == 255 && line_buf[2] == 255) ||(line_buf[1] == '.' && line_buf[2] == '0'))
yuhangzhu 6:e510aab8f2ce 74 {
yuhangzhu 6:e510aab8f2ce 75 *adam_amp = 0;
yuhangzhu 6:e510aab8f2ce 76 return PARSE_OK;
yuhangzhu 6:e510aab8f2ce 77 }
yuhangzhu 6:e510aab8f2ce 78 else
yuhangzhu 6:e510aab8f2ce 79 return PARSE_ERR;
yuhangzhu 6:e510aab8f2ce 80 } //zero input
yuhangzhu 6:e510aab8f2ce 81 if(line_buf[0]>='0' && line_buf[0]<='7' && line_buf[1] == 255 && line_buf[2] == 255)
yuhangzhu 6:e510aab8f2ce 82 {
yuhangzhu 6:e510aab8f2ce 83 temp = (line_buf[0] - '0')*10;
yuhangzhu 6:e510aab8f2ce 84 *adam_amp = temp/5;
yuhangzhu 6:e510aab8f2ce 85 return PARSE_OK;
yuhangzhu 6:e510aab8f2ce 86 } //single digit input
yuhangzhu 6:e510aab8f2ce 87 else if(line_buf[0]>='0' && line_buf[0]<='7' && line_buf[2]>='0'&& line_buf[2]<='9' && line_buf[1] == '.')
yuhangzhu 6:e510aab8f2ce 88 {
yuhangzhu 6:e510aab8f2ce 89 temp = (line_buf[0] - '0')*10;
yuhangzhu 6:e510aab8f2ce 90 temp += line_buf[2] - '0';
yuhangzhu 6:e510aab8f2ce 91 *adam_amp = temp / 5;
yuhangzhu 6:e510aab8f2ce 92
yuhangzhu 6:e510aab8f2ce 93 if(temp % 5 == 0)
yuhangzhu 6:e510aab8f2ce 94 return PARSE_OK;
yuhangzhu 6:e510aab8f2ce 95 else
yuhangzhu 6:e510aab8f2ce 96 return PARSE_ROUNDED;
yuhangzhu 6:e510aab8f2ce 97 }
yuhangzhu 6:e510aab8f2ce 98 else
yuhangzhu 6:e510aab8f2ce 99 return PARSE_ERR;
yuhangzhu 6:e510aab8f2ce 100
yuhangzhu 6:e510aab8f2ce 101
yuhangzhu 2:45db4f4ca70d 102 }