fast-feedback virtual target task code on STM Nucleo

Dependencies:   mbed

Committer:
gwappa
Date:
Thu May 31 15:25:37 2018 +0000
Revision:
8:973dcd190672
Parent:
1:871d3066c2ab
Child:
23:61af0317e404
current working

Who changed what in which revision?

UserRevisionLine numberNew 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 8:973dcd190672 14 inline us_timestamp_t ms_to_us(const uint16_t& ms)
gwappa 8:973dcd190672 15 {
gwappa 8:973dcd190672 16 return ((us_timestamp_t)ms)*1000;
gwappa 8:973dcd190672 17 }
gwappa 8:973dcd190672 18
gwappa 1:871d3066c2ab 19 template <typename V>
gwappa 1:871d3066c2ab 20 V parseUnsignedFromSerial(const V& defaultvalue)
gwappa 1:871d3066c2ab 21 {
gwappa 1:871d3066c2ab 22 V value = 0;
gwappa 1:871d3066c2ab 23 while(true) {
gwappa 1:871d3066c2ab 24
gwappa 1:871d3066c2ab 25 int readChar = IO::getc();
gwappa 1:871d3066c2ab 26
gwappa 1:871d3066c2ab 27 // only accepts digits
gwappa 1:871d3066c2ab 28 if ((readChar >= 48) && (readChar <= 57)) {
gwappa 1:871d3066c2ab 29 value = value * 10 + (readChar - 48);
gwappa 1:871d3066c2ab 30 // continues parsing
gwappa 1:871d3066c2ab 31
gwappa 1:871d3066c2ab 32 } else if ( isWhitespace((char)readChar) || (readChar == 59) ) {
gwappa 1:871d3066c2ab 33 // space or ';'
gwappa 1:871d3066c2ab 34 // ends parsing
gwappa 1:871d3066c2ab 35 break;
gwappa 1:871d3066c2ab 36
gwappa 1:871d3066c2ab 37 } else {
gwappa 1:871d3066c2ab 38 IO::error("%c",(char)readChar);
gwappa 1:871d3066c2ab 39 // set value back to original
gwappa 1:871d3066c2ab 40 value = defaultvalue;
gwappa 1:871d3066c2ab 41 break;
gwappa 1:871d3066c2ab 42
gwappa 1:871d3066c2ab 43 }
gwappa 1:871d3066c2ab 44 }
gwappa 1:871d3066c2ab 45
gwappa 1:871d3066c2ab 46 return value;
gwappa 1:871d3066c2ab 47 }
gwappa 1:871d3066c2ab 48 #endif