robot

Dependencies:   FastPWM3 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers CommandProcessor.cpp Source File

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 }