robot

Dependencies:   FastPWM3 mbed

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?

UserRevisionLine numberNew 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 }