Bayley Wang
/
foc-ed_in_the_bot_compact
robot
CommandProcessor/CommandProcessor.cpp@252:38644631ed97, 2018-11-13 (annotated)
- Committer:
- bwang
- Date:
- Tue Nov 13 17:46:23 2018 +0000
- Revision:
- 252:38644631ed97
- Parent:
- 251:4ba2f238066f
11/13/2018 12:45 - hitting <return> on empty line prints "\r>", so that hitting enter after intially connecting to the controller generates a prompt
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 | 251:4ba2f238066f | 44 | break; |
bwang | 181:d3510c8beab6 | 45 | default: |
bwang | 247:da647f7185b7 | 46 | pc->printf("%s\n", "Bad command"); |
bwang | 247:da647f7185b7 | 47 | break; |
bwang | 247:da647f7185b7 | 48 | } |
bwang | 247:da647f7185b7 | 49 | |
bwang | 247:da647f7185b7 | 50 | io.cmd_busy = false; |
bwang | 247:da647f7185b7 | 51 | } |
bwang | 247:da647f7185b7 | 52 | |
bwang | 247:da647f7185b7 | 53 | void processCmdFast(Serial *pc, PreferenceWriter *pref, char *buf) { |
bwang | 247:da647f7185b7 | 54 | io.cmd_busy = true; |
bwang | 247:da647f7185b7 | 55 | |
bwang | 247:da647f7185b7 | 56 | switch (buf[0]) { |
bwang | 247:da647f7185b7 | 57 | case 128: |
bwang | 247:da647f7185b7 | 58 | cmdf_setp(pc, buf[1]); |
bwang | 247:da647f7185b7 | 59 | break; |
bwang | 247:da647f7185b7 | 60 | case 129: |
bwang | 247:da647f7185b7 | 61 | cmdf_w(pc); |
bwang | 247:da647f7185b7 | 62 | break; |
bwang | 247:da647f7185b7 | 63 | case 130: |
bwang | 247:da647f7185b7 | 64 | cmdf_data(pc); |
bwang | 247:da647f7185b7 | 65 | break; |
bwang | 247:da647f7185b7 | 66 | default: |
bwang | 181:d3510c8beab6 | 67 | break; |
bwang | 181:d3510c8beab6 | 68 | } |
bwang | 246:167b5d50d0f2 | 69 | |
bwang | 246:167b5d50d0f2 | 70 | io.cmd_busy = false; |
bwang | 181:d3510c8beab6 | 71 | } |