Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
include/SerialPrompt.h@4:cc391b3f3e57, 2015-08-04 (annotated)
- 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?
| User | Revision | Line number | New 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 |