Bayley Wang
/
foc-ed_in_the_bot_compact
robot
CommandProcessor/CommandProcessor.cpp@246:167b5d50d0f2, 2018-11-13 (annotated)
- Committer:
- bwang
- Date:
- Tue Nov 13 15:06:37 2018 +0000
- Revision:
- 246:167b5d50d0f2
- Parent:
- 222:b58a95551632
- Child:
- 247:da647f7185b7
11/13/2018 10:05 - added io.cmd_busy flag to block execution of processCmd() during execution of processCmd()
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 181:d3510c8beab6 | 1 | #include "mbed.h" |
bwang | 181:d3510c8beab6 | 2 | #include "CommandProcessor.h" |
bwang | 181:d3510c8beab6 | 3 | #include "PreferenceWriter.h" |
bwang | 181:d3510c8beab6 | 4 | |
bwang | 246:167b5d50d0f2 | 5 | #include "globals.h" |
bwang | 246:167b5d50d0f2 | 6 | |
bwang | 181:d3510c8beab6 | 7 | void processCmd(Serial *pc, PreferenceWriter *pref, char *buf) { |
bwang | 246:167b5d50d0f2 | 8 | io.cmd_busy = true; |
bwang | 246:167b5d50d0f2 | 9 | |
bwang | 181:d3510c8beab6 | 10 | char *tokens[10]; |
bwang | 181:d3510c8beab6 | 11 | int len = tokenize(buf, tokens, 10); |
bwang | 181:d3510c8beab6 | 12 | |
bwang | 181:d3510c8beab6 | 13 | switch (len) { |
bwang | 181:d3510c8beab6 | 14 | case 1: |
bwang | 181:d3510c8beab6 | 15 | if (strcmp(tokens[0], "ls") == 0) cmd_ls(pc); |
bwang | 222:b58a95551632 | 16 | else if (strcmp(tokens[0], "defaults") == 0) cmd_defaults(pc); |
bwang | 222:b58a95551632 | 17 | else if (strcmp(tokens[0], "reload") == 0) cmd_reload(pc, pref); |
bwang | 222:b58a95551632 | 18 | else if (strcmp(tokens[0], "load") == 0) cmd_reload(pc, pref); |
bwang | 222:b58a95551632 | 19 | else if (strcmp(tokens[0], "flush") == 0) cmd_flush(pc, pref); |
bwang | 222:b58a95551632 | 20 | else if (strcmp(tokens[0], "mode") == 0) cmd_ls2(pc, tokens[0]); |
bwang | 222:b58a95551632 | 21 | else if (strcmp(tokens[0], "src") == 0) cmd_ls2(pc, tokens[0]); |
bwang | 222:b58a95551632 | 22 | else if (strcmp(tokens[0], "op") == 0) cmd_ls2(pc, tokens[0]); |
bwang | 222:b58a95551632 | 23 | else if (strcmp(tokens[0], "run") == 0) cmd_mode(pc, tokens[0]); |
bwang | 222:b58a95551632 | 24 | else if (strcmp(tokens[0], "cfg") == 0) cmd_mode(pc, tokens[0]); |
bwang | 222:b58a95551632 | 25 | else if (strcmp(tokens[0], "zero") == 0) cmd_mode(pc, tokens[0]); |
bwang | 222:b58a95551632 | 26 | else if (strcmp(tokens[0], "wizard") == 0) cmd_mode(pc, tokens[0]); |
bwang | 222:b58a95551632 | 27 | else if (strcmp(tokens[0], "exit") == 0) cmd_exit(pc); |
bwang | 222:b58a95551632 | 28 | else if (strcmp(tokens[0], "clear") == 0) cmd_clear(pc); |
bwang | 222:b58a95551632 | 29 | else pc->printf("%s\n", "Bad command"); |
bwang | 181:d3510c8beab6 | 30 | break; |
bwang | 181:d3510c8beab6 | 31 | case 2: |
bwang | 181:d3510c8beab6 | 32 | if (strcmp(tokens[0], "ls") == 0) cmd_ls2(pc, tokens[1]); |
bwang | 222:b58a95551632 | 33 | else if (strcmp(tokens[0], "get") == 0) cmd_ls2(pc, tokens[1]); |
bwang | 222:b58a95551632 | 34 | else if (strcmp(tokens[0], "setp") == 0) cmd_setp(pc, tokens[1]); |
bwang | 222:b58a95551632 | 35 | else if (strcmp(tokens[0], "mode") == 0) cmd_mode(pc, tokens[1]); |
bwang | 222:b58a95551632 | 36 | else if (strcmp(tokens[0], "src") == 0) cmd_src(pc, tokens[1]); |
bwang | 222:b58a95551632 | 37 | else if (strcmp(tokens[0], "op") == 0) cmd_op(pc, tokens[1]); |
bwang | 222:b58a95551632 | 38 | else if (strcmp(tokens[0], "query") == 0) cmd_query(pc, tokens[1]); |
bwang | 222:b58a95551632 | 39 | else pc->printf("%s\n", "Bad command"); |
bwang | 181:d3510c8beab6 | 40 | break; |
bwang | 181:d3510c8beab6 | 41 | case 3: |
bwang | 181:d3510c8beab6 | 42 | if (strcmp(tokens[0], "set") == 0) cmd_set(pc, tokens[1], tokens[2]); |
bwang | 222:b58a95551632 | 43 | else pc->printf("%s\n", "Bad command"); |
bwang | 181:d3510c8beab6 | 44 | default: |
bwang | 181:d3510c8beab6 | 45 | break; |
bwang | 181:d3510c8beab6 | 46 | } |
bwang | 246:167b5d50d0f2 | 47 | |
bwang | 246:167b5d50d0f2 | 48 | io.cmd_busy = false; |
bwang | 181:d3510c8beab6 | 49 | } |