Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
handlers.cpp
- Committer:
- yuhangzhu
- Date:
- 2013-07-13
- Revision:
- 7:c268547fb6c8
- Parent:
- 6:e510aab8f2ce
- Child:
- 12:5e4cba1182ab
File content as of revision 7:c268547fb6c8:
#include "parameters.h" void mode_idle_handler(int* state, char sel) { if(sel>='1' && sel<='7') *state = sel - '0'; //select a mode else *state = MODE_IDLE; } int parse_phase(char* line_buf, char* adam_pha) { char temp = 0; if(line_buf[3] == LINEBUF_EMPTY) return PARSE_EMPTY; //empty line if(line_buf[3] == LINEBUF_TOOLONG) return PARSE_LONG; //buffer too long if(line_buf[0] == '0') //input is 0 { if(line_buf[1] == 255 && line_buf[2] == 255) { *adam_pha = 0; return PARSE_OK; } else return PARSE_ERR; } if(line_buf[1]>='0' && line_buf[1]<='4' && line_buf[2]>='0'&& line_buf[2]<='9' && line_buf[0] == '-') { temp = (line_buf[1] - '0')*10; temp += line_buf[2] - '0'; *adam_pha = temp/7; if(temp % 7 == 0) return PARSE_OK; else return PARSE_ROUNDED; } //double digit input else if(line_buf[2] == 255 && line_buf[1]>='0' && line_buf[1] <= '9' && line_buf[0] == '-') { temp = line_buf[1] - '0'; *adam_pha = temp/7; if(temp % 7 == 0) return PARSE_OK; else return PARSE_ROUNDED; } //single digit input else return PARSE_ERR; } int parse_amp(char* line_buf, char* adam_amp) { char temp = 0; if(line_buf[3] == LINEBUF_EMPTY) return PARSE_EMPTY; if(line_buf[3] == LINEBUF_TOOLONG) return PARSE_LONG; if(line_buf[0] == '0') //Input value is 0, both 0 and 0.0 is accpeted { if((line_buf[1] == 255 && line_buf[2] == 255) ||(line_buf[1] == '.' && line_buf[2] == '0')) { *adam_amp = 0; return PARSE_OK; } else return PARSE_ERR; } //single digit input if(line_buf[0]>='0' && line_buf[0]<='7' && line_buf[1] == 255 && line_buf[2] == 255) { temp = (line_buf[0] - '0')*10; *adam_amp = temp/5; return PARSE_OK; } //x.x format input else if(line_buf[0]>='0' && line_buf[0]<='7' && line_buf[2]>='0'&& line_buf[2]<='9' && line_buf[1] == '.') { temp = (line_buf[0] - '0')*10; temp += line_buf[2] - '0'; *adam_amp = temp / 5; if(temp % 5 == 0) return PARSE_OK; else return PARSE_ROUNDED; } else return PARSE_ERR; }