Damian Herman / Mbed 2 deprecated NetrunnerMain

Dependencies:   mbed

Committer:
overkiller
Date:
Sat Aug 15 11:47:53 2015 +0000
Revision:
6:9eb153e1d472
Parent:
5:1afe17a20a5b
bugfix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
overkiller 3:def8a92db030 1 #ifndef SERIALPROMPT_H
overkiller 3:def8a92db030 2 #define SERIALPROMPT_H
overkiller 4:cc391b3f3e57 3 #include "EngineDriver.h"
overkiller 4:cc391b3f3e57 4 #include "VoltageGetter.h"
overkiller 3:def8a92db030 5 #include "mbed.h"
overkiller 3:def8a92db030 6 const char* prompt = "$>";
overkiller 6:9eb153e1d472 7 const char* help = "h - help d - drive driving unit\n\r v - get input voltage s - get collision sensor distance \n\r";
overkiller 5:1afe17a20a5b 8 const char* drivingMode = "Going to driving mode.\n\r Available commands: e - exit from driving mode \n\r";
overkiller 4:cc391b3f3e57 9 const char* voltage = "Actual voltage: %g \n\r";
overkiller 4:cc391b3f3e57 10 bool isDriving = false;
overkiller 4:cc391b3f3e57 11 AnalogIn voltagePin(A0);
overkiller 5:1afe17a20a5b 12 extern int inState[4];
overkiller 5:1afe17a20a5b 13 extern void applyStates();
overkiller 6:9eb153e1d472 14 extern const char* distMsg;
overkiller 6:9eb153e1d472 15 extern float actualDistance;
overkiller 3:def8a92db030 16 void displayPrompt(Serial* pcConnection)
overkiller 3:def8a92db030 17 {
overkiller 3:def8a92db030 18 pcConnection->printf(prompt);
overkiller 3:def8a92db030 19 }
overkiller 4:cc391b3f3e57 20 void displayMessage(const char* msg, Serial* pcConnection)
overkiller 4:cc391b3f3e57 21 {
overkiller 4:cc391b3f3e57 22 pcConnection->printf(msg);
overkiller 4:cc391b3f3e57 23 displayPrompt(pcConnection);
overkiller 4:cc391b3f3e57 24 }
overkiller 4:cc391b3f3e57 25 void displayMessage(const char* msg, Serial* pcConnection, float number)
overkiller 4:cc391b3f3e57 26 {
overkiller 4:cc391b3f3e57 27 pcConnection->printf(msg, number);
overkiller 4:cc391b3f3e57 28 displayPrompt(pcConnection);
overkiller 4:cc391b3f3e57 29 }
overkiller 4:cc391b3f3e57 30 ///
overkiller 4:cc391b3f3e57 31 /// 0 - not known command
overkiller 4:cc391b3f3e57 32 /// 2 - drive the driving unit
overkiller 4:cc391b3f3e57 33 int getMenuInput(Serial* pcConnection)
overkiller 3:def8a92db030 34 {
overkiller 3:def8a92db030 35 if(pcConnection->readable())
overkiller 3:def8a92db030 36 {
overkiller 4:cc391b3f3e57 37 char msg = pcConnection->getc();
overkiller 4:cc391b3f3e57 38 if(msg == 'h')
overkiller 4:cc391b3f3e57 39 {
overkiller 4:cc391b3f3e57 40 displayMessage(help, pcConnection);
overkiller 4:cc391b3f3e57 41 }else if(msg == 'd')
overkiller 4:cc391b3f3e57 42 {
overkiller 4:cc391b3f3e57 43 displayMessage(drivingMode, pcConnection);
overkiller 5:1afe17a20a5b 44 isDriving = true;
overkiller 4:cc391b3f3e57 45 return 2;
overkiller 4:cc391b3f3e57 46 }else if(msg == 'v')
overkiller 4:cc391b3f3e57 47 {
overkiller 4:cc391b3f3e57 48 displayMessage(voltage, pcConnection, getVoltage(&voltagePin));
overkiller 5:1afe17a20a5b 49 return 3;
overkiller 6:9eb153e1d472 50 }else if(msg == 's')
overkiller 6:9eb153e1d472 51 {
overkiller 6:9eb153e1d472 52 displayMessage(distMsg, pcConnection, actualDistance);
overkiller 6:9eb153e1d472 53 return 4;
overkiller 4:cc391b3f3e57 54 }
overkiller 4:cc391b3f3e57 55 }
overkiller 4:cc391b3f3e57 56 return 0;
overkiller 4:cc391b3f3e57 57 }
overkiller 5:1afe17a20a5b 58
overkiller 3:def8a92db030 59 #endif // SERIALPROMPT_H