Damian Herman / Mbed 2 deprecated NetrunnerMain

Dependencies:   mbed

Committer:
overkiller
Date:
Tue Aug 04 09:05:16 2015 +0000
Revision:
4:cc391b3f3e57
Parent:
3:def8a92db030
Child:
5:1afe17a20a5b
Voltage checking

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 4:cc391b3f3e57 7 const char* help = "h - help d - drive driving unit\n\r v - get input voltage\n\r";
overkiller 4:cc391b3f3e57 8 const char* drivingMode = "Going to driving mode.\n\r Available commands: f - forwards\n\r b - backwards\n\r r - right\n\r l - left\n\r e - exit from driving mode ";
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 3:def8a92db030 12 void displayPrompt(Serial* pcConnection)
overkiller 3:def8a92db030 13 {
overkiller 3:def8a92db030 14 pcConnection->printf(prompt);
overkiller 3:def8a92db030 15 }
overkiller 4:cc391b3f3e57 16 void displayMessage(const char* msg, Serial* pcConnection)
overkiller 4:cc391b3f3e57 17 {
overkiller 4:cc391b3f3e57 18 pcConnection->printf(msg);
overkiller 4:cc391b3f3e57 19 displayPrompt(pcConnection);
overkiller 4:cc391b3f3e57 20 }
overkiller 4:cc391b3f3e57 21 void displayMessage(const char* msg, Serial* pcConnection, float number)
overkiller 4:cc391b3f3e57 22 {
overkiller 4:cc391b3f3e57 23 pcConnection->printf(msg, number);
overkiller 4:cc391b3f3e57 24 displayPrompt(pcConnection);
overkiller 4:cc391b3f3e57 25 }
overkiller 4:cc391b3f3e57 26 ///
overkiller 4:cc391b3f3e57 27 /// 0 - not known command
overkiller 4:cc391b3f3e57 28 /// 2 - drive the driving unit
overkiller 4:cc391b3f3e57 29 int getMenuInput(Serial* pcConnection)
overkiller 3:def8a92db030 30 {
overkiller 3:def8a92db030 31 if(pcConnection->readable())
overkiller 3:def8a92db030 32 {
overkiller 4:cc391b3f3e57 33 char msg = pcConnection->getc();
overkiller 4:cc391b3f3e57 34 if(msg == 'h')
overkiller 4:cc391b3f3e57 35 {
overkiller 4:cc391b3f3e57 36 displayMessage(help, pcConnection);
overkiller 4:cc391b3f3e57 37 }else if(msg == 'd')
overkiller 4:cc391b3f3e57 38 {
overkiller 4:cc391b3f3e57 39 displayMessage(drivingMode, pcConnection);
overkiller 4:cc391b3f3e57 40 isDriving = true;
overkiller 4:cc391b3f3e57 41 return 2;
overkiller 4:cc391b3f3e57 42 }else if(msg == 'v')
overkiller 4:cc391b3f3e57 43 {
overkiller 4:cc391b3f3e57 44 displayMessage(voltage, pcConnection, getVoltage(&voltagePin));
overkiller 4:cc391b3f3e57 45 }
overkiller 4:cc391b3f3e57 46 }
overkiller 4:cc391b3f3e57 47 return 0;
overkiller 4:cc391b3f3e57 48 }
overkiller 4:cc391b3f3e57 49 void getDrivingModeInput(Serial* pcConnection)
overkiller 4:cc391b3f3e57 50 {
overkiller 4:cc391b3f3e57 51 if(pcConnection->readable() && isDriving)
overkiller 4:cc391b3f3e57 52 {
overkiller 4:cc391b3f3e57 53 while(isDriving)
overkiller 4:cc391b3f3e57 54 {
overkiller 4:cc391b3f3e57 55 char msg = pcConnection->getc();
overkiller 4:cc391b3f3e57 56 if(msg == 'f')
overkiller 4:cc391b3f3e57 57 {
overkiller 4:cc391b3f3e57 58
overkiller 4:cc391b3f3e57 59 }else if(msg == 'e')
overkiller 4:cc391b3f3e57 60 {
overkiller 4:cc391b3f3e57 61 isDriving = false;
overkiller 4:cc391b3f3e57 62 break;
overkiller 4:cc391b3f3e57 63 displayPrompt(pcConnection);
overkiller 4:cc391b3f3e57 64 }
overkiller 4:cc391b3f3e57 65 }
overkiller 3:def8a92db030 66 }
overkiller 3:def8a92db030 67 }
overkiller 3:def8a92db030 68 #endif // SERIALPROMPT_H