Combines locate fix, show/hide cursor + Justin Jordans additions
Fork of Terminal by
Diff: Terminal.cpp
- Revision:
- 6:419eea2fe960
- Parent:
- 4:4510b10fb5d9
- Child:
- 7:aa29b7e10cd8
--- a/Terminal.cpp Fri Jun 03 19:05:10 2016 +0000 +++ b/Terminal.cpp Sat Jul 30 20:14:05 2016 +0000 @@ -22,8 +22,6 @@ #include "Terminal.h" -#include "mbed.h" - Terminal::Terminal(PinName tx, PinName rx) : Serial(tx, rx){} void Terminal::cls() { @@ -138,3 +136,46 @@ return c[0]; } + + +float Terminal::get_float(const char *msg, const float min_val, const float max_val) +{ + char str[32]; + uint8_t idx; + + float user_input; + + do + { + printf(msg); + + //get user input + idx = 0; + do + { + if(readable()) + { + str[idx++] = getc(); + } + } + while((str[idx-1] != 0x0A) && (idx < 32)); + + //Remove trailing newline and CR, if there. + if((strlen(str) > 0 ) && (str[strlen(str) - 1] == 0x0A) && (str[strlen(str) - 2] == 0x0D)) + { + str[strlen(str) - 1] = '\0'; + str[strlen(str) - 1] = '\0'; + } + + user_input = atof(str); + + if((user_input <= min_val) || (user_input >= max_val)) + { + printf("\nYou entered = %f\n", user_input); + printf("\nOut of range\n"); + } + } + while((user_input <= min_val) || (user_input >= max_val)); + + return(user_input); +}