Bayley Wang
/
foc-ed_in_the_bot_compact
robot
Embed:
(wiki syntax)
Show/hide line numbers
CommandProcessor.cpp
00001 #include "mbed.h" 00002 #include "CommandProcessor.h" 00003 #include "PreferenceWriter.h" 00004 00005 #include "globals.h" 00006 00007 void processCmd(Serial *pc, PreferenceWriter *pref, char *buf) { 00008 io.cmd_busy = true; 00009 00010 char *tokens[10]; 00011 int len = tokenize(buf, tokens, 10); 00012 00013 switch (len) { 00014 case 1: 00015 if (strcmp(tokens[0], "ls") == 0) cmd_ls(pc); 00016 else if (strcmp(tokens[0], "defaults") == 0) cmd_defaults(pc); 00017 else if (strcmp(tokens[0], "reload") == 0) cmd_reload(pc, pref); 00018 else if (strcmp(tokens[0], "load") == 0) cmd_reload(pc, pref); 00019 else if (strcmp(tokens[0], "flush") == 0) cmd_flush(pc, pref); 00020 else if (strcmp(tokens[0], "mode") == 0) cmd_ls2(pc, tokens[0]); 00021 else if (strcmp(tokens[0], "src") == 0) cmd_ls2(pc, tokens[0]); 00022 else if (strcmp(tokens[0], "op") == 0) cmd_ls2(pc, tokens[0]); 00023 else if (strcmp(tokens[0], "run") == 0) cmd_mode(pc, tokens[0]); 00024 else if (strcmp(tokens[0], "cfg") == 0) cmd_mode(pc, tokens[0]); 00025 else if (strcmp(tokens[0], "zero") == 0) cmd_mode(pc, tokens[0]); 00026 else if (strcmp(tokens[0], "wizard") == 0) cmd_mode(pc, tokens[0]); 00027 else if (strcmp(tokens[0], "exit") == 0) cmd_exit(pc); 00028 else if (strcmp(tokens[0], "clear") == 0) cmd_clear(pc); 00029 else pc->printf("%s\n", "Bad command"); 00030 break; 00031 case 2: 00032 if (strcmp(tokens[0], "ls") == 0) cmd_ls2(pc, tokens[1]); 00033 else if (strcmp(tokens[0], "get") == 0) cmd_ls2(pc, tokens[1]); 00034 else if (strcmp(tokens[0], "setp") == 0) cmd_setp(pc, tokens[1]); 00035 else if (strcmp(tokens[0], "mode") == 0) cmd_mode(pc, tokens[1]); 00036 else if (strcmp(tokens[0], "src") == 0) cmd_src(pc, tokens[1]); 00037 else if (strcmp(tokens[0], "op") == 0) cmd_op(pc, tokens[1]); 00038 else if (strcmp(tokens[0], "query") == 0) cmd_query(pc, tokens[1]); 00039 else pc->printf("%s\n", "Bad command"); 00040 break; 00041 case 3: 00042 if (strcmp(tokens[0], "set") == 0) cmd_set(pc, tokens[1], tokens[2]); 00043 else pc->printf("%s\n", "Bad command"); 00044 break; 00045 default: 00046 pc->printf("%s\n", "Bad command"); 00047 break; 00048 } 00049 00050 io.cmd_busy = false; 00051 } 00052 00053 void processCmdFast(Serial *pc, PreferenceWriter *pref, char *buf) { 00054 io.cmd_busy = true; 00055 00056 switch (buf[0]) { 00057 case 128: 00058 cmdf_setp(pc, buf[1]); 00059 break; 00060 case 129: 00061 cmdf_w(pc); 00062 break; 00063 case 130: 00064 cmdf_data(pc); 00065 break; 00066 default: 00067 break; 00068 } 00069 00070 io.cmd_busy = false; 00071 }
Generated on Tue Jul 12 2022 17:58:39 by 1.7.2