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.
main.cpp@0:ac40171bed6b, 2015-05-27 (annotated)
- Committer:
- fantasiiio
- Date:
- Wed May 27 22:47:33 2015 +0000
- Revision:
- 0:ac40171bed6b
first commit
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| fantasiiio | 0:ac40171bed6b | 1 | #include "mbed.h" |
| fantasiiio | 0:ac40171bed6b | 2 | #include "Commands.h" |
| fantasiiio | 0:ac40171bed6b | 3 | |
| fantasiiio | 0:ac40171bed6b | 4 | #define COMMAND_MAX_SIZE 30 |
| fantasiiio | 0:ac40171bed6b | 5 | |
| fantasiiio | 0:ac40171bed6b | 6 | char command[COMMAND_MAX_SIZE]; |
| fantasiiio | 0:ac40171bed6b | 7 | int cmdIndex; |
| fantasiiio | 0:ac40171bed6b | 8 | int commandReady; |
| fantasiiio | 0:ac40171bed6b | 9 | |
| fantasiiio | 0:ac40171bed6b | 10 | CommandList commands; |
| fantasiiio | 0:ac40171bed6b | 11 | Serial pc(USBTX, USBRX); |
| fantasiiio | 0:ac40171bed6b | 12 | |
| fantasiiio | 0:ac40171bed6b | 13 | // This function is called when a character goes into the RX buffer. |
| fantasiiio | 0:ac40171bed6b | 14 | void rxCallback() { |
| fantasiiio | 0:ac40171bed6b | 15 | char c; |
| fantasiiio | 0:ac40171bed6b | 16 | c = pc.getc(); |
| fantasiiio | 0:ac40171bed6b | 17 | |
| fantasiiio | 0:ac40171bed6b | 18 | if(c != '\n') |
| fantasiiio | 0:ac40171bed6b | 19 | { |
| fantasiiio | 0:ac40171bed6b | 20 | command[cmdIndex++] = c; |
| fantasiiio | 0:ac40171bed6b | 21 | command[cmdIndex] = 0; |
| fantasiiio | 0:ac40171bed6b | 22 | } |
| fantasiiio | 0:ac40171bed6b | 23 | |
| fantasiiio | 0:ac40171bed6b | 24 | if(cmdIndex == COMMAND_MAX_SIZE || c == '\r') |
| fantasiiio | 0:ac40171bed6b | 25 | { |
| fantasiiio | 0:ac40171bed6b | 26 | command[cmdIndex-1] = 0; |
| fantasiiio | 0:ac40171bed6b | 27 | commandReady = 1; |
| fantasiiio | 0:ac40171bed6b | 28 | cmdIndex = 0; |
| fantasiiio | 0:ac40171bed6b | 29 | } |
| fantasiiio | 0:ac40171bed6b | 30 | } |
| fantasiiio | 0:ac40171bed6b | 31 | |
| fantasiiio | 0:ac40171bed6b | 32 | void parseServo(CommandArgs cmdArgs) |
| fantasiiio | 0:ac40171bed6b | 33 | { |
| fantasiiio | 0:ac40171bed6b | 34 | if(cmdArgs.paramCount != 3) |
| fantasiiio | 0:ac40171bed6b | 35 | printf("command %s: wrong parameters count\r\n", cmdArgs.params[0]); |
| fantasiiio | 0:ac40171bed6b | 36 | |
| fantasiiio | 0:ac40171bed6b | 37 | printf("servo: %s %s\r\n",cmdArgs.params[1], cmdArgs.params[2]); |
| fantasiiio | 0:ac40171bed6b | 38 | } |
| fantasiiio | 0:ac40171bed6b | 39 | |
| fantasiiio | 0:ac40171bed6b | 40 | void parseUnknown(CommandArgs cmdArgs) |
| fantasiiio | 0:ac40171bed6b | 41 | { |
| fantasiiio | 0:ac40171bed6b | 42 | printf("Unknown command '%s'\r\n", cmdArgs.params[0]); |
| fantasiiio | 0:ac40171bed6b | 43 | } |
| fantasiiio | 0:ac40171bed6b | 44 | |
| fantasiiio | 0:ac40171bed6b | 45 | int main() |
| fantasiiio | 0:ac40171bed6b | 46 | { |
| fantasiiio | 0:ac40171bed6b | 47 | cmdIndex = 0; |
| fantasiiio | 0:ac40171bed6b | 48 | commandReady = 0; |
| fantasiiio | 0:ac40171bed6b | 49 | |
| fantasiiio | 0:ac40171bed6b | 50 | commands.add("unknown",parseUnknown); |
| fantasiiio | 0:ac40171bed6b | 51 | commands.add("servo",parseServo); |
| fantasiiio | 0:ac40171bed6b | 52 | |
| fantasiiio | 0:ac40171bed6b | 53 | pc.printf("Enter Command:\r\n"); |
| fantasiiio | 0:ac40171bed6b | 54 | pc.attach(&rxCallback, Serial::RxIrq); |
| fantasiiio | 0:ac40171bed6b | 55 | |
| fantasiiio | 0:ac40171bed6b | 56 | while(1) |
| fantasiiio | 0:ac40171bed6b | 57 | { |
| fantasiiio | 0:ac40171bed6b | 58 | if(commandReady) |
| fantasiiio | 0:ac40171bed6b | 59 | { |
| fantasiiio | 0:ac40171bed6b | 60 | commands.parseCommand(command); |
| fantasiiio | 0:ac40171bed6b | 61 | commandReady = 0; |
| fantasiiio | 0:ac40171bed6b | 62 | } |
| fantasiiio | 0:ac40171bed6b | 63 | } |
| fantasiiio | 0:ac40171bed6b | 64 | } |