Keisuke Sehara
/
STM32_Whisking
fast-feedback virtual target task code on STM Nucleo
utils.h@1:871d3066c2ab, 2018-05-14 (annotated)
- Committer:
- gwappa
- Date:
- Mon May 14 17:37:26 2018 +0000
- Revision:
- 1:871d3066c2ab
- Child:
- 8:973dcd190672
separated task-related parameters
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gwappa | 1:871d3066c2ab | 1 | #ifndef UTILS_H_ |
gwappa | 1:871d3066c2ab | 2 | #define UTILS_H_ |
gwappa | 1:871d3066c2ab | 3 | #include "IO.h" |
gwappa | 1:871d3066c2ab | 4 | |
gwappa | 1:871d3066c2ab | 5 | inline bool isWhitespace(const char& ch) { |
gwappa | 1:871d3066c2ab | 6 | return (ch == ' ') || |
gwappa | 1:871d3066c2ab | 7 | (ch == '\t') || |
gwappa | 1:871d3066c2ab | 8 | (ch == '\r') || |
gwappa | 1:871d3066c2ab | 9 | (ch == '\n') || |
gwappa | 1:871d3066c2ab | 10 | (ch == '\v') || |
gwappa | 1:871d3066c2ab | 11 | (ch == '\f'); |
gwappa | 1:871d3066c2ab | 12 | } |
gwappa | 1:871d3066c2ab | 13 | |
gwappa | 1:871d3066c2ab | 14 | template <typename V> |
gwappa | 1:871d3066c2ab | 15 | V parseUnsignedFromSerial(const V& defaultvalue) |
gwappa | 1:871d3066c2ab | 16 | { |
gwappa | 1:871d3066c2ab | 17 | V value = 0; |
gwappa | 1:871d3066c2ab | 18 | while(true) { |
gwappa | 1:871d3066c2ab | 19 | |
gwappa | 1:871d3066c2ab | 20 | int readChar = IO::getc(); |
gwappa | 1:871d3066c2ab | 21 | |
gwappa | 1:871d3066c2ab | 22 | // only accepts digits |
gwappa | 1:871d3066c2ab | 23 | if ((readChar >= 48) && (readChar <= 57)) { |
gwappa | 1:871d3066c2ab | 24 | value = value * 10 + (readChar - 48); |
gwappa | 1:871d3066c2ab | 25 | // continues parsing |
gwappa | 1:871d3066c2ab | 26 | |
gwappa | 1:871d3066c2ab | 27 | } else if ( isWhitespace((char)readChar) || (readChar == 59) ) { |
gwappa | 1:871d3066c2ab | 28 | // space or ';' |
gwappa | 1:871d3066c2ab | 29 | // ends parsing |
gwappa | 1:871d3066c2ab | 30 | break; |
gwappa | 1:871d3066c2ab | 31 | |
gwappa | 1:871d3066c2ab | 32 | } else { |
gwappa | 1:871d3066c2ab | 33 | IO::error("%c",(char)readChar); |
gwappa | 1:871d3066c2ab | 34 | // set value back to original |
gwappa | 1:871d3066c2ab | 35 | value = defaultvalue; |
gwappa | 1:871d3066c2ab | 36 | break; |
gwappa | 1:871d3066c2ab | 37 | |
gwappa | 1:871d3066c2ab | 38 | } |
gwappa | 1:871d3066c2ab | 39 | } |
gwappa | 1:871d3066c2ab | 40 | |
gwappa | 1:871d3066c2ab | 41 | return value; |
gwappa | 1:871d3066c2ab | 42 | } |
gwappa | 1:871d3066c2ab | 43 | #endif |